| Index: media/filters/video_renderer_impl.cc
|
| diff --git a/media/filters/video_renderer_impl.cc b/media/filters/video_renderer_impl.cc
|
| index e697a8355978848ea30f827353e794d1e5e4c5dd..3b9851ff6f3866c06df28d7365757142d873e3e8 100644
|
| --- a/media/filters/video_renderer_impl.cc
|
| +++ b/media/filters/video_renderer_impl.cc
|
| @@ -30,9 +30,7 @@ VideoRendererImpl::VideoRendererImpl(
|
| const SetOpaqueCB& set_opaque_cb,
|
| bool drop_frames)
|
| : task_runner_(task_runner),
|
| - weak_factory_(this),
|
| - video_frame_stream_(
|
| - task_runner, decoders.Pass(), set_decryptor_ready_cb),
|
| + video_frame_stream_(task_runner, decoders.Pass(), set_decryptor_ready_cb),
|
| received_end_of_stream_(false),
|
| frame_available_(&lock_),
|
| state_(kUninitialized),
|
| @@ -44,7 +42,8 @@ VideoRendererImpl::VideoRendererImpl(
|
| set_opaque_cb_(set_opaque_cb),
|
| last_timestamp_(kNoTimestamp()),
|
| frames_decoded_(0),
|
| - frames_dropped_(0) {
|
| + frames_dropped_(0),
|
| + weak_factory_(this) {
|
| DCHECK(!paint_cb_.is_null());
|
| }
|
|
|
| @@ -81,8 +80,9 @@ void VideoRendererImpl::Flush(const base::Closure& callback) {
|
| // stream and needs to drain it before flushing it.
|
| ready_frames_.clear();
|
| received_end_of_stream_ = false;
|
| - video_frame_stream_.Reset(base::Bind(
|
| - &VideoRendererImpl::OnVideoFrameStreamResetDone, weak_this_));
|
| + video_frame_stream_.Reset(
|
| + base::Bind(&VideoRendererImpl::OnVideoFrameStreamResetDone,
|
| + weak_factory_.GetWeakPtr()));
|
| }
|
|
|
| void VideoRendererImpl::Stop(const base::Closure& callback) {
|
| @@ -173,7 +173,6 @@ void VideoRendererImpl::Initialize(DemuxerStream* stream,
|
| DCHECK(!get_duration_cb.is_null());
|
| DCHECK_EQ(kUninitialized, state_);
|
|
|
| - weak_this_ = weak_factory_.GetWeakPtr();
|
| init_cb_ = init_cb;
|
| statistics_cb_ = statistics_cb;
|
| max_time_cb_ = max_time_cb;
|
| @@ -187,7 +186,7 @@ void VideoRendererImpl::Initialize(DemuxerStream* stream,
|
| stream,
|
| statistics_cb,
|
| base::Bind(&VideoRendererImpl::OnVideoFrameStreamInitialized,
|
| - weak_this_));
|
| + weak_factory_.GetWeakPtr()));
|
| }
|
|
|
| void VideoRendererImpl::OnVideoFrameStreamInitialized(bool success,
|
| @@ -323,8 +322,9 @@ void VideoRendererImpl::PaintNextReadyFrame_Locked() {
|
|
|
| paint_cb_.Run(next_frame);
|
|
|
| - task_runner_->PostTask(FROM_HERE, base::Bind(
|
| - &VideoRendererImpl::AttemptRead, weak_this_));
|
| + task_runner_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&VideoRendererImpl::AttemptRead, weak_factory_.GetWeakPtr()));
|
| }
|
|
|
| void VideoRendererImpl::DropNextReadyFrame_Locked() {
|
| @@ -337,8 +337,9 @@ void VideoRendererImpl::DropNextReadyFrame_Locked() {
|
| frames_decoded_++;
|
| frames_dropped_++;
|
|
|
| - task_runner_->PostTask(FROM_HERE, base::Bind(
|
| - &VideoRendererImpl::AttemptRead, weak_this_));
|
| + task_runner_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&VideoRendererImpl::AttemptRead, weak_factory_.GetWeakPtr()));
|
| }
|
|
|
| void VideoRendererImpl::FrameReady(VideoFrameStream::Status status,
|
| @@ -463,7 +464,7 @@ void VideoRendererImpl::AttemptRead_Locked() {
|
| case kPlaying:
|
| pending_read_ = true;
|
| video_frame_stream_.Read(base::Bind(&VideoRendererImpl::FrameReady,
|
| - weak_this_));
|
| + weak_factory_.GetWeakPtr()));
|
| return;
|
|
|
| case kUninitialized:
|
|
|