| Index: media/blink/webmediaplayer_impl.cc
|
| diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc
|
| index 4169623b751e515d1dfdd5e9664b0218d141971f..a1bf52163f5d9839e3652b1c400f79e21cfaf0d7 100644
|
| --- a/media/blink/webmediaplayer_impl.cc
|
| +++ b/media/blink/webmediaplayer_impl.cc
|
| @@ -192,10 +192,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
|
| params.compositor_task_runner()
|
| ? params.compositor_task_runner()
|
| : base::MessageLoop::current()->task_runner()),
|
| - compositor_(new VideoFrameCompositor(
|
| - compositor_task_runner_,
|
| - BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnNaturalSizeChanged),
|
| - BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnOpacityChanged))),
|
| + compositor_(new VideoFrameCompositor(compositor_task_runner_)),
|
| is_cdm_attached_(false),
|
| #if defined(OS_ANDROID) // WMPI_CAST
|
| cast_impl_(this, client_, params.context_3d_cb()),
|
| @@ -1083,6 +1080,35 @@ void WebMediaPlayerImpl::OnWaitingForDecryptionKey() {
|
| encrypted_client_->didResumePlaybackBlockedForKey();
|
| }
|
|
|
| +void WebMediaPlayerImpl::OnVideoNaturalSizeChange(const gfx::Size& size) {
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| + DCHECK_NE(ready_state_, WebMediaPlayer::ReadyStateHaveNothing);
|
| +
|
| + if (size == pipeline_metadata_.natural_size)
|
| + return;
|
| +
|
| + TRACE_EVENT0("media", "WebMediaPlayerImpl::OnNaturalSizeChanged");
|
| + media_log_->AddEvent(
|
| + media_log_->CreateVideoSizeSetEvent(size.width(), size.height()));
|
| +
|
| + if (fullscreen_ && surface_manager_)
|
| + surface_manager_->NaturalSizeChanged(size);
|
| +
|
| + pipeline_metadata_.natural_size = size;
|
| + client_->sizeChanged();
|
| +}
|
| +
|
| +void WebMediaPlayerImpl::OnVideoOpacityChange(bool opaque) {
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| + DCHECK_NE(ready_state_, WebMediaPlayer::ReadyStateHaveNothing);
|
| +
|
| + opaque_ = opaque;
|
| + // Modify content opaqueness of cc::Layer directly so that
|
| + // SetContentsOpaqueIsFixed is ignored.
|
| + if (video_weblayer_)
|
| + video_weblayer_->layer()->SetContentsOpaque(opaque_);
|
| +}
|
| +
|
| void WebMediaPlayerImpl::OnHidden() {
|
| DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| UpdatePlayState();
|
| @@ -1342,35 +1368,6 @@ double WebMediaPlayerImpl::GetPipelineDuration() const {
|
| return duration.InSecondsF();
|
| }
|
|
|
| -void WebMediaPlayerImpl::OnNaturalSizeChanged(gfx::Size size) {
|
| - DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| - DCHECK_NE(ready_state_, WebMediaPlayer::ReadyStateHaveNothing);
|
| -
|
| - if (size == pipeline_metadata_.natural_size)
|
| - return;
|
| -
|
| - TRACE_EVENT0("media", "WebMediaPlayerImpl::OnNaturalSizeChanged");
|
| - media_log_->AddEvent(
|
| - media_log_->CreateVideoSizeSetEvent(size.width(), size.height()));
|
| -
|
| - if (fullscreen_ && surface_manager_)
|
| - surface_manager_->NaturalSizeChanged(size);
|
| -
|
| - pipeline_metadata_.natural_size = size;
|
| - client_->sizeChanged();
|
| -}
|
| -
|
| -void WebMediaPlayerImpl::OnOpacityChanged(bool opaque) {
|
| - DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| - DCHECK_NE(ready_state_, WebMediaPlayer::ReadyStateHaveNothing);
|
| -
|
| - opaque_ = opaque;
|
| - // Modify content opaqueness of cc::Layer directly so that
|
| - // SetContentsOpaqueIsFixed is ignored.
|
| - if (video_weblayer_)
|
| - video_weblayer_->layer()->SetContentsOpaque(opaque_);
|
| -}
|
| -
|
| static void GetCurrentFrameAndSignal(
|
| VideoFrameCompositor* compositor,
|
| scoped_refptr<VideoFrame>* video_frame_out,
|
|
|