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 425ca6cc2c25fa6fbd70f7e98a92ba611e09dd43..c884c8a8490b010ed3b92b36b2f29a844599d2fc 100644 |
| --- a/content/renderer/media/media_stream_video_renderer_sink.h |
| +++ b/content/renderer/media/media_stream_video_renderer_sink.h |
| @@ -7,12 +7,11 @@ |
| #include "base/callback.h" |
| #include "base/macros.h" |
| -#include "base/memory/weak_ptr.h" |
| +#include "base/threading/thread_checker.h" |
| #include "content/common/content_export.h" |
| #include "content/common/media/video_capture.h" |
| #include "content/public/renderer/media_stream_video_renderer.h" |
| #include "content/public/renderer/media_stream_video_sink.h" |
| -#include "media/video/gpu_memory_buffer_video_frame_pool.h" |
| #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" |
| #include "ui/gfx/geometry/size.h" |
| @@ -22,6 +21,7 @@ class TaskRunner; |
| } // namespace base |
| namespace media { |
| +class GpuMemoryBufferVideoFramePool; |
| class GpuVideoAcceleratorFactories; |
| } // namespace media |
| @@ -47,6 +47,7 @@ class CONTENT_EXPORT MediaStreamVideoRendererSink |
| const blink::WebMediaStreamTrack& video_track, |
| const base::Closure& error_cb, |
| const MediaStreamVideoRenderer::RepaintCB& repaint_cb, |
| + const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner, |
| const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, |
| const scoped_refptr<base::TaskRunner>& worker_task_runner, |
| media::GpuVideoAcceleratorFactories* gpu_factories); |
| @@ -57,9 +58,6 @@ class CONTENT_EXPORT MediaStreamVideoRendererSink |
| void Resume() override; |
| void Pause() override; |
| - void SetGpuMemoryBufferVideoForTesting( |
| - media::GpuMemoryBufferVideoFramePool* gpu_memory_buffer_pool); |
| - |
| protected: |
| ~MediaStreamVideoRendererSink() override; |
| @@ -71,9 +69,12 @@ class CONTENT_EXPORT MediaStreamVideoRendererSink |
| STOPPED, |
| }; |
| - void OnVideoFrame(const scoped_refptr<media::VideoFrame>& frame, |
| - base::TimeTicks estimated_capture_time); |
| - void FrameReady(const scoped_refptr<media::VideoFrame>& frame); |
| + // Inner class used for trampolining frames from IO thread to compositor |
|
DaleCurtis
2016/11/15 00:30:16
No reason to define these here, just put them with
emircan
2016/11/15 19:54:02
Done.
|
| + // thread. |
| + class FrameReceiverOnIO; |
| + // Inner class used for transfering frames on compositor thread and running |
| + // |repaint_cb_|. |
| + class FrameDelivererOnCompositor; |
| // MediaStreamVideoSink implementation. Called on the main thread. |
| void OnReadyStateChanged( |
| @@ -81,19 +82,20 @@ class CONTENT_EXPORT MediaStreamVideoRendererSink |
| void RenderSignalingFrame(); |
| + // Helper methods used for testing |
| + State GetStateForTesting(); |
| + void SetGpuMemoryBufferVideoForTesting( |
| + media::GpuMemoryBufferVideoFramePool* gpu_memory_buffer_pool); |
| + |
| 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. |
| - std::unique_ptr<media::GpuMemoryBufferVideoFramePool> gpu_memory_buffer_pool_; |
| - const scoped_refptr<base::SingleThreadTaskRunner> media_task_runner_; |
| + std::unique_ptr<FrameReceiverOnIO> frame_receiver_; |
| + std::unique_ptr<FrameDelivererOnCompositor> frame_deliverer_; |
| - base::WeakPtrFactory<MediaStreamVideoRendererSink> weak_factory_; |
| + const scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_; |
| + base::ThreadChecker main_thread_checker_; |
| DISALLOW_COPY_AND_ASSIGN(MediaStreamVideoRendererSink); |
| }; |