| Index: content/browser/renderer_host/surface_texture_transport_client_android.cc
|
| diff --git a/content/browser/renderer_host/surface_texture_transport_client_android.cc b/content/browser/renderer_host/surface_texture_transport_client_android.cc
|
| index 17ffe7b7d1743c71541b553b6f21f3402bbda77f..b563480efd94c65fc168c68116c0f3849ed87c61 100644
|
| --- a/content/browser/renderer_host/surface_texture_transport_client_android.cc
|
| +++ b/content/browser/renderer_host/surface_texture_transport_client_android.cc
|
| @@ -48,6 +48,7 @@ class SurfaceRefAndroid : public GpuSurfaceTracker::SurfaceRef {
|
| SurfaceTextureTransportClient::SurfaceTextureTransportClient()
|
| : window_(NULL),
|
| texture_id_(0),
|
| + texture_mailbox_sync_point_(0),
|
| surface_id_(0),
|
| weak_factory_(this) {
|
| }
|
| @@ -104,11 +105,20 @@ scoped_refptr<media::VideoFrame> SurfaceTextureTransportClient::
|
| context->bindTexture(GL_TEXTURE_EXTERNAL_OES, texture_id_);
|
| context->flush();
|
| surface_texture_->AttachToGLContext();
|
| +
|
| + context->genMailboxCHROMIUM(texture_mailbox_.name);
|
| + context->produceTextureCHROMIUM(kGLTextureExternalOES,
|
| + texture_mailbox_.name);
|
| + texture_mailbox_sync_point_ = context->insertSyncPoint();
|
| }
|
| if (!video_frame_.get()) {
|
| const gfx::Size size = video_layer_->bounds();
|
| video_frame_ = media::VideoFrame::WrapNativeTexture(
|
| - texture_id_, kGLTextureExternalOES,
|
| + new media::VideoFrame::MailboxHolder(
|
| + texture_mailbox_,
|
| + texture_mailbox_sync_point_,
|
| + media::VideoFrame::MailboxHolder::TextureNoLongerNeededCallback()),
|
| + kGLTextureExternalOES,
|
| size,
|
| gfx::Rect(gfx::Point(), size),
|
| size,
|
|
|