| Index: media/filters/decoder_stream_traits.cc
|
| diff --git a/media/filters/decoder_stream_traits.cc b/media/filters/decoder_stream_traits.cc
|
| index deaedddc372ab73126eaf0f7ba183c2a716358e3..6e30ea6f0b768e5656bf75780fa8f384631cdabe 100644
|
| --- a/media/filters/decoder_stream_traits.cc
|
| +++ b/media/filters/decoder_stream_traits.cc
|
| @@ -8,6 +8,7 @@
|
| #include "media/base/audio_buffer.h"
|
| #include "media/base/audio_decoder.h"
|
| #include "media/base/audio_decoder_config.h"
|
| +#include "media/base/media_client.h"
|
| #include "media/base/video_decoder.h"
|
| #include "media/base/video_frame.h"
|
|
|
| @@ -24,8 +25,18 @@ void DecoderStreamTraits<DemuxerStream::AUDIO>::InitializeDecoder(
|
| const InitCB& init_cb,
|
| const OutputCB& output_cb) {
|
| DCHECK(stream->audio_decoder_config().IsValidConfig());
|
| - decoder->Initialize(stream->audio_decoder_config(), cdm_context, init_cb,
|
| - output_cb);
|
| +
|
| + AudioDecoderConfig config = stream->audio_decoder_config();
|
| + AudioCodec codec = config.codec();
|
| + MediaClient* media_client = GetMediaClient();
|
| + if (media_client && media_client->IsSupportedPassthroughAudio(codec)) {
|
| + config.Initialize(kCodecRaw, kSampleFormatRaw, config.channel_layout(),
|
| + config.samples_per_second(), config.extra_data(),
|
| + config.encryption_scheme(), config.seek_preroll(),
|
| + config.codec_delay());
|
| + }
|
| +
|
| + decoder->Initialize(config, cdm_context, init_cb, output_cb);
|
| }
|
|
|
| bool DecoderStreamTraits<DemuxerStream::AUDIO>::NeedsBitstreamConversion(
|
|
|