Index: webkit/media/webmediaplayer_impl.cc |
diff --git a/webkit/media/webmediaplayer_impl.cc b/webkit/media/webmediaplayer_impl.cc |
index 6c3612bbe8f12d14b7be9d61c21dffa4cbfed11e..7348d51b7c8482331c4b30df0faafdaa52dd04dc 100644 |
--- a/webkit/media/webmediaplayer_impl.cc |
+++ b/webkit/media/webmediaplayer_impl.cc |
@@ -741,7 +741,18 @@ bool WebMediaPlayerImpl::copyVideoTextureToPlatformTexture( |
if (video_frame && |
video_frame->format() == media::VideoFrame::NATIVE_TEXTURE && |
video_frame->texture_target() == GL_TEXTURE_2D) { |
+#ifndef VIDEO_FRAME_MAILBOX |
uint32 source_texture = video_frame->texture_id(); |
+#else |
+ uint32 source_texture = web_graphics_context->createTexture(); |
+ |
+ web_graphics_context->waitSyncPoint( |
+ video_frame->texture_mailbox_sync_point()); |
+ web_graphics_context->bindTexture(GL_TEXTURE_2D, source_texture); |
+ web_graphics_context->consumeTextureCHROMIUM( |
+ GL_TEXTURE_2D, video_frame->texture_mailbox().name); |
+#endif |
+ |
// The video is stored in a unmultiplied format, so premultiply |
// if necessary. |
web_graphics_context->pixelStorei(GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM, |
@@ -756,6 +767,14 @@ bool WebMediaPlayerImpl::copyVideoTextureToPlatformTexture( |
web_graphics_context->pixelStorei(GL_UNPACK_FLIP_Y_CHROMIUM, false); |
web_graphics_context->pixelStorei(GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM, |
false); |
+ |
+#ifdef VIDEO_FRAME_MAILBOX |
scherkus (not reviewing)
2013/04/17 20:09:34
nit: doesn't chromium prefer #if defined(FOO) / #i
danakj
2013/04/17 20:12:37
Does it? The google style guide and chromium style
scherkus (not reviewing)
2013/04/17 20:16:58
yeah I don't really care enough to have it changed
|
+ web_graphics_context->bindTexture(GL_TEXTURE_2D, source_texture); |
+ web_graphics_context->produceTextureCHROMIUM( |
+ GL_TEXTURE_2D, video_frame->texture_mailbox().name); |
+ web_graphics_context->deleteTexture(source_texture); |
+#endif |
+ |
// The flush() operation is not necessary here. It is kept since the |
// performance will be better when it is added than not. |
web_graphics_context->flush(); |