| 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 4dcea53f6a6b4a0e993e5da827ea6a24fb531c9b..8d86a6412a076f295f22b4546b84d21d3189651c 100644
|
| --- a/webrtc/modules/video_coding/frame_buffer2.cc
|
| +++ b/webrtc/modules/video_coding/frame_buffer2.cc
|
| @@ -43,6 +43,7 @@ FrameBuffer::FrameBuffer(Clock* clock,
|
| jitter_estimator_(jitter_estimator),
|
| timing_(timing),
|
| inter_frame_delay_(clock_->TimeInMilliseconds()),
|
| + last_decoded_frame_timestamp_(0),
|
| last_decoded_frame_it_(frames_.end()),
|
| last_continuous_frame_it_(frames_.end()),
|
| num_frames_history_(0),
|
| @@ -207,6 +208,16 @@ void FrameBuffer::Stop() {
|
| new_continuous_frame_event_.Set();
|
| }
|
|
|
| +void FrameBuffer::UpdatePlayoutDelays(const FrameObject& frame) {
|
| + TRACE_EVENT0("webrtc", "FrameBuffer::UpdatePlayoutDelays");
|
| + PlayoutDelay playout_delay = frame.EncodedImage().playout_delay_;
|
| + if (playout_delay.min_ms >= 0)
|
| + timing_->set_min_playout_delay(playout_delay.min_ms);
|
| +
|
| + if (playout_delay.max_ms >= 0)
|
| + timing_->set_max_playout_delay(playout_delay.max_ms);
|
| +}
|
| +
|
| int FrameBuffer::InsertFrame(std::unique_ptr<FrameObject> frame) {
|
| TRACE_EVENT0("webrtc", "FrameBuffer::InsertFrame");
|
| RTC_DCHECK(frame);
|
| @@ -283,7 +294,7 @@ int FrameBuffer::InsertFrame(std::unique_ptr<FrameObject> frame) {
|
|
|
| if (!UpdateFrameInfoWithIncomingFrame(*frame, info))
|
| return last_continuous_picture_id;
|
| -
|
| + UpdatePlayoutDelays(*frame);
|
| info->second.frame = std::move(frame);
|
| ++num_frames_buffered_;
|
|
|
|
|