| Index: content/renderer/media/webmediaplayer_ms.cc
|
| diff --git a/content/renderer/media/webmediaplayer_ms.cc b/content/renderer/media/webmediaplayer_ms.cc
|
| index 1c5ce428ae01a4f9c712b75a7e81867c0b2960f3..11a162ff859402eec3e16e4c578dc15684a85bc3 100644
|
| --- a/content/renderer/media/webmediaplayer_ms.cc
|
| +++ b/content/renderer/media/webmediaplayer_ms.cc
|
| @@ -17,6 +17,7 @@
|
| #include "content/renderer/media/media_stream_renderer_factory.h"
|
| #include "content/renderer/media/video_frame_provider.h"
|
| #include "content/renderer/render_frame_impl.h"
|
| +#include "content/renderer/render_thread_impl.h"
|
| #include "media/base/media_log.h"
|
| #include "media/base/video_frame.h"
|
| #include "media/base/video_rotation.h"
|
| @@ -30,6 +31,7 @@
|
| #include "third_party/WebKit/public/web/WebFrame.h"
|
| #include "third_party/WebKit/public/web/WebView.h"
|
| #include "third_party/skia/include/core/SkBitmap.h"
|
| +#include "webkit/common/gpu/context_provider_web_context.h"
|
|
|
| using blink::WebCanvas;
|
| using blink::WebMediaPlayer;
|
| @@ -326,9 +328,20 @@ void WebMediaPlayerMS::paint(blink::WebCanvas* canvas,
|
| DVLOG(3) << "WebMediaPlayerMS::paint";
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
|
|
| + media::Context3D context_3d;
|
| + if (current_frame_.get() &&
|
| + current_frame_->format() == media::VideoFrame::NATIVE_TEXTURE) {
|
| + cc::ContextProvider* provider =
|
| + RenderThreadImpl::current()->SharedMainThreadContextProvider().get();
|
| + // GPU Process crashed.
|
| + if (!provider)
|
| + return;
|
| + context_3d = media::Context3D(provider->ContextGL(), provider->GrContext());
|
| + DCHECK(context_3d.gl);
|
| + }
|
| gfx::RectF dest_rect(rect.x, rect.y, rect.width, rect.height);
|
| video_renderer_.Paint(current_frame_, canvas, dest_rect, alpha, mode,
|
| - media::VIDEO_ROTATION_0, media::Context3D());
|
| + media::VIDEO_ROTATION_0, context_3d);
|
|
|
| {
|
| base::AutoLock auto_lock(current_frame_lock_);
|
|
|