Commit 331b1cc1 authored by ziyangch's avatar ziyangch Committed by Commit Bot

[Chromecast] Replace Unretained(this) with WeakPtr in MediaPipelineBackendForMixer.

BUG=internal b/117194691

Test=Cast from Youtube to Google Home Hub.(Since we could not reproduce
the bug in the office, this is only a general cast test.)

Change-Id: I2f9ac0079bc3d5846dcd5f67a860796b7340fb6d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1529998
Commit-Queue: Ziyang Cheng <ziyangch@chromium.org>
Reviewed-by: default avatarKenneth MacKay <kmackay@chromium.org>
Reviewed-by: default avatarLuke Halliwell <halliwell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#642660}
parent c8f4f391
...@@ -37,9 +37,13 @@ namespace media { ...@@ -37,9 +37,13 @@ namespace media {
MediaPipelineBackendForMixer::MediaPipelineBackendForMixer( MediaPipelineBackendForMixer::MediaPipelineBackendForMixer(
const MediaPipelineDeviceParams& params) const MediaPipelineDeviceParams& params)
: state_(kStateUninitialized), params_(params) {} : state_(kStateUninitialized), params_(params), weak_factory_(this) {
weak_this_ = weak_factory_.GetWeakPtr();
}
MediaPipelineBackendForMixer::~MediaPipelineBackendForMixer() {} MediaPipelineBackendForMixer::~MediaPipelineBackendForMixer() {
DCHECK(GetTaskRunner()->RunsTasksInCurrentSequence());
}
MediaPipelineBackendForMixer::AudioDecoder* MediaPipelineBackendForMixer::AudioDecoder*
MediaPipelineBackendForMixer::CreateAudioDecoder() { MediaPipelineBackendForMixer::CreateAudioDecoder() {
...@@ -262,7 +266,7 @@ void MediaPipelineBackendForMixer::VideoReadyToPlay() { ...@@ -262,7 +266,7 @@ void MediaPipelineBackendForMixer::VideoReadyToPlay() {
GetTaskRunner()->PostTask( GetTaskRunner()->PostTask(
FROM_HERE, FROM_HERE,
base::BindOnce(&MediaPipelineBackendForMixer::OnVideoReadyToPlay, base::BindOnce(&MediaPipelineBackendForMixer::OnVideoReadyToPlay,
base::Unretained(this))); weak_this_));
} }
void MediaPipelineBackendForMixer::OnVideoReadyToPlay() { void MediaPipelineBackendForMixer::OnVideoReadyToPlay() {
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
#include "chromecast/media/cma/backend/video_decoder_for_mixer.h" #include "chromecast/media/cma/backend/video_decoder_for_mixer.h"
#include "chromecast/public/media/media_pipeline_backend.h" #include "chromecast/public/media/media_pipeline_backend.h"
#include "chromecast/public/media/media_pipeline_device_params.h" #include "chromecast/public/media/media_pipeline_device_params.h"
...@@ -99,6 +100,9 @@ class MediaPipelineBackendForMixer : public MediaPipelineBackend, ...@@ -99,6 +100,9 @@ class MediaPipelineBackendForMixer : public MediaPipelineBackend,
bool playback_started_ = false; bool playback_started_ = false;
float starting_playback_rate_ = 1.0; float starting_playback_rate_ = 1.0;
base::WeakPtr<MediaPipelineBackendForMixer> weak_this_;
base::WeakPtrFactory<MediaPipelineBackendForMixer> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(MediaPipelineBackendForMixer); DISALLOW_COPY_AND_ASSIGN(MediaPipelineBackendForMixer);
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment