Index: webkit/media/android/webmediaplayer_android.cc |
diff --git a/webkit/media/android/webmediaplayer_android.cc b/webkit/media/android/webmediaplayer_android.cc |
index 5b00e5dbd3c31626a8eb0ff1563c1f33463dccee..175c72b73fae4a49d7ea0874170424e3887b3db7 100644 |
--- a/webkit/media/android/webmediaplayer_android.cc |
+++ b/webkit/media/android/webmediaplayer_android.cc |
@@ -8,6 +8,7 @@ |
#include "base/files/file_path.h" |
#include "base/logging.h" |
#include "cc/layers/video_layer.h" |
+#include "gpu/GLES2/gl2extchromium.h" |
#include "media/base/android/media_player_bridge.h" |
#include "media/base/video_frame.h" |
#include "net/base/mime_util.h" |
@@ -246,6 +247,34 @@ void WebMediaPlayerAndroid::paint(WebKit::WebCanvas* canvas, |
NOTIMPLEMENTED(); |
} |
+bool WebMediaPlayerAndroid::copyVideoTextureToPlatformTexture( |
+ WebKit::WebGraphicsContext3D* web_graphics_context, |
+ unsigned int texture, |
+ unsigned int level, |
+ unsigned int internal_format, |
+ bool premultiply_alpha, |
+ bool flip_y) { |
+ if (!texture_id_) |
+ return false; |
+ |
+ // The video is stored in a unmultiplied format, so premultiply if |
xhwang
2013/04/16 17:51:36
nit: s/a/an/
hkuang1
2013/04/18 01:05:07
Done.
|
+ // necessary. |
+ web_graphics_context->pixelStorei(GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM, |
+ premultiply_alpha); |
+ |
+ // Application itself needs to take care of setting the right flip_y |
+ // value down to get the expected result. |
+ // flip_y==true means to reverse the video orientation while |
+ // flip_y==false means to keep the intrinsic orientation. |
+ web_graphics_context->pixelStorei(GL_UNPACK_FLIP_Y_CHROMIUM, flip_y); |
+ web_graphics_context->copyTextureCHROMIUM(GL_TEXTURE_2D, texture_id_, |
+ texture, level, internal_format); |
+ web_graphics_context->pixelStorei(GL_UNPACK_FLIP_Y_CHROMIUM, false); |
+ web_graphics_context->pixelStorei(GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM, |
+ false); |
xhwang
2013/04/16 17:51:36
We have web_graphics_context->flush() for better p
hkuang1
2013/04/18 01:05:07
This may bring some performance gain on desktop pl
|
+ return true; |
+} |
+ |
bool WebMediaPlayerAndroid::hasSingleSecurityOrigin() const { |
return false; |
} |