Chromium Code Reviews| Index: cc/resources/video_resource_updater.cc |
| diff --git a/cc/resources/video_resource_updater.cc b/cc/resources/video_resource_updater.cc |
| index 1d93aebe3cce20f763da7349490d0f2a3f0d177b..bd38bfd9b7f8fb3a84bdec6d85fc46db1c1143d2 100644 |
| --- a/cc/resources/video_resource_updater.cc |
| +++ b/cc/resources/video_resource_updater.cc |
| @@ -284,9 +284,11 @@ VideoFrameExternalResources VideoResourceUpdater::CreateForSoftwarePlanes( |
| } |
| static void ReturnTexture(const scoped_refptr<media::VideoFrame>& frame, |
| + ContextProvider* context_provider, |
| uint32 sync_point, |
| bool lost_resource) { |
| - frame->AppendReleaseSyncPoint(sync_point); |
| + frame->AppendReleaseSyncPoint(reinterpret_cast<uintptr_t>(context_provider), |
| + sync_point); |
|
dshwang
2014/06/05 14:38:30
reinterpret_cast is ugly but I could not find bett
dshwang
2014/06/05 14:53:19
That's good question. If one client waits for sync
|
| } |
| VideoFrameExternalResources VideoResourceUpdater::CreateForHardwarePlanes( |
| @@ -322,8 +324,8 @@ VideoFrameExternalResources VideoResourceUpdater::CreateForHardwarePlanes( |
| TextureMailbox(mailbox_holder->mailbox, |
| mailbox_holder->texture_target, |
| mailbox_holder->sync_point)); |
| - external_resources.release_callbacks.push_back( |
| - base::Bind(&ReturnTexture, video_frame)); |
| + external_resources.release_callbacks.push_back(base::Bind( |
| + &ReturnTexture, video_frame, base::Unretained(context_provider_))); |
| return external_resources; |
| } |