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

Unified Diff: media/filters/fake_video_decoder.cc

Issue 395703002: Fold {Audio|Video}Decoder::Stop() into the dtor. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase only Created 6 years, 5 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/fake_video_decoder_unittest.cc » ('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 1df718227a57cfdc75355e9bc9af4f646fd1a192..05dc410f870bc1a6fad5ddbd7da11f6f7955b191 100644
--- a/media/filters/fake_video_decoder.cc
+++ b/media/filters/fake_video_decoder.cc
@@ -25,7 +25,19 @@ FakeVideoDecoder::FakeVideoDecoder(int decoding_delay,
}
FakeVideoDecoder::~FakeVideoDecoder() {
- DCHECK_EQ(state_, STATE_UNINITIALIZED);
+ DCHECK(thread_checker_.CalledOnValidThread());
+
+ if (state_ == STATE_UNINITIALIZED)
+ return;
+
+ if (!init_cb_.IsNull())
+ SatisfyInit();
+ if (!held_decode_callbacks_.empty())
+ SatisfyDecode();
+ if (!reset_cb_.IsNull())
+ SatisfyReset();
+
+ decoded_frames_.clear();
}
void FakeVideoDecoder::Initialize(const VideoDecoderConfig& config,
@@ -64,10 +76,10 @@ void FakeVideoDecoder::Decode(const scoped_refptr<DecoderBuffer>& buffer,
max_parallel_decoding_requests_);
int buffer_size = buffer->end_of_stream() ? 0 : buffer->data_size();
- DecodeCB wrapped_decode_cb =
- BindToCurrentLoop(base::Bind(&FakeVideoDecoder::OnFrameDecoded,
- weak_factory_.GetWeakPtr(),
- buffer_size, decode_cb));
+ DecodeCB wrapped_decode_cb = base::Bind(&FakeVideoDecoder::OnFrameDecoded,
+ weak_factory_.GetWeakPtr(),
+ buffer_size,
+ BindToCurrentLoop(decode_cb));
if (state_ == STATE_ERROR) {
wrapped_decode_cb.Run(kDecodeError);
@@ -100,20 +112,6 @@ void FakeVideoDecoder::Reset(const base::Closure& closure) {
DoReset();
}
-void FakeVideoDecoder::Stop() {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- if (!init_cb_.IsNull())
- SatisfyInit();
- if (!held_decode_callbacks_.empty())
- SatisfyDecode();
- if (!reset_cb_.IsNull())
- SatisfyReset();
-
- decoded_frames_.clear();
- state_ = STATE_UNINITIALIZED;
-}
-
void FakeVideoDecoder::HoldNextInit() {
DCHECK(thread_checker_.CalledOnValidThread());
init_cb_.HoldCallback();
« no previous file with comments | « media/filters/fake_video_decoder.h ('k') | media/filters/fake_video_decoder_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698