Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1310)

Unified Diff: media/blink/webmediaplayer_impl.cc

Issue 1978973002: Moves video frame callbacks from VideoFrameCompositor to Renderer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixes media_bit_reader_fuzzer link error Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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,

Powered by Google App Engine
This is Rietveld 408576698