diff options
Diffstat (limited to 'media/filters/fake_video_decoder.cc')
-rw-r--r-- | media/filters/fake_video_decoder.cc | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/media/filters/fake_video_decoder.cc b/media/filters/fake_video_decoder.cc index d5bb03bf68..56d1484db8 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()); |