| Index: chrome/renderer/media/cast_rtp_stream.cc
|
| diff --git a/chrome/renderer/media/cast_rtp_stream.cc b/chrome/renderer/media/cast_rtp_stream.cc
|
| index 42639abea781534e4c7b29a6c5134d4d57b8f324..1a2678b037b3fae03459691bfdf69b8f5b607e5d 100644
|
| --- a/chrome/renderer/media/cast_rtp_stream.cc
|
| +++ b/chrome/renderer/media/cast_rtp_stream.cc
|
| @@ -232,21 +232,24 @@ class CastVideoSink : public base::SupportsWeakPtr<CastVideoSink>,
|
| const scoped_refptr<media::cast::VideoFrameInput> frame_input,
|
| // These parameters are passed for each frame.
|
| const scoped_refptr<media::VideoFrame>& frame,
|
| - const media::VideoCaptureFormat& format) {
|
| + const media::VideoCaptureFormat& format,
|
| + const base::TimeTicks& start_ticks) {
|
| if (frame->coded_size() != expected_coded_size) {
|
| error_callback.Run("Video frame resolution does not match config.");
|
| return;
|
| }
|
|
|
| - const base::TimeTicks now = base::TimeTicks::Now();
|
| + base::TimeTicks timestamp = base::TimeTicks::Now();
|
| + if (!start_ticks.is_null())
|
| + timestamp = start_ticks + frame->timestamp();
|
|
|
| // Used by chrome/browser/extension/api/cast_streaming/performance_test.cc
|
| TRACE_EVENT_INSTANT2(
|
| "cast_perf_test", "MediaStreamVideoSink::OnVideoFrame",
|
| TRACE_EVENT_SCOPE_THREAD,
|
| - "timestamp", now.ToInternalValue(),
|
| + "timestamp", timestamp.ToInternalValue(),
|
| "time_delta", frame->timestamp().ToInternalValue());
|
| - frame_input->InsertRawVideoFrame(frame, now);
|
| + frame_input->InsertRawVideoFrame(frame, timestamp);
|
| }
|
|
|
| // Attach this sink to a video track represented by |track_|.
|
|
|