| Index: media/filters/fake_video_decoder.cc
|
| diff --git a/media/filters/fake_video_decoder.cc b/media/filters/fake_video_decoder.cc
|
| index d5bb03bf6884f2044cbad0464e3ebde5c32aa149..56d1484db876895de7d6a6a1898f1b9485888e5b 100644
|
| --- a/media/filters/fake_video_decoder.cc
|
| +++ b/media/filters/fake_video_decoder.cc
|
| @@ -16,11 +16,11 @@ namespace media {
|
| FakeVideoDecoder::FakeVideoDecoder(int decoding_delay,
|
| bool supports_get_decode_output)
|
| : task_runner_(base::MessageLoopProxy::current()),
|
| - weak_factory_(this),
|
| decoding_delay_(decoding_delay),
|
| supports_get_decode_output_(supports_get_decode_output),
|
| state_(UNINITIALIZED),
|
| - total_bytes_decoded_(0) {
|
| + total_bytes_decoded_(0),
|
| + weak_factory_(this) {
|
| DCHECK_GE(decoding_delay, 0);
|
| }
|
|
|
| @@ -35,8 +35,6 @@ void FakeVideoDecoder::Initialize(const VideoDecoderConfig& config,
|
| DCHECK(decode_cb_.IsNull()) << "No reinitialization during pending decode.";
|
| DCHECK(reset_cb_.IsNull()) << "No reinitialization during pending reset.";
|
|
|
| - weak_this_ = weak_factory_.GetWeakPtr();
|
| -
|
| current_config_ = config;
|
| init_cb_.SetCallback(BindToCurrentLoop(status_cb));
|
|
|
| @@ -57,8 +55,11 @@ void FakeVideoDecoder::Decode(const scoped_refptr<DecoderBuffer>& buffer,
|
| DCHECK_LE(decoded_frames_.size(), static_cast<size_t>(decoding_delay_));
|
|
|
| int buffer_size = buffer->end_of_stream() ? 0 : buffer->data_size();
|
| - decode_cb_.SetCallback(BindToCurrentLoop(base::Bind(
|
| - &FakeVideoDecoder::OnFrameDecoded, weak_this_, buffer_size, decode_cb)));
|
| + decode_cb_.SetCallback(
|
| + BindToCurrentLoop(base::Bind(&FakeVideoDecoder::OnFrameDecoded,
|
| + weak_factory_.GetWeakPtr(),
|
| + buffer_size,
|
| + decode_cb)));
|
|
|
| if (buffer->end_of_stream() && decoded_frames_.empty()) {
|
| decode_cb_.RunOrHold(kOk, VideoFrame::CreateEOSFrame());
|
|
|