| Index: content/renderer/media/webmediaplayer_ms.cc
|
| diff --git a/content/renderer/media/webmediaplayer_ms.cc b/content/renderer/media/webmediaplayer_ms.cc
|
| index d437247d18053d97a778c326d8bc707e6b520d81..c0e023b3058c26d0ffd44e6040bfcfd0f11ffc17 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();
|
| + // GPU Process crashed.
|
| + if (!provider)
|
| + return false;
|
| + context_3d = media::Context3D(provider->ContextGL(), provider->GrContext());
|
| + DCHECK(context_3d.gl);
|
| + return video_renderer_.CopyVideoFrameTexturesToGLTexture(
|
| + context_3d, gl, video_frame.get(), texture, internal_format, type,
|
| + premultiply_alpha, flip_y);
|
| }
|
|
|
| void WebMediaPlayerMS::OnFrameAvailable(
|
|
|