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