| Index: content/renderer/media/android/webmediaplayer_android.cc
|
| diff --git a/content/renderer/media/android/webmediaplayer_android.cc b/content/renderer/media/android/webmediaplayer_android.cc
|
| index 4e6db8694bfc0730f3b2e3cf265ee2ca9dc854e1..e7325150d116abb22f293c4c9aac011d85d1ca56 100644
|
| --- a/content/renderer/media/android/webmediaplayer_android.cc
|
| +++ b/content/renderer/media/android/webmediaplayer_android.cc
|
| @@ -87,9 +87,9 @@ const char* kMediaEme = "Media.EME.";
|
| void OnReleaseTexture(
|
| const scoped_refptr<content::StreamTextureFactory>& factories,
|
| uint32 texture_id,
|
| - uint32 release_sync_point) {
|
| + const gpu::SyncToken& sync_token) {
|
| GLES2Interface* gl = factories->ContextGL();
|
| - gl->WaitSyncPointCHROMIUM(release_sync_point);
|
| + gl->WaitSyncTokenCHROMIUM(sync_token.GetConstData());
|
| gl->DeleteTextures(1, &texture_id);
|
| // Flush to ensure that the stream texture gets deleted in a timely fashion.
|
| gl->ShallowFlushCHROMIUM();
|
| @@ -130,17 +130,20 @@ bool AllocateSkBitmapTexture(GrContext* gr,
|
| return true;
|
| }
|
|
|
| -class SyncPointClientImpl : public media::VideoFrame::SyncPointClient {
|
| +class SyncTokenClientImpl : public media::VideoFrame::SyncTokenClient {
|
| public:
|
| - explicit SyncPointClientImpl(
|
| + explicit SyncTokenClientImpl(
|
| blink::WebGraphicsContext3D* web_graphics_context)
|
| : web_graphics_context_(web_graphics_context) {}
|
| - ~SyncPointClientImpl() override {}
|
| + ~SyncTokenClientImpl() override {}
|
| uint32 InsertSyncPoint() override {
|
| - return web_graphics_context_->insertSyncPoint();
|
| + gpu::SyncToken sync_token;
|
| + if (!web_graphics_context_->insertSyncPoint(sync_token.GetData()))
|
| + return 0;
|
| + return static_cast<uint32>(sync_token.release_count());
|
| }
|
| - void WaitSyncPoint(uint32 sync_point) override {
|
| - web_graphics_context_->waitSyncPoint(sync_point);
|
| + void WaitSyncToken(const gpu::SyncToken& sync_token) override {
|
| + web_graphics_context_->waitSyncToken(sync_token.GetConstData());
|
| }
|
|
|
| private:
|
| @@ -684,7 +687,7 @@ bool WebMediaPlayerAndroid::copyVideoTextureToPlatformTexture(
|
| mailbox_holder.texture_target == GL_TEXTURE_EXTERNAL_OES) ||
|
| (is_remote_ && mailbox_holder.texture_target == GL_TEXTURE_2D));
|
|
|
| - web_graphics_context->waitSyncPoint(mailbox_holder.sync_point);
|
| + web_graphics_context->waitSyncToken(mailbox_holder.sync_token.GetConstData());
|
|
|
| // Ensure the target of texture is set before copyTextureCHROMIUM, otherwise
|
| // an invalid texture target may be used for copy texture.
|
| @@ -703,8 +706,8 @@ bool WebMediaPlayerAndroid::copyVideoTextureToPlatformTexture(
|
| web_graphics_context->deleteTexture(src_texture);
|
| web_graphics_context->flush();
|
|
|
| - SyncPointClientImpl client(web_graphics_context);
|
| - video_frame->UpdateReleaseSyncPoint(&client);
|
| + SyncTokenClientImpl client(web_graphics_context);
|
| + video_frame->UpdateReleaseSyncToken(&client);
|
| return true;
|
| }
|
|
|
| @@ -1228,12 +1231,12 @@ void WebMediaPlayerAndroid::DrawRemotePlaybackText(
|
| gl->GenMailboxCHROMIUM(texture_mailbox.name);
|
| gl->ProduceTextureCHROMIUM(texture_target, texture_mailbox.name);
|
| gl->Flush();
|
| - GLuint texture_mailbox_sync_point = gl->InsertSyncPointCHROMIUM();
|
| + gpu::SyncToken texture_mailbox_sync_token(gl->InsertSyncPointCHROMIUM());
|
|
|
| scoped_refptr<VideoFrame> new_frame = VideoFrame::WrapNativeTexture(
|
| media::PIXEL_FORMAT_ARGB,
|
| - gpu::MailboxHolder(texture_mailbox, texture_target,
|
| - texture_mailbox_sync_point),
|
| + gpu::MailboxHolder(texture_mailbox, texture_mailbox_sync_token,
|
| + texture_target),
|
| media::BindToCurrentLoop(base::Bind(&OnReleaseTexture,
|
| stream_texture_factory_,
|
| remote_playback_texture_id)),
|
| @@ -1266,12 +1269,12 @@ void WebMediaPlayerAndroid::ReallocateVideoFrame() {
|
| GLuint texture_id_ref = gl->CreateAndConsumeTextureCHROMIUM(
|
| texture_target, texture_mailbox_.name);
|
| gl->Flush();
|
| - GLuint texture_mailbox_sync_point = gl->InsertSyncPointCHROMIUM();
|
| + gpu::SyncToken texture_mailbox_sync_token(gl->InsertSyncPointCHROMIUM());
|
|
|
| scoped_refptr<VideoFrame> new_frame = VideoFrame::WrapNativeTexture(
|
| media::PIXEL_FORMAT_ARGB,
|
| - gpu::MailboxHolder(texture_mailbox_, texture_target,
|
| - texture_mailbox_sync_point),
|
| + gpu::MailboxHolder(texture_mailbox_, texture_mailbox_sync_token,
|
| + texture_target),
|
| media::BindToCurrentLoop(base::Bind(
|
| &OnReleaseTexture, stream_texture_factory_, texture_id_ref)),
|
| natural_size_, gfx::Rect(natural_size_), natural_size_,
|
|
|