Index: talk/media/webrtc/webrtcvideoengine2.cc |
diff --git a/talk/media/webrtc/webrtcvideoengine2.cc b/talk/media/webrtc/webrtcvideoengine2.cc |
index 0a2152e5e4c891494f34df4a271acb13aa3ec90f..aa4eff949381f91e7fe5d33bc2c2106a9d84f4c1 100644 |
--- a/talk/media/webrtc/webrtcvideoengine2.cc |
+++ b/talk/media/webrtc/webrtcvideoengine2.cc |
@@ -46,6 +46,7 @@ |
#include "webrtc/modules/video_coding/codecs/h264/include/h264.h" |
#include "webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter.h" |
#include "webrtc/system_wrappers/interface/field_trial.h" |
+#include "webrtc/system_wrappers/interface/tick_util.h" |
#include "webrtc/system_wrappers/interface/trace_event.h" |
#include "webrtc/video_decoder.h" |
#include "webrtc/video_encoder.h" |
@@ -1727,6 +1728,15 @@ void WebRtcVideoChannel2::WebRtcVideoSendStream::InputFrame( |
static_cast<int>(frame->GetWidth()), |
static_cast<int>(frame->GetHeight())); |
} |
+ |
+ // frame->GetTimeStamp() is essentially a delta, align to webrtc time |
+ if (base_timestamp_ms_ == 0) { |
+ base_timestamp_ms_ = webrtc::TickTime::MillisecondTimestamp() - |
+ frame->GetTimeStamp() / 1000000; |
+ } |
+ |
+ video_frame.set_render_time_ms(base_timestamp_ms_ + |
+ frame->GetTimeStamp() / 1000000); |
// Reconfigure codec if necessary. |
SetDimensions( |
video_frame.width(), video_frame.height(), capturer->IsScreencast()); |