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( |