| Index: content/renderer/media/rtc_video_renderer.h
|
| diff --git a/content/renderer/media/rtc_video_renderer.h b/content/renderer/media/rtc_video_renderer.h
|
| index d7bb9869dab8b5c2fd49222b813b28c3d03fd9c9..b792d3aa8ddec71846075d1cf4988a7280c44cfe 100644
|
| --- a/content/renderer/media/rtc_video_renderer.h
|
| +++ b/content/renderer/media/rtc_video_renderer.h
|
| @@ -7,8 +7,9 @@
|
|
|
| #include "base/callback.h"
|
| #include "content/common/content_export.h"
|
| +#include "content/public/renderer/media/video_track_sink.h"
|
| #include "content/renderer/media/video_frame_provider.h"
|
| -#include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h"
|
| +#include "third_party/WebKit/public/platform/WebMediaStreamTrack.h"
|
| #include "ui/gfx/size.h"
|
|
|
| namespace base {
|
| @@ -20,23 +21,20 @@ namespace content {
|
| // RTCVideoRenderer is a VideoFrameProvider designed for rendering
|
| // Video MediaStreamTracks,
|
| // http://dev.w3.org/2011/webrtc/editor/getusermedia.html#mediastreamtrack
|
| -// RTCVideoRenderer implements webrtc::VideoRendererInterface in order to render
|
| -// video frames provided from a webrtc::VideoTrackInteface.
|
| -// RTCVideoRenderer register itself to the Video Track when the
|
| +// RTCVideoRenderer implements VideoTrackSink in order to render
|
| +// video frames provided from a VideoTrack.
|
| +// RTCVideoRenderer register itself as a sink to the VideoTrack when the
|
| // VideoFrameProvider is started and deregisters itself when it is stopped.
|
| -// Calls to webrtc::VideoTrackInterface must occur on the main thread.
|
| // TODO(wuchengli): Add unit test. See the link below for reference.
|
| // http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/media/rtc_vi
|
| // deo_decoder_unittest.cc?revision=180591&view=markup
|
| class CONTENT_EXPORT RTCVideoRenderer
|
| : NON_EXPORTED_BASE(public VideoFrameProvider),
|
| - NON_EXPORTED_BASE(public webrtc::VideoRendererInterface),
|
| - NON_EXPORTED_BASE(public webrtc::ObserverInterface) {
|
| + NON_EXPORTED_BASE(public VideoTrackSink) {
|
| public:
|
| - RTCVideoRenderer(
|
| - webrtc::VideoTrackInterface* video_track,
|
| - const base::Closure& error_cb,
|
| - const RepaintCB& repaint_cb);
|
| + RTCVideoRenderer(const blink::WebMediaStreamTrack& video_track,
|
| + const base::Closure& error_cb,
|
| + const RepaintCB& repaint_cb);
|
|
|
| // VideoFrameProvider implementation. Called on the main thread.
|
| virtual void Start() OVERRIDE;
|
| @@ -44,14 +42,6 @@ class CONTENT_EXPORT RTCVideoRenderer
|
| virtual void Play() OVERRIDE;
|
| virtual void Pause() OVERRIDE;
|
|
|
| - // webrtc::VideoRendererInterface implementation. May be called on
|
| - // a different thread.
|
| - virtual void SetSize(int width, int height) OVERRIDE;
|
| - virtual void RenderFrame(const cricket::VideoFrame* frame) OVERRIDE;
|
| -
|
| - // webrtc::ObserverInterface implementation.
|
| - virtual void OnChanged() OVERRIDE;
|
| -
|
| protected:
|
| virtual ~RTCVideoRenderer();
|
|
|
| @@ -62,16 +52,19 @@ class CONTENT_EXPORT RTCVideoRenderer
|
| kStopped,
|
| };
|
|
|
| - void MaybeRenderSignalingFrame();
|
| - void DoRenderFrameOnMainThread(scoped_refptr<media::VideoFrame> video_frame);
|
| + // VideoTrackSink implementation. Called on the main thread.
|
| + virtual void OnVideoFrame(
|
| + const scoped_refptr<media::VideoFrame>& frame) OVERRIDE;
|
| + virtual void OnSourceChangedState(
|
| + ReadyState state) OVERRIDE;
|
| +
|
| + void MaybeRenderSignalingFrame(ReadyState state);
|
|
|
| base::Closure error_cb_;
|
| RepaintCB repaint_cb_;
|
| scoped_refptr<base::MessageLoopProxy> message_loop_proxy_;
|
| State state_;
|
| -
|
| - // The video track the renderer is connected to.
|
| - scoped_refptr<webrtc::VideoTrackInterface> video_track_;
|
| + blink::WebMediaStreamTrack video_track_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(RTCVideoRenderer);
|
| };
|
|
|