| Index: content/renderer/media/webrtc/media_stream_remote_video_source.cc
|
| diff --git a/content/renderer/media/webrtc/media_stream_remote_video_source.cc b/content/renderer/media/webrtc/media_stream_remote_video_source.cc
|
| index 2f2a843777c7e6137643fa4dd46a4b69dee6000c..45cff71f9730936c74250cf39524387644902e02 100644
|
| --- a/content/renderer/media/webrtc/media_stream_remote_video_source.cc
|
| +++ b/content/renderer/media/webrtc/media_stream_remote_video_source.cc
|
| @@ -18,6 +18,7 @@
|
| #include "media/base/video_frame.h"
|
| #include "media/base/video_util.h"
|
| #include "third_party/webrtc/media/base/videoframe.h"
|
| +#include "third_party/webrtc/media/base/videosinkinterface.h"
|
| #include "third_party/webrtc/system_wrappers/include/tick_util.h"
|
|
|
| namespace content {
|
| @@ -26,7 +27,7 @@ namespace content {
|
| // libjingle thread and forward it to the IO-thread.
|
| class MediaStreamRemoteVideoSource::RemoteVideoSourceDelegate
|
| : public base::RefCountedThreadSafe<RemoteVideoSourceDelegate>,
|
| - public webrtc::VideoRendererInterface {
|
| + public rtc::VideoSinkInterface<cricket::VideoFrame> {
|
| public:
|
| RemoteVideoSourceDelegate(
|
| scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
|
| @@ -36,10 +37,10 @@ class MediaStreamRemoteVideoSource::RemoteVideoSourceDelegate
|
| friend class base::RefCountedThreadSafe<RemoteVideoSourceDelegate>;
|
| ~RemoteVideoSourceDelegate() override;
|
|
|
| - // Implements webrtc::VideoRendererInterface used for receiving video frames
|
| + // Implements rtc::VideoSinkInterface used for receiving video frames
|
| // from the PeerConnection video track. May be called on a libjingle internal
|
| // thread.
|
| - void RenderFrame(const cricket::VideoFrame* frame) override;
|
| + void OnFrame(const cricket::VideoFrame& frame) override;
|
|
|
| void DoRenderFrameOnIOThread(
|
| const scoped_refptr<media::VideoFrame>& video_frame);
|
| @@ -77,10 +78,10 @@ MediaStreamRemoteVideoSource::
|
| RemoteVideoSourceDelegate::~RemoteVideoSourceDelegate() {
|
| }
|
|
|
| -void MediaStreamRemoteVideoSource::RemoteVideoSourceDelegate::RenderFrame(
|
| - const cricket::VideoFrame* incoming_frame) {
|
| +void MediaStreamRemoteVideoSource::RemoteVideoSourceDelegate::OnFrame(
|
| + const cricket::VideoFrame& incoming_frame) {
|
| const base::TimeDelta incoming_timestamp = base::TimeDelta::FromMicroseconds(
|
| - incoming_frame->GetTimeStamp() / rtc::kNumNanosecsPerMicrosec);
|
| + incoming_frame.GetTimeStamp() / rtc::kNumNanosecsPerMicrosec);
|
| const base::TimeTicks render_time =
|
| base::TimeTicks() + incoming_timestamp + time_diff_;
|
|
|
| @@ -94,13 +95,13 @@ void MediaStreamRemoteVideoSource::RemoteVideoSourceDelegate::RenderFrame(
|
| incoming_timestamp - start_timestamp_;
|
|
|
| scoped_refptr<media::VideoFrame> video_frame;
|
| - if (incoming_frame->GetNativeHandle() != NULL) {
|
| + if (incoming_frame.GetNativeHandle() != NULL) {
|
| video_frame =
|
| - static_cast<media::VideoFrame*>(incoming_frame->GetNativeHandle());
|
| + static_cast<media::VideoFrame*>(incoming_frame.GetNativeHandle());
|
| video_frame->set_timestamp(elapsed_timestamp);
|
| } else {
|
| const cricket::VideoFrame* frame =
|
| - incoming_frame->GetCopyWithRotationApplied();
|
| + incoming_frame.GetCopyWithRotationApplied();
|
|
|
| gfx::Size size(frame->GetWidth(), frame->GetHeight());
|
|
|
| @@ -178,7 +179,7 @@ void MediaStreamRemoteVideoSource::StartSourceImpl(
|
| delegate_ = new RemoteVideoSourceDelegate(io_task_runner(), frame_callback);
|
| scoped_refptr<webrtc::VideoTrackInterface> video_track(
|
| static_cast<webrtc::VideoTrackInterface*>(observer_->track().get()));
|
| - video_track->AddRenderer(delegate_.get());
|
| + video_track->AddOrUpdateSink(delegate_.get(), rtc::VideoSinkWants());
|
| OnStartDone(MEDIA_DEVICE_OK);
|
| }
|
|
|
| @@ -193,13 +194,13 @@ void MediaStreamRemoteVideoSource::StopSourceImpl() {
|
| DCHECK(state() != MediaStreamVideoSource::ENDED);
|
| scoped_refptr<webrtc::VideoTrackInterface> video_track(
|
| static_cast<webrtc::VideoTrackInterface*>(observer_->track().get()));
|
| - video_track->RemoveRenderer(delegate_.get());
|
| + video_track->RemoveSink(delegate_.get());
|
| // This removes the references to the webrtc video track.
|
| observer_.reset();
|
| }
|
|
|
| -webrtc::VideoRendererInterface*
|
| -MediaStreamRemoteVideoSource::RenderInterfaceForTest() {
|
| +rtc::VideoSinkInterface<cricket::VideoFrame>*
|
| +MediaStreamRemoteVideoSource::SinkInterfaceForTest() {
|
| return delegate_.get();
|
| }
|
|
|
|
|