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 6fae70c638a96797f6cfcea9cdde41146766cdce..12b73ebcadfc5260cd2ef04ff65a2f8750a380c1 100644 |
--- a/content/renderer/media/android/webmediaplayer_android.cc |
+++ b/content/renderer/media/android/webmediaplayer_android.cc |
@@ -69,12 +69,13 @@ namespace content { |
void WebMediaPlayerAndroid::OnReleaseRemotePlaybackTexture( |
const scoped_refptr<base::MessageLoopProxy>& main_loop, |
const base::WeakPtr<WebMediaPlayerAndroid>& player, |
- scoped_ptr<gpu::MailboxHolder> mailbox_holder) { |
+ scoped_ptr<gpu::MailboxHolder> mailbox_holder, |
+ const std::vector<uint32>& release_sync_points) { |
main_loop->PostTask( |
FROM_HERE, |
base::Bind(&WebMediaPlayerAndroid::DoReleaseRemotePlaybackTexture, |
player, |
- mailbox_holder->sync_point)); |
+ release_sync_points)); |
} |
WebMediaPlayerAndroid::WebMediaPlayerAndroid( |
@@ -1413,14 +1414,15 @@ void WebMediaPlayerAndroid::SetDecryptorReadyCB( |
decryptor_ready_cb_ = decryptor_ready_cb; |
} |
-void WebMediaPlayerAndroid::DoReleaseRemotePlaybackTexture(uint32 sync_point) { |
+void WebMediaPlayerAndroid::DoReleaseRemotePlaybackTexture( |
+ const std::vector<uint32>& release_sync_points) { |
DCHECK(main_thread_checker_.CalledOnValidThread()); |
DCHECK(remote_playback_texture_id_); |
GLES2Interface* gl = stream_texture_factory_->ContextGL(); |
- if (sync_point) |
- gl->WaitSyncPointCHROMIUM(sync_point); |
+ for (size_t i = 0; i < release_sync_points.size(); i++) |
+ gl->WaitSyncPointCHROMIUM(release_sync_points[i]); |
gl->DeleteTextures(1, &remote_playback_texture_id_); |
remote_playback_texture_id_ = 0; |
} |