| Index: media/filters/decoder_selector.cc
|
| diff --git a/media/filters/decoder_selector.cc b/media/filters/decoder_selector.cc
|
| index 87e58a695f14598c79d8d61a8495471eb62a3b35..a1944829728622f7cdf56c659b9755dc1c14c7d4 100644
|
| --- a/media/filters/decoder_selector.cc
|
| +++ b/media/filters/decoder_selector.cc
|
| @@ -13,6 +13,7 @@
|
| #include "build/build_config.h"
|
| #include "media/base/audio_decoder.h"
|
| #include "media/base/bind_to_current_loop.h"
|
| +#include "media/base/cdm_context.h"
|
| #include "media/base/demuxer_stream.h"
|
| #include "media/base/media_log.h"
|
| #include "media/base/pipeline.h"
|
| @@ -81,7 +82,7 @@ DecoderSelector<StreamType>::~DecoderSelector() {
|
| template <DemuxerStream::Type StreamType>
|
| void DecoderSelector<StreamType>::SelectDecoder(
|
| DemuxerStream* stream,
|
| - const SetCdmReadyCB& set_cdm_ready_cb,
|
| + CdmContext* cdm_context,
|
| const SelectDecoderCB& select_decoder_cb,
|
| const typename Decoder::OutputCB& output_cb,
|
| const base::Closure& waiting_for_decryption_key_cb) {
|
| @@ -90,7 +91,7 @@ void DecoderSelector<StreamType>::SelectDecoder(
|
| DCHECK(stream);
|
| DCHECK(select_decoder_cb_.is_null());
|
|
|
| - set_cdm_ready_cb_ = set_cdm_ready_cb;
|
| + cdm_context_ = cdm_context;
|
| waiting_for_decryption_key_cb_ = waiting_for_decryption_key_cb;
|
|
|
| // Make sure |select_decoder_cb| runs on a different execution stack.
|
| @@ -112,7 +113,7 @@ void DecoderSelector<StreamType>::SelectDecoder(
|
|
|
| // This could be null during fallback after decoder reinitialization failure.
|
| // See DecoderStream<StreamType>::OnDecoderReinitialized().
|
| - if (set_cdm_ready_cb_.is_null()) {
|
| + if (!cdm_context_) {
|
| ReturnNullDecoder();
|
| return;
|
| }
|
| @@ -131,7 +132,7 @@ void DecoderSelector<StreamType>::InitializeDecryptingDecoder() {
|
| task_runner_, media_log_, waiting_for_decryption_key_cb_));
|
|
|
| DecoderStreamTraits<StreamType>::InitializeDecoder(
|
| - decoder_.get(), input_stream_, set_cdm_ready_cb_,
|
| + decoder_.get(), input_stream_, cdm_context_,
|
| base::Bind(&DecoderSelector<StreamType>::DecryptingDecoderInitDone,
|
| weak_ptr_factory_.GetWeakPtr()),
|
| output_cb_);
|
| @@ -162,7 +163,7 @@ void DecoderSelector<StreamType>::InitializeDecryptingDemuxerStream() {
|
| task_runner_, media_log_, waiting_for_decryption_key_cb_));
|
|
|
| decrypted_stream_->Initialize(
|
| - input_stream_, set_cdm_ready_cb_,
|
| + input_stream_, cdm_context_,
|
| base::Bind(&DecoderSelector<StreamType>::DecryptingDemuxerStreamInitDone,
|
| weak_ptr_factory_.GetWeakPtr()));
|
| }
|
| @@ -204,7 +205,7 @@ void DecoderSelector<StreamType>::InitializeDecoder() {
|
| decoders_.weak_erase(decoders_.begin());
|
|
|
| DecoderStreamTraits<StreamType>::InitializeDecoder(
|
| - decoder_.get(), input_stream_, set_cdm_ready_cb_,
|
| + decoder_.get(), input_stream_, cdm_context_,
|
| base::Bind(&DecoderSelector<StreamType>::DecoderInitDone,
|
| weak_ptr_factory_.GetWeakPtr()),
|
| output_cb_);
|
|
|