Index: content/renderer/media/webmediaplayer_ms.cc |
diff --git a/content/renderer/media/webmediaplayer_ms.cc b/content/renderer/media/webmediaplayer_ms.cc |
index db0c6dba64b3201548174ec217eeeb12c33655b8..ca6933c884c531f76a65ab76967932d6d1194169 100644 |
--- a/content/renderer/media/webmediaplayer_ms.cc |
+++ b/content/renderer/media/webmediaplayer_ms.cc |
@@ -62,7 +62,9 @@ scoped_refptr<media::VideoFrame> CopyFrameToYV12( |
if (frame->HasTextures()) { |
DCHECK(frame->format() == media::PIXEL_FORMAT_ARGB || |
- frame->format() == media::PIXEL_FORMAT_XRGB); |
+ frame->format() == media::PIXEL_FORMAT_XRGB || |
+ frame->format() == media::PIXEL_FORMAT_I420 || |
+ frame->format() == media::PIXEL_FORMAT_UYVY); |
SkBitmap bitmap; |
bitmap.allocN32Pixels(frame->visible_rect().width(), |
frame->visible_rect().height()); |
@@ -103,7 +105,10 @@ WebMediaPlayerMS::WebMediaPlayerMS( |
base::WeakPtr<media::WebMediaPlayerDelegate> delegate, |
media::MediaLog* media_log, |
scoped_ptr<MediaStreamRendererFactory> factory, |
- const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner) |
+ const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner, |
+ const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, |
+ const scoped_refptr<base::TaskRunner>& worker_task_runner, |
+ const scoped_refptr<media::GpuVideoAcceleratorFactories>& gpu_factories) |
: frame_(frame), |
network_state_(WebMediaPlayer::NetworkStateEmpty), |
ready_state_(WebMediaPlayer::ReadyStateHaveNothing), |
@@ -115,6 +120,9 @@ WebMediaPlayerMS::WebMediaPlayerMS( |
received_first_frame_(false), |
media_log_(media_log), |
renderer_factory_(factory.Pass()), |
+ media_task_runner_(media_task_runner), |
+ worker_task_runner_(worker_task_runner), |
+ gpu_factories_(gpu_factories), |
compositor_(new Compositor(compositor_task_runner)), |
compositor_task_runner_(compositor_task_runner) { |
DVLOG(1) << "WebMediaPlayerMS::ctor"; |
@@ -176,7 +184,10 @@ void WebMediaPlayerMS::load(LoadType load_type, |
video_frame_provider_ = renderer_factory_->GetVideoFrameProvider( |
url, |
base::Bind(&WebMediaPlayerMS::OnSourceError, AsWeakPtr()), |
- base::Bind(&WebMediaPlayerMS::OnFrameAvailable, AsWeakPtr())); |
+ base::Bind(&WebMediaPlayerMS::OnFrameAvailable, AsWeakPtr()), |
+ media_task_runner_, |
+ worker_task_runner_, |
+ gpu_factories_); |
RenderFrame* const frame = RenderFrame::FromWebFrame(frame_); |
audio_renderer_ = renderer_factory_->GetAudioRenderer( |