Index: media/filters/ffmpeg_audio_decoder.cc |
diff --git a/media/filters/ffmpeg_audio_decoder.cc b/media/filters/ffmpeg_audio_decoder.cc |
index 14308435c5eeb8e641bc8f28fc80169412ab9877..86f8d580a54a15daa580606c161728bbebb3bb71 100644 |
--- a/media/filters/ffmpeg_audio_decoder.cc |
+++ b/media/filters/ffmpeg_audio_decoder.cc |
@@ -392,6 +392,18 @@ bool FFmpegAudioDecoder::ConfigureDecoder() { |
// Release existing decoder resources if necessary. |
ReleaseFFmpegResources(); |
+ // Use OpusAudioDecoder for Opus for now, even if FFmpeg claims to support |
+ // Opus decode. Failure to configure here should lead to fall-back to |
+ // OpusAudioDecoder. |
+ // TODO(wolenetz,dalecurtis): Remove OpusAudioDecoder and use |
+ // FFmpegAudioDecoder instead for Opus. |
+ if (config_.codec() == kCodecOpus) { |
+ MEDIA_LOG(DEBUG, media_log_) |
+ << "Opus decode via FFmpegAudioDecoder is disabled"; |
+ state_ = kUninitialized; |
+ return false; |
+ } |
+ |
// Initialize AVCodecContext structure. |
codec_context_.reset(avcodec_alloc_context3(NULL)); |
AudioDecoderConfigToAVCodecContext(config_, codec_context_.get()); |