| Index: content/renderer/media/video_track_adapter.cc
|
| diff --git a/content/renderer/media/video_track_adapter.cc b/content/renderer/media/video_track_adapter.cc
|
| index 46223f8cfad2cb89211e484e9532fb7da4e1156a..461b16638f6fe1b2020e6309595303651aa8f446 100644
|
| --- a/content/renderer/media/video_track_adapter.cc
|
| +++ b/content/renderer/media/video_track_adapter.cc
|
| @@ -56,7 +56,8 @@ class VideoTrackAdapter::VideoFrameResolutionAdapter
|
| void RemoveCallback(const MediaStreamVideoTrack* track);
|
|
|
| void DeliverFrame(const scoped_refptr<media::VideoFrame>& frame,
|
| - const media::VideoCaptureFormat& format);
|
| + const media::VideoCaptureFormat& format,
|
| + const base::TimeTicks& estimated_capture_time);
|
|
|
| // Returns true if all arguments match with the output of this adapter.
|
| bool ConstraintsMatch(int max_width,
|
| @@ -72,7 +73,8 @@ class VideoTrackAdapter::VideoFrameResolutionAdapter
|
|
|
| virtual void DoDeliverFrame(
|
| const scoped_refptr<media::VideoFrame>& frame,
|
| - const media::VideoCaptureFormat& format);
|
| + const media::VideoCaptureFormat& format,
|
| + const base::TimeTicks& estimated_capture_time);
|
|
|
| // Bound to the IO-thread.
|
| base::ThreadChecker io_thread_checker_;
|
| @@ -122,12 +124,13 @@ VideoFrameResolutionAdapter::~VideoFrameResolutionAdapter() {
|
|
|
| void VideoTrackAdapter::VideoFrameResolutionAdapter::DeliverFrame(
|
| const scoped_refptr<media::VideoFrame>& frame,
|
| - const media::VideoCaptureFormat& format) {
|
| + const media::VideoCaptureFormat& format,
|
| + const base::TimeTicks& estimated_capture_time) {
|
| DCHECK(io_thread_checker_.CalledOnValidThread());
|
| // TODO(perkj): Allow cropping / scaling of textures once
|
| // http://crbug/362521 is fixed.
|
| if (frame->format() == media::VideoFrame::NATIVE_TEXTURE) {
|
| - DoDeliverFrame(frame, format);
|
| + DoDeliverFrame(frame, format, estimated_capture_time);
|
| return;
|
| }
|
| scoped_refptr<media::VideoFrame> video_frame(frame);
|
| @@ -189,17 +192,18 @@ void VideoTrackAdapter::VideoFrameResolutionAdapter::DeliverFrame(
|
| << " output visible rect "
|
| << video_frame->visible_rect().ToString();
|
| }
|
| - DoDeliverFrame(video_frame, format);
|
| + DoDeliverFrame(video_frame, format, estimated_capture_time);
|
| }
|
|
|
| void VideoTrackAdapter::
|
| VideoFrameResolutionAdapter::DoDeliverFrame(
|
| const scoped_refptr<media::VideoFrame>& frame,
|
| - const media::VideoCaptureFormat& format) {
|
| + const media::VideoCaptureFormat& format,
|
| + const base::TimeTicks& estimated_capture_time) {
|
| DCHECK(io_thread_checker_.CalledOnValidThread());
|
| for (std::vector<VideoIdCallbackPair>::const_iterator it = callbacks_.begin();
|
| it != callbacks_.end(); ++it) {
|
| - it->second.Run(frame, format);
|
| + it->second.Run(frame, format, estimated_capture_time);
|
| }
|
| }
|
|
|
| @@ -323,12 +327,13 @@ void VideoTrackAdapter::RemoveTrackOnIO(const MediaStreamVideoTrack* track) {
|
|
|
| void VideoTrackAdapter::DeliverFrameOnIO(
|
| const scoped_refptr<media::VideoFrame>& frame,
|
| - const media::VideoCaptureFormat& format) {
|
| + const media::VideoCaptureFormat& format,
|
| + const base::TimeTicks& estimated_capture_time) {
|
| DCHECK(io_message_loop_->BelongsToCurrentThread());
|
| TRACE_EVENT0("video", "VideoTrackAdapter::DeliverFrameOnIO");
|
| for (FrameAdapters::iterator it = adapters_.begin();
|
| it != adapters_.end(); ++it) {
|
| - (*it)->DeliverFrame(frame, format);
|
| + (*it)->DeliverFrame(frame, format, estimated_capture_time);
|
| }
|
| }
|
|
|
|
|