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 {
MediaPipelineBackendForMixer::MediaPipelineBackendForMixer(
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::CreateAudioDecoder() {
......@@ -262,7 +266,7 @@ void MediaPipelineBackendForMixer::VideoReadyToPlay() {
GetTaskRunner()->PostTask(
FROM_HERE,
base::BindOnce(&MediaPipelineBackendForMixer::OnVideoReadyToPlay,
base::Unretained(this)));
weak_this_));
}
void MediaPipelineBackendForMixer::OnVideoReadyToPlay() {
......
......@@ -10,6 +10,7 @@
#include "base/macros.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/public/media/media_pipeline_backend.h"
#include "chromecast/public/media/media_pipeline_device_params.h"
......@@ -99,6 +100,9 @@ class MediaPipelineBackendForMixer : public MediaPipelineBackend,
bool playback_started_ = false;
float starting_playback_rate_ = 1.0;
base::WeakPtr<MediaPipelineBackendForMixer> weak_this_;
base::WeakPtrFactory<MediaPipelineBackendForMixer> weak_factory_;
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