Chromium Code Reviews| Index: content/renderer/media/media_stream_video_renderer_sink.h |
| diff --git a/content/renderer/media/media_stream_video_renderer_sink.h b/content/renderer/media/media_stream_video_renderer_sink.h |
| index ed30c2ac7c3fc7450ed37f7eb3fc77a47b20746e..bcfddc16446d71a4329717126582dfc6641bdd17 100644 |
| --- a/content/renderer/media/media_stream_video_renderer_sink.h |
| +++ b/content/renderer/media/media_stream_video_renderer_sink.h |
| @@ -7,10 +7,13 @@ |
| #include "base/callback.h" |
| #include "base/memory/weak_ptr.h" |
| +#include "base/single_thread_task_runner.h" |
| #include "content/common/content_export.h" |
| #include "content/common/media/video_capture.h" |
| #include "content/public/renderer/media_stream_video_sink.h" |
| #include "content/public/renderer/video_frame_provider.h" |
| +#include "media/renderers/gpu_video_accelerator_factories.h" |
| +#include "media/video/gpu_memory_buffer_video_frame_pool.h" |
|
mcasas
2015/10/02 19:30:46
You can forward declare SingleThreadTaskRunner (ac
emircan
2015/10/03 00:11:26
Done.
|
| #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" |
| #include "ui/gfx/geometry/size.h" |
| @@ -36,9 +39,13 @@ class CONTENT_EXPORT MediaStreamVideoRendererSink |
| : NON_EXPORTED_BASE(public VideoFrameProvider), |
| NON_EXPORTED_BASE(public MediaStreamVideoSink) { |
| public: |
| - MediaStreamVideoRendererSink(const blink::WebMediaStreamTrack& video_track, |
| - const base::Closure& error_cb, |
| - const RepaintCB& repaint_cb); |
| + MediaStreamVideoRendererSink( |
| + const blink::WebMediaStreamTrack& video_track, |
| + const base::Closure& error_cb, |
| + const RepaintCB& repaint_cb, |
| + const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, |
| + const scoped_refptr<base::TaskRunner>& worker_task_runner, |
| + const scoped_refptr<media::GpuVideoAcceleratorFactories>& gpu_factories); |
| // VideoFrameProvider implementation. Called on the main thread. |
| void Start() override; |
| @@ -59,6 +66,11 @@ class CONTENT_EXPORT MediaStreamVideoRendererSink |
| void OnVideoFrame(const scoped_refptr<media::VideoFrame>& frame, |
| base::TimeTicks estimated_capture_time); |
| + void MaybeCreateHardwareFrameOnMediaThread( |
| + const scoped_refptr<media::VideoFrame>& frame); |
| + void MaybeCreateHardwareFrameCompletedOnMediaThread( |
| + const scoped_refptr<media::VideoFrame>& frame); |
| + void FrameReady(const scoped_refptr<media::VideoFrame>& frame); |
| // MediaStreamVideoSink implementation. Called on the main thread. |
| void OnReadyStateChanged( |
| @@ -68,10 +80,16 @@ class CONTENT_EXPORT MediaStreamVideoRendererSink |
| const base::Closure error_cb_; |
| const RepaintCB repaint_cb_; |
| + |
| const scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
| State state_; |
| gfx::Size frame_size_; |
| const blink::WebMediaStreamTrack video_track_; |
| + |
| + // Pool of GpuMemoryBuffers and resources used to create hardware frames. |
| + scoped_ptr<media::GpuMemoryBufferVideoFramePool> gpu_memory_buffer_pool_; |
| + const scoped_refptr<base::SingleThreadTaskRunner> media_task_runner_; |
| + |
| base::WeakPtrFactory<MediaStreamVideoRendererSink> weak_factory_; |
| DISALLOW_COPY_AND_ASSIGN(MediaStreamVideoRendererSink); |