| Index: media/blink/webmediaplayer_impl.cc
|
| diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc
|
| index 52ee0e8e7cb426264f7b91c0169f9e6e99283dd1..01a431f59b70becc1cc88b1ab2d9d4d79d6291e4 100644
|
| --- a/media/blink/webmediaplayer_impl.cc
|
| +++ b/media/blink/webmediaplayer_impl.cc
|
| @@ -61,6 +61,7 @@
|
| #include "third_party/WebKit/public/platform/WebSize.h"
|
| #include "third_party/WebKit/public/platform/WebString.h"
|
| #include "third_party/WebKit/public/platform/WebURL.h"
|
| +#include "third_party/WebKit/public/platform/WebVideoSurfaceLayerBridge.h"
|
| #include "third_party/WebKit/public/web/WebDocument.h"
|
| #include "third_party/WebKit/public/web/WebFrame.h"
|
| #include "third_party/WebKit/public/web/WebLocalFrame.h"
|
| @@ -267,6 +268,9 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
|
| DCHECK(client_);
|
| DCHECK(delegate_);
|
|
|
| + if (base::FeatureList::IsEnabled(media::kVideoSurface))
|
| + bridge_ = base::WrapUnique(blink::WebVideoSurfaceLayerBridge::Create());
|
| +
|
| force_video_overlays_ = base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| switches::kForceVideoOverlays);
|
|
|
| @@ -323,7 +327,7 @@ WebMediaPlayerImpl::~WebMediaPlayerImpl() {
|
|
|
| // Destruct compositor resources in the proper order.
|
| client_->SetWebLayer(nullptr);
|
| - if (video_weblayer_)
|
| + if (video_weblayer_ && !base::FeatureList::IsEnabled(kVideoSurface))
|
| static_cast<cc::VideoLayer*>(video_weblayer_->layer())->StopUsingProvider();
|
| compositor_task_runner_->DeleteSoon(FROM_HERE, compositor_);
|
|
|
| @@ -1349,8 +1353,12 @@ void WebMediaPlayerImpl::OnMetadata(PipelineMetadata metadata) {
|
| }
|
|
|
| DCHECK(!video_weblayer_);
|
| - video_weblayer_.reset(new cc_blink::WebLayerImpl(cc::VideoLayer::Create(
|
| - compositor_, pipeline_metadata_.video_rotation)));
|
| + if (base::FeatureList::IsEnabled(media::kVideoSurface)) {
|
| + video_weblayer_.reset(new cc_blink::WebLayerImpl(bridge_->GetLayer()));
|
| + } else {
|
| + video_weblayer_.reset(new cc_blink::WebLayerImpl(cc::VideoLayer::Create(
|
| + compositor_, pipeline_metadata_.video_rotation)));
|
| + }
|
| video_weblayer_->layer()->SetContentsOpaque(opaque_);
|
| video_weblayer_->SetContentsOpaqueIsFixed(true);
|
| client_->SetWebLayer(video_weblayer_.get());
|
|
|