Chromium Code Reviews| Index: content/renderer/media/webmediaplayer_ms.cc |
| diff --git a/content/renderer/media/webmediaplayer_ms.cc b/content/renderer/media/webmediaplayer_ms.cc |
| index b03fedd8d5365e00e9c19a7bc58af7418c6bf407..ae3ae2b19833f1b84f5809c1f81316d0b749d808 100644 |
| --- a/content/renderer/media/webmediaplayer_ms.cc |
| +++ b/content/renderer/media/webmediaplayer_ms.cc |
| @@ -458,15 +458,20 @@ bool WebMediaPlayerMS::copyVideoTextureToPlatformTexture( |
| scoped_refptr<media::VideoFrame> video_frame = |
| compositor_->GetCurrentFrameWithoutUpdatingStatistics(); |
| - if (!video_frame.get() || !video_frame->HasTextures() || |
| - media::VideoFrame::NumPlanes(video_frame->format()) != 1) { |
| + if (!video_frame.get() || !video_frame->HasTextures()) |
| return false; |
| - } |
| - media::SkCanvasVideoRenderer::CopyVideoFrameSingleTextureToGLTexture( |
| - gl, video_frame.get(), texture, internal_format, type, premultiply_alpha, |
| - flip_y); |
| - return true; |
| + media::Context3D context_3d; |
| + auto* provider = |
| + RenderThreadImpl::current()->SharedMainThreadContextProvider().get(); |
|
Daniele Castagna
2016/07/11 18:23:35
Isn't there a way to get a context provider withou
|
| + // GPU Process crashed. |
| + if (!provider) |
| + return false; |
| + context_3d = media::Context3D(provider->ContextGL(), provider->GrContext()); |
| + DCHECK(context_3d.gl); |
| + return media::SkCanvasVideoRenderer::CopyVideoFrameTexturesToGLTexture( |
|
Daniele Castagna
2016/07/11 18:23:35
When is gl different than context_3d.gl?
|
| + context_3d, gl, video_frame.get(), texture, internal_format, type, |
| + premultiply_alpha, flip_y); |
| } |
| void WebMediaPlayerMS::OnFrameAvailable( |