| 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..2949235962eaa0d3b3e418d8a219dd91b2444210 100644
|
| --- a/content/renderer/media/webmediaplayer_ms.cc
|
| +++ b/content/renderer/media/webmediaplayer_ms.cc
|
| @@ -469,6 +469,33 @@ bool WebMediaPlayerMS::copyVideoTextureToPlatformTexture(
|
| return true;
|
| }
|
|
|
| +bool WebMediaPlayerMS::texImageImpl(const char* functionID,
|
| + unsigned target,
|
| + gpu::gles2::GLES2Interface* gl,
|
| + int level,
|
| + int internalformat,
|
| + unsigned format,
|
| + unsigned type,
|
| + int xoffset,
|
| + int yoffset,
|
| + int zoffset,
|
| + bool flipY,
|
| + bool premultiplyAlpha) {
|
| + TRACE_EVENT0("media", "WebMediaPlayerMS:texImageImpl");
|
| + DCHECK(thread_checker_.CalledOnValidThread());
|
| +
|
| + const scoped_refptr<media::VideoFrame> video_frame =
|
| + compositor_->GetCurrentFrameWithoutUpdatingStatistics();
|
| + if (!video_frame || !video_frame->IsMappable() ||
|
| + media::VideoFrame::NumPlanes(video_frame->format()) != 1) {
|
| + return false;
|
| + }
|
| +
|
| + return media::SkCanvasVideoRenderer::TexImageImpl(
|
| + functionID, target, gl, video_frame.get(), level, internalformat, format,
|
| + type, xoffset, yoffset, zoffset, flipY, premultiplyAlpha);
|
| +}
|
| +
|
| void WebMediaPlayerMS::OnFrameAvailable(
|
| const scoped_refptr<media::VideoFrame>& frame) {
|
| DVLOG(3) << __FUNCTION__;
|
|
|