Delete all logic related to VCMDecodeErrorMode
Bug: webrtc:8064 Change-Id: I345f342a314d88390fff8b305b121076b45a51e8 Reviewed-on: https://webrtc-review.googlesource.com/c/116692 Reviewed-by: Philip Eliasson <philipel@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Commit-Queue: Niels Moller <nisse@webrtc.org> Cr-Commit-Position: refs/heads/master@{#26283}
This commit is contained in:
@ -255,7 +255,6 @@ VCMJitterBuffer::VCMJitterBuffer(Clock* clock,
|
||||
max_nack_list_size_(0),
|
||||
max_packet_age_to_nack_(0),
|
||||
max_incomplete_time_ms_(0),
|
||||
decode_error_mode_(kNoErrors),
|
||||
average_packets_per_frame_(0.0f),
|
||||
frame_counter_(0) {
|
||||
for (int i = 0; i < kStartNumberOfFrames; i++)
|
||||
@ -494,43 +493,6 @@ VCMEncodedFrame* VCMJitterBuffer::NextCompleteFrame(uint32_t max_wait_time_ms) {
|
||||
return encoded_frame;
|
||||
}
|
||||
|
||||
bool VCMJitterBuffer::NextMaybeIncompleteTimestamp(uint32_t* timestamp) {
|
||||
rtc::CritScope cs(&crit_sect_);
|
||||
if (!running_) {
|
||||
return false;
|
||||
}
|
||||
if (decode_error_mode_ == kNoErrors) {
|
||||
// No point to continue, as we are not decoding with errors.
|
||||
return false;
|
||||
}
|
||||
|
||||
CleanUpOldOrEmptyFrames();
|
||||
|
||||
VCMFrameBuffer* oldest_frame;
|
||||
if (decodable_frames_.empty()) {
|
||||
if (nack_mode_ != kNoNack || incomplete_frames_.size() <= 1) {
|
||||
return false;
|
||||
}
|
||||
oldest_frame = incomplete_frames_.Front();
|
||||
// Frame will only be removed from buffer if it is complete (or decodable).
|
||||
if (oldest_frame->GetState() < kStateComplete) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
oldest_frame = decodable_frames_.Front();
|
||||
// If we have exactly one frame in the buffer, release it only if it is
|
||||
// complete. We know decodable_frames_ is not empty due to the previous
|
||||
// check.
|
||||
if (decodable_frames_.size() == 1 && incomplete_frames_.empty() &&
|
||||
oldest_frame->GetState() != kStateComplete) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
*timestamp = oldest_frame->Timestamp();
|
||||
return true;
|
||||
}
|
||||
|
||||
VCMEncodedFrame* VCMJitterBuffer::ExtractAndSetDecode(uint32_t timestamp) {
|
||||
rtc::CritScope cs(&crit_sect_);
|
||||
if (!running_) {
|
||||
@ -711,7 +673,7 @@ VCMFrameBufferEnum VCMJitterBuffer::InsertPacket(const VCMPacket& packet,
|
||||
frame_data.rtt_ms = rtt_ms_;
|
||||
frame_data.rolling_average_packets_per_frame = average_packets_per_frame_;
|
||||
VCMFrameBufferEnum buffer_state =
|
||||
frame->InsertPacket(packet, now_ms, decode_error_mode_, frame_data);
|
||||
frame->InsertPacket(packet, now_ms, frame_data);
|
||||
|
||||
if (previous_state != kStateComplete) {
|
||||
TRACE_EVENT_ASYNC_BEGIN1("webrtc", "Video", frame->Timestamp(), "timestamp",
|
||||
@ -747,18 +709,14 @@ VCMFrameBufferEnum VCMJitterBuffer::InsertPacket(const VCMPacket& packet,
|
||||
break;
|
||||
}
|
||||
case kCompleteSession: {
|
||||
if (previous_state != kStateDecodable &&
|
||||
previous_state != kStateComplete) {
|
||||
if (previous_state != kStateComplete) {
|
||||
CountFrame(*frame);
|
||||
if (continuous) {
|
||||
// Signal that we have a complete session.
|
||||
frame_event_->Set();
|
||||
}
|
||||
}
|
||||
RTC_FALLTHROUGH();
|
||||
}
|
||||
// Note: There is no break here - continuing to kDecodableSession.
|
||||
case kDecodableSession: {
|
||||
|
||||
*retransmitted = (frame->GetNackCount() > 0);
|
||||
if (continuous) {
|
||||
decodable_frames_.InsertFrame(frame);
|
||||
@ -812,12 +770,8 @@ VCMFrameBufferEnum VCMJitterBuffer::InsertPacket(const VCMPacket& packet,
|
||||
bool VCMJitterBuffer::IsContinuousInState(
|
||||
const VCMFrameBuffer& frame,
|
||||
const VCMDecodingState& decoding_state) const {
|
||||
// Is this frame (complete or decodable) and continuous?
|
||||
// kStateDecodable will never be set when decode_error_mode_ is false
|
||||
// as SessionInfo determines this state based on the error mode (and frame
|
||||
// completeness).
|
||||
return (frame.GetState() == kStateComplete ||
|
||||
frame.GetState() == kStateDecodable) &&
|
||||
// Is this frame complete and continuous?
|
||||
return (frame.GetState() == kStateComplete) &&
|
||||
decoding_state.ContinuousFrame(&frame);
|
||||
}
|
||||
|
||||
@ -1024,11 +978,6 @@ std::vector<uint16_t> VCMJitterBuffer::GetNackList(bool* request_key_frame) {
|
||||
return nack_list;
|
||||
}
|
||||
|
||||
void VCMJitterBuffer::SetDecodeErrorMode(VCMDecodeErrorMode error_mode) {
|
||||
rtc::CritScope cs(&crit_sect_);
|
||||
decode_error_mode_ = error_mode;
|
||||
}
|
||||
|
||||
VCMFrameBuffer* VCMJitterBuffer::NextFrame() const {
|
||||
if (!decodable_frames_.empty())
|
||||
return decodable_frames_.Front();
|
||||
|
Reference in New Issue
Block a user