| Index: media/filters/decoder_stream.cc
|
| diff --git a/media/filters/decoder_stream.cc b/media/filters/decoder_stream.cc
|
| index 623d266449ca1adf335c529cf7a7ef593a6bffb2..7320b26423c3add4c08b309d741c4ee428a33eeb 100644
|
| --- a/media/filters/decoder_stream.cc
|
| +++ b/media/filters/decoder_stream.cc
|
| @@ -251,8 +251,14 @@ base::TimeDelta DecoderStream<StreamType>::AverageDuration() const {
|
|
|
| template <DemuxerStream::Type StreamType>
|
| void DecoderStream<StreamType>::SelectDecoder() {
|
| + // If we are already using DecryptingDemuxerStream (DDS), e.g. during
|
| + // fallback, the |stream_| will always be clear. In this case, no need pass in
|
| + // the |cdm_context_|. This will also help prevent creating a new DDS on top
|
| + // of the current DDS.
|
| + CdmContext* cdm_context = decrypting_demuxer_stream_ ? nullptr : cdm_context_;
|
| +
|
| decoder_selector_->SelectDecoder(
|
| - &traits_, stream_, cdm_context_,
|
| + &traits_, stream_, cdm_context,
|
| base::Bind(&DecoderStream<StreamType>::OnDecoderSelected,
|
| weak_factory_.GetWeakPtr()),
|
| base::Bind(&DecoderStream<StreamType>::OnDecodeOutputReady,
|
|
|