| Index: media/filters/opus_audio_decoder.cc
|
| diff --git a/media/filters/opus_audio_decoder.cc b/media/filters/opus_audio_decoder.cc
|
| index 4e5e71f70e5aea18c5e7058b04a4d58413e3fcf6..5ddc244ce952c46a18f81f9d099bc6c5e245b4ee 100644
|
| --- a/media/filters/opus_audio_decoder.cc
|
| +++ b/media/filters/opus_audio_decoder.cc
|
| @@ -289,6 +289,9 @@ void OpusAudioDecoder::Reset(const base::Closure& closure) {
|
| void OpusAudioDecoder::Stop() {
|
| DCHECK(task_runner_->BelongsToCurrentThread());
|
|
|
| + if (!opus_decoder_)
|
| + return;
|
| +
|
| opus_multistream_decoder_ctl(opus_decoder_, OPUS_RESET_STATE);
|
| ResetTimestampState();
|
| CloseDecoder();
|
| @@ -398,7 +401,8 @@ bool OpusAudioDecoder::ConfigureDecoder() {
|
|
|
| if (config_.codec_delay() != opus_extra_data.skip_samples) {
|
| DLOG(ERROR) << "Invalid file. Codec Delay in container does not match the "
|
| - << "value in Opus Extra Data.";
|
| + << "value in Opus Extra Data. " << config_.codec_delay()
|
| + << " vs " << opus_extra_data.skip_samples;
|
| return false;
|
| }
|
|
|
| @@ -491,12 +495,7 @@ bool OpusAudioDecoder::Decode(const scoped_refptr<DecoderBuffer>& input,
|
| if (output_timestamp_helper_->base_timestamp() == kNoTimestamp() &&
|
| !input->end_of_stream()) {
|
| DCHECK(input->timestamp() != kNoTimestamp());
|
| - // Adjust the timestamp helper so the base timestamp is corrected for frames
|
| - // dropped due to codec delay.
|
| output_timestamp_helper_->SetBaseTimestamp(input->timestamp());
|
| - output_timestamp_helper_->SetBaseTimestamp(
|
| - input->timestamp() -
|
| - output_timestamp_helper_->GetFrameDuration(config_.codec_delay()));
|
| }
|
|
|
| // Trim off any extraneous allocation.
|
|
|