| 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..0bdf503cf0d233c8b2b5218ab890ffbaa2a70926 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,29 +69,32 @@ 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);
|
| -
|
| // MediaStreamVideoSink implementation. Called on the main thread.
|
| void OnReadyStateChanged(
|
| blink::WebMediaStreamSource::ReadyState state) override;
|
|
|
| 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_;
|
| -
|
| - base::WeakPtrFactory<MediaStreamVideoRendererSink> weak_factory_;
|
| + // Inner class used for trampolining received frames from IO thread to
|
| + // compositor thread.
|
| + class FrameReceiver;
|
| + std::unique_ptr<FrameReceiver> frame_receiver_;
|
| + // Inner class used for transfering frames on compositor thread and running
|
| + // |repaint_cb_|.
|
| + class FrameDeliverer;
|
| + std::unique_ptr<FrameDeliverer> frame_deliverer_;
|
| +
|
| + const scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_;
|
| + base::ThreadChecker main_thread_checker_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(MediaStreamVideoRendererSink);
|
| };
|
|
|