Index: webrtc/modules/video_coding/frame_buffer2.cc |
diff --git a/webrtc/modules/video_coding/frame_buffer2.cc b/webrtc/modules/video_coding/frame_buffer2.cc |
index a783657f3ef7cb7bda69211da1cc2224a453e1d3..b8a80e1f681cc77ae634ef7faf879d3b14ad156d 100644 |
--- a/webrtc/modules/video_coding/frame_buffer2.cc |
+++ b/webrtc/modules/video_coding/frame_buffer2.cc |
@@ -59,8 +59,7 @@ |
FrameBuffer::ReturnReason FrameBuffer::NextFrame( |
int64_t max_wait_time_ms, |
- std::unique_ptr<FrameObject>* frame_out, |
- bool keyframe_required) { |
+ std::unique_ptr<FrameObject>* frame_out) { |
TRACE_EVENT0("webrtc", "FrameBuffer::NextFrame"); |
int64_t latest_return_time_ms = |
clock_->TimeInMilliseconds() + max_wait_time_ms; |
@@ -106,10 +105,6 @@ |
} |
FrameObject* frame = frame_it->second.frame.get(); |
- |
- if (keyframe_required && !frame->is_keyframe()) |
- continue; |
- |
next_frame_it_ = frame_it; |
if (frame->RenderTime() == -1) |
frame->SetRenderTime(timing_->RenderTimeMs(frame->timestamp, now_ms)); |
@@ -277,7 +272,7 @@ |
TRACE_EVENT0("webrtc", "FrameBuffer::InsertFrame"); |
RTC_DCHECK(frame); |
if (stats_callback_) |
- stats_callback_->OnCompleteFrame(frame->is_keyframe(), frame->size()); |
+ stats_callback_->OnCompleteFrame(frame->num_references == 0, frame->size()); |
FrameKey key(frame->picture_id, frame->spatial_layer); |
rtc::CritScope lock(&crit_); |
@@ -305,7 +300,7 @@ |
if (last_decoded_frame_it_ != frames_.end() && |
key <= last_decoded_frame_it_->first) { |
if (AheadOf(frame->timestamp, last_decoded_frame_timestamp_) && |
- frame->is_keyframe()) { |
+ frame->num_references == 0) { |
// If this frame has a newer timestamp but an earlier picture id then we |
// assume there has been a jump in the picture id due to some encoder |
// reconfiguration or some other reason. Even though this is not according |