OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "media/filters/decoder_stream.h" | 5 #include "media/filters/decoder_stream.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/callback_helpers.h" | 8 #include "base/callback_helpers.h" |
9 #include "base/debug/trace_event.h" | 9 #include "base/debug/trace_event.h" |
10 #include "base/location.h" | 10 #include "base/location.h" |
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
363 DVLOG(2) << __FUNCTION__; | 363 DVLOG(2) << __FUNCTION__; |
364 DCHECK(task_runner_->BelongsToCurrentThread()); | 364 DCHECK(task_runner_->BelongsToCurrentThread()); |
365 DCHECK_EQ(state_, STATE_PENDING_DEMUXER_READ) << state_; | 365 DCHECK_EQ(state_, STATE_PENDING_DEMUXER_READ) << state_; |
366 DCHECK_EQ(buffer.get() != NULL, status == DemuxerStream::kOk) << status; | 366 DCHECK_EQ(buffer.get() != NULL, status == DemuxerStream::kOk) << status; |
367 DCHECK(!read_cb_.is_null()); | 367 DCHECK(!read_cb_.is_null()); |
368 DCHECK(stop_cb_.is_null()); | 368 DCHECK(stop_cb_.is_null()); |
369 | 369 |
370 state_ = STATE_NORMAL; | 370 state_ = STATE_NORMAL; |
371 | 371 |
372 if (status == DemuxerStream::kConfigChanged) { | 372 if (status == DemuxerStream::kConfigChanged) { |
373 DCHECK(stream_->SupportsConfigChanges()); | |
scherkus (not reviewing)
2014/03/25 22:16:47
\o/
| |
373 state_ = STATE_FLUSHING_DECODER; | 374 state_ = STATE_FLUSHING_DECODER; |
374 if (!reset_cb_.is_null()) { | 375 if (!reset_cb_.is_null()) { |
375 AbortRead(); | 376 AbortRead(); |
376 // If we are using DecryptingDemuxerStream, we already called DDS::Reset() | 377 // If we are using DecryptingDemuxerStream, we already called DDS::Reset() |
377 // which will continue the resetting process in it's callback. | 378 // which will continue the resetting process in it's callback. |
378 if (!decrypting_demuxer_stream_) | 379 if (!decrypting_demuxer_stream_) |
379 Reset(base::ResetAndReturn(&reset_cb_)); | 380 Reset(base::ResetAndReturn(&reset_cb_)); |
380 // Reinitialization will continue after Reset() is done. | 381 // Reinitialization will continue after Reset() is done. |
381 } else { | 382 } else { |
382 FlushDecoder(); | 383 FlushDecoder(); |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
507 stream_ = NULL; | 508 stream_ = NULL; |
508 decoder_.reset(); | 509 decoder_.reset(); |
509 decrypting_demuxer_stream_.reset(); | 510 decrypting_demuxer_stream_.reset(); |
510 base::ResetAndReturn(&stop_cb_).Run(); | 511 base::ResetAndReturn(&stop_cb_).Run(); |
511 } | 512 } |
512 | 513 |
513 template class DecoderStream<DemuxerStream::VIDEO>; | 514 template class DecoderStream<DemuxerStream::VIDEO>; |
514 template class DecoderStream<DemuxerStream::AUDIO>; | 515 template class DecoderStream<DemuxerStream::AUDIO>; |
515 | 516 |
516 } // namespace media | 517 } // namespace media |
OLD | NEW |