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..35f7d025b09696b45605f56612316335da09c188 100644 |
--- a/content/renderer/media/media_stream_video_renderer_sink.h |
+++ b/content/renderer/media/media_stream_video_renderer_sink.h |
@@ -11,12 +11,18 @@ |
#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/video/gpu_memory_buffer_video_frame_pool.h" |
#include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" |
#include "ui/gfx/geometry/size.h" |
namespace base { |
class SingleThreadTaskRunner; |
-} |
+class TaskRunner; |
+} // namespace base |
+ |
+namespace media { |
+class GpuVideoAcceleratorFactories; |
+} // namespace media |
namespace content { |
@@ -36,15 +42,21 @@ 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; |
void Stop() override; |
void Play() override; |
void Pause() override; |
+ void SetGpuMemoryBufferVideoForTesting( |
+ scoped_ptr<media::GpuMemoryBufferVideoFramePool> gpu_memory_buffer_pool); |
protected: |
~MediaStreamVideoRendererSink() override; |
@@ -59,6 +71,7 @@ class CONTENT_EXPORT MediaStreamVideoRendererSink |
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( |
@@ -68,10 +81,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); |