diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_compositor.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_compositor.cc | 47 |
1 files changed, 10 insertions, 37 deletions
diff --git a/chromium/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_compositor.cc b/chromium/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_compositor.cc index 7ac02b2b986..9d627d986f5 100644 --- a/chromium/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_compositor.cc +++ b/chromium/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_compositor.cc @@ -195,18 +195,18 @@ WebMediaPlayerMSCompositor::WebMediaPlayerMSCompositor( dropped_frame_count_(0), stopped_(true), render_started_(!stopped_) { + weak_this_ = weak_ptr_factory_.GetWeakPtr(); if (surface_layer_mode != WebMediaPlayer::SurfaceLayerMode::kNever) { submitter_ = std::move(submitter); PostCrossThreadTask( *video_frame_compositor_task_runner_, FROM_HERE, CrossThreadBindOnce(&WebMediaPlayerMSCompositor::InitializeSubmitter, - weak_ptr_factory_.GetWeakPtr())); + weak_this_)); update_submission_state_callback_ = base::BindPostTask( video_frame_compositor_task_runner_, ConvertToBaseRepeatingCallback(CrossThreadBindRepeating( - &WebMediaPlayerMSCompositor::SetIsSurfaceVisible, - weak_ptr_factory_.GetWeakPtr()))); + &WebMediaPlayerMSCompositor::SetIsSurfaceVisible, weak_this_))); } HeapVector<Member<MediaStreamComponent>> video_components; @@ -234,27 +234,12 @@ WebMediaPlayerMSCompositor::WebMediaPlayerMSCompositor( } WebMediaPlayerMSCompositor::~WebMediaPlayerMSCompositor() { - // Ensured by destructor traits. DCHECK(video_frame_compositor_task_runner_->BelongsToCurrentThread()); if (video_frame_provider_client_) { video_frame_provider_client_->StopUsingProvider(); } } -// static -void WebMediaPlayerMSCompositorTraits::Destruct( - const WebMediaPlayerMSCompositor* compositor) { - if (!compositor->video_frame_compositor_task_runner_ - ->BelongsToCurrentThread()) { - PostCrossThreadTask( - *compositor->video_frame_compositor_task_runner_, FROM_HERE, - CrossThreadBindOnce(&WebMediaPlayerMSCompositorTraits::Destruct, - CrossThreadUnretained(compositor))); - return; - } - delete compositor; -} - void WebMediaPlayerMSCompositor::InitializeSubmitter() { DCHECK(video_frame_compositor_task_runner_->BelongsToCurrentThread()); submitter_->Initialize(this, /*is_media_stream=*/true); @@ -300,7 +285,7 @@ void WebMediaPlayerMSCompositor::SetForceBeginFrames(bool enable) { PostCrossThreadTask( *video_frame_compositor_task_runner_, FROM_HERE, CrossThreadBindOnce(&WebMediaPlayerMSCompositor::SetForceBeginFrames, - weak_ptr_factory_.GetWeakPtr(), enable)); + weak_this_, enable)); return; } @@ -582,7 +567,7 @@ void WebMediaPlayerMSCompositor::StartRendering() { PostCrossThreadTask( *video_frame_compositor_task_runner_, FROM_HERE, CrossThreadBindOnce(&WebMediaPlayerMSCompositor::StartRenderingInternal, - WrapRefCounted(this))); + weak_this_)); } void WebMediaPlayerMSCompositor::StopRendering() { @@ -590,18 +575,7 @@ void WebMediaPlayerMSCompositor::StopRendering() { PostCrossThreadTask( *video_frame_compositor_task_runner_, FROM_HERE, CrossThreadBindOnce(&WebMediaPlayerMSCompositor::StopRenderingInternal, - WrapRefCounted(this))); -} - -void WebMediaPlayerMSCompositor::ReplaceCurrentFrameWithACopy() { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); - // Bounce this call off of IO thread to since there might still be frames - // passed on IO thread. - io_task_runner_->PostTask( - FROM_HERE, - media::BindToCurrentLoop(WTF::Bind( - &WebMediaPlayerMSCompositor::ReplaceCurrentFrameWithACopyInternal, - WrapRefCounted(this)))); + weak_this_)); } bool WebMediaPlayerMSCompositor::MapTimestampsToRenderTimeTicks( @@ -671,7 +645,7 @@ void WebMediaPlayerMSCompositor::RenderWithoutAlgorithm( *video_frame_compositor_task_runner_, FROM_HERE, CrossThreadBindOnce( &WebMediaPlayerMSCompositor::RenderWithoutAlgorithmOnCompositor, - WrapRefCounted(this), std::move(frame), is_copy)); + weak_this_, std::move(frame), is_copy)); } void WebMediaPlayerMSCompositor::RenderWithoutAlgorithmOnCompositor( @@ -770,9 +744,8 @@ void WebMediaPlayerMSCompositor::SetCurrentFrame( PostCrossThreadTask( *video_frame_compositor_task_runner_, FROM_HERE, CrossThreadBindOnce(&WebMediaPlayerMSCompositor::CheckForFrameChanges, - WrapRefCounted(this), is_first_frame, - has_frame_size_changed, std::move(new_transform), - std::move(new_opacity))); + weak_this_, is_first_frame, has_frame_size_changed, + std::move(new_transform), std::move(new_opacity))); } void WebMediaPlayerMSCompositor::CheckForFrameChanges( @@ -839,7 +812,7 @@ void WebMediaPlayerMSCompositor::StopRenderingInternal() { video_frame_provider_client_->StopRendering(); } -void WebMediaPlayerMSCompositor::ReplaceCurrentFrameWithACopyInternal() { +void WebMediaPlayerMSCompositor::ReplaceCurrentFrameWithACopy() { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); scoped_refptr<media::VideoFrame> current_frame_ref; { |