Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1172)

Unified Diff: media/filters/fake_video_decoder.cc

Issue 193303002: WeakPtr destruction order cleanup: media edition. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase. Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/filters/fake_video_decoder.h ('k') | media/filters/ffmpeg_audio_decoder.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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());
« no previous file with comments | « media/filters/fake_video_decoder.h ('k') | media/filters/ffmpeg_audio_decoder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698