| Index: media/filters/decrypting_demuxer_stream.cc
|
| diff --git a/media/filters/decrypting_demuxer_stream.cc b/media/filters/decrypting_demuxer_stream.cc
|
| index e7b0f676bd0ece533aae2f4dc3b0c6b4eb693a7d..4ec6c530b2411efdbb170350c544a22dfa687e7a 100644
|
| --- a/media/filters/decrypting_demuxer_stream.cc
|
| +++ b/media/filters/decrypting_demuxer_stream.cc
|
| @@ -74,7 +74,6 @@ void DecryptingDemuxerStream::Reset(const base::Closure& closure) {
|
| DVLOG(2) << __FUNCTION__ << " - state: " << state_;
|
| DCHECK(task_runner_->BelongsToCurrentThread());
|
| DCHECK(state_ != kUninitialized) << state_;
|
| - DCHECK(state_ != kStopped) << state_;
|
| DCHECK(reset_cb_.is_null());
|
|
|
| reset_cb_ = BindToCurrentLoop(closure);
|
| @@ -110,35 +109,6 @@ void DecryptingDemuxerStream::Reset(const base::Closure& closure) {
|
| DoReset();
|
| }
|
|
|
| -void DecryptingDemuxerStream::Stop() {
|
| - DVLOG(2) << __FUNCTION__ << " - state: " << state_;
|
| - DCHECK(task_runner_->BelongsToCurrentThread());
|
| - DCHECK(state_ != kUninitialized) << state_;
|
| -
|
| - // Invalidate all weak pointers so that pending callbacks won't be fired into
|
| - // this object.
|
| - weak_factory_.InvalidateWeakPtrs();
|
| -
|
| - // At this point the render thread is likely paused (in WebMediaPlayerImpl's
|
| - // Destroy()), so running |closure| can't wait for anything that requires the
|
| - // render thread to process messages to complete (such as PPAPI methods).
|
| - if (decryptor_) {
|
| - decryptor_->CancelDecrypt(GetDecryptorStreamType());
|
| - decryptor_ = NULL;
|
| - }
|
| - if (!set_decryptor_ready_cb_.is_null())
|
| - base::ResetAndReturn(&set_decryptor_ready_cb_).Run(DecryptorReadyCB());
|
| - if (!init_cb_.is_null())
|
| - base::ResetAndReturn(&init_cb_).Run(PIPELINE_ERROR_ABORT);
|
| - if (!read_cb_.is_null())
|
| - base::ResetAndReturn(&read_cb_).Run(kAborted, NULL);
|
| - if (!reset_cb_.is_null())
|
| - base::ResetAndReturn(&reset_cb_).Run();
|
| - pending_buffer_to_decrypt_ = NULL;
|
| -
|
| - state_ = kStopped;
|
| -}
|
| -
|
| AudioDecoderConfig DecryptingDemuxerStream::audio_decoder_config() {
|
| DCHECK(state_ != kUninitialized && state_ != kDecryptorRequested) << state_;
|
| CHECK_EQ(demuxer_stream_->type(), AUDIO);
|
| @@ -170,6 +140,24 @@ VideoRotation DecryptingDemuxerStream::video_rotation() {
|
|
|
| DecryptingDemuxerStream::~DecryptingDemuxerStream() {
|
| DVLOG(2) << __FUNCTION__ << " : state_ = " << state_;
|
| + DCHECK(task_runner_->BelongsToCurrentThread());
|
| +
|
| + if (state_ == kUninitialized)
|
| + return;
|
| +
|
| + if (decryptor_) {
|
| + decryptor_->CancelDecrypt(GetDecryptorStreamType());
|
| + decryptor_ = NULL;
|
| + }
|
| + if (!set_decryptor_ready_cb_.is_null())
|
| + base::ResetAndReturn(&set_decryptor_ready_cb_).Run(DecryptorReadyCB());
|
| + if (!init_cb_.is_null())
|
| + base::ResetAndReturn(&init_cb_).Run(PIPELINE_ERROR_ABORT);
|
| + if (!read_cb_.is_null())
|
| + base::ResetAndReturn(&read_cb_).Run(kAborted, NULL);
|
| + if (!reset_cb_.is_null())
|
| + base::ResetAndReturn(&reset_cb_).Run();
|
| + pending_buffer_to_decrypt_ = NULL;
|
| }
|
|
|
| void DecryptingDemuxerStream::SetDecryptor(Decryptor* decryptor) {
|
|
|