| Index: content/renderer/media/webmediaplayer_impl.cc
|
| diff --git a/content/renderer/media/webmediaplayer_impl.cc b/content/renderer/media/webmediaplayer_impl.cc
|
| index 9e22d4f72b7d0fca5c6e52e8d4e538f7cc61f1bc..e01bdc07b4fa16ba9289809b7b66872eaafea872 100644
|
| --- a/content/renderer/media/webmediaplayer_impl.cc
|
| +++ b/content/renderer/media/webmediaplayer_impl.cc
|
| @@ -118,6 +118,23 @@ const double kMaxRate = 16.0;
|
| // Prefix for histograms related to Encrypted Media Extensions.
|
| const char* kMediaEme = "Media.EME.";
|
|
|
| +class SyncPointClientImpl : public media::VideoFrame::SyncPointClient {
|
| + public:
|
| + explicit SyncPointClientImpl(
|
| + blink::WebGraphicsContext3D* web_graphics_context)
|
| + : web_graphics_context_(web_graphics_context) {}
|
| + virtual ~SyncPointClientImpl() {}
|
| + virtual uint32 InsertSyncPoint() {
|
| + return web_graphics_context_->insertSyncPoint();
|
| + }
|
| + virtual void WaitSyncPoint(uint32 sync_point) {
|
| + web_graphics_context_->waitSyncPoint(sync_point);
|
| + }
|
| +
|
| + private:
|
| + blink::WebGraphicsContext3D* web_graphics_context_;
|
| +};
|
| +
|
| } // namespace
|
|
|
| namespace content {
|
| @@ -651,7 +668,9 @@ bool WebMediaPlayerImpl::copyVideoTextureToPlatformTexture(
|
|
|
| web_graphics_context->deleteTexture(source_texture);
|
| web_graphics_context->flush();
|
| - video_frame->AppendReleaseSyncPoint(web_graphics_context->insertSyncPoint());
|
| +
|
| + SyncPointClientImpl client(web_graphics_context);
|
| + video_frame->UpdateReleaseSyncPoint(&client);
|
| return true;
|
| }
|
|
|
|
|