Configured VCMTiming with sender defining delay times.
BUG=webrtc:7590
Review-Url: https://codereview.webrtc.org/2870823003
Cr-Commit-Position: refs/heads/master@{#18086}
diff --git a/webrtc/modules/video_coding/frame_buffer2.cc b/webrtc/modules/video_coding/frame_buffer2.cc
index 4dcea53..8d86a64 100644
--- a/webrtc/modules/video_coding/frame_buffer2.cc
+++ b/webrtc/modules/video_coding/frame_buffer2.cc
@@ -43,6 +43,7 @@
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 @@
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 @@
if (!UpdateFrameInfoWithIncomingFrame(*frame, info))
return last_continuous_picture_id;
-
+ UpdatePlayoutDelays(*frame);
info->second.frame = std::move(frame);
++num_frames_buffered_;