| Index: media/filters/video_decoder_selector.cc
|
| diff --git a/media/filters/video_decoder_selector.cc b/media/filters/video_decoder_selector.cc
|
| index 8947d4b24b5f83c97719f762ec19267452bf6fe5..e77606173bfd4d4a556f66b180e762fd169f438c 100644
|
| --- a/media/filters/video_decoder_selector.cc
|
| +++ b/media/filters/video_decoder_selector.cc
|
| @@ -24,13 +24,14 @@ VideoDecoderSelector::VideoDecoderSelector(
|
| : message_loop_(message_loop),
|
| decoders_(decoders.Pass()),
|
| set_decryptor_ready_cb_(set_decryptor_ready_cb),
|
| + input_stream_(NULL),
|
| weak_ptr_factory_(this) {
|
| }
|
|
|
| VideoDecoderSelector::~VideoDecoderSelector() {}
|
|
|
| void VideoDecoderSelector::SelectVideoDecoder(
|
| - const scoped_refptr<DemuxerStream>& stream,
|
| + DemuxerStream* stream,
|
| const StatisticsCB& statistics_cb,
|
| const SelectDecoderCB& select_decoder_cb) {
|
| DVLOG(2) << "SelectVideoDecoder()";
|
| @@ -44,7 +45,7 @@ void VideoDecoderSelector::SelectVideoDecoder(
|
| if (!config.IsValidConfig()) {
|
| DLOG(ERROR) << "Invalid video stream config.";
|
| base::ResetAndReturn(&select_decoder_cb_).Run(
|
| - scoped_ptr<VideoDecoder>(), NULL);
|
| + scoped_ptr<VideoDecoder>(), scoped_ptr<DecryptingDemuxerStream>());
|
| return;
|
| }
|
|
|
| @@ -59,7 +60,7 @@ void VideoDecoderSelector::SelectVideoDecoder(
|
| // This could happen if Encrypted Media Extension (EME) is not enabled.
|
| if (set_decryptor_ready_cb_.is_null()) {
|
| base::ResetAndReturn(&select_decoder_cb_).Run(
|
| - scoped_ptr<VideoDecoder>(), NULL);
|
| + scoped_ptr<VideoDecoder>(), scoped_ptr<DecryptingDemuxerStream>());
|
| return;
|
| }
|
|
|
| @@ -79,12 +80,13 @@ void VideoDecoderSelector::DecryptingVideoDecoderInitDone(
|
| DCHECK(message_loop_->BelongsToCurrentThread());
|
|
|
| if (status == PIPELINE_OK) {
|
| - base::ResetAndReturn(&select_decoder_cb_).Run(video_decoder_.Pass(), NULL);
|
| + base::ResetAndReturn(&select_decoder_cb_).Run(
|
| + video_decoder_.Pass(), scoped_ptr<DecryptingDemuxerStream>());
|
| return;
|
| }
|
|
|
| - decrypted_stream_ = new DecryptingDemuxerStream(
|
| - message_loop_, set_decryptor_ready_cb_);
|
| + decrypted_stream_.reset(new DecryptingDemuxerStream(
|
| + message_loop_, set_decryptor_ready_cb_));
|
|
|
| decrypted_stream_->Initialize(
|
| input_stream_,
|
| @@ -98,14 +100,14 @@ void VideoDecoderSelector::DecryptingDemuxerStreamInitDone(
|
| DCHECK(message_loop_->BelongsToCurrentThread());
|
|
|
| if (status != PIPELINE_OK) {
|
| - decrypted_stream_ = NULL;
|
| + decrypted_stream_.reset();
|
| base::ResetAndReturn(&select_decoder_cb_).Run(
|
| - scoped_ptr<VideoDecoder>(), NULL);
|
| + scoped_ptr<VideoDecoder>(), scoped_ptr<DecryptingDemuxerStream>());
|
| return;
|
| }
|
|
|
| DCHECK(!decrypted_stream_->video_decoder_config().is_encrypted());
|
| - input_stream_ = decrypted_stream_;
|
| + input_stream_ = decrypted_stream_.get();
|
| InitializeDecoder(decoders_.begin());
|
| }
|
|
|
| @@ -115,7 +117,7 @@ void VideoDecoderSelector::InitializeDecoder(
|
|
|
| if (iter == decoders_.end()) {
|
| base::ResetAndReturn(&select_decoder_cb_).Run(
|
| - scoped_ptr<VideoDecoder>(), NULL);
|
| + scoped_ptr<VideoDecoder>(), scoped_ptr<DecryptingDemuxerStream>());
|
| return;
|
| }
|
|
|
| @@ -141,7 +143,7 @@ void VideoDecoderSelector::DecoderInitDone(
|
| decoders_.weak_erase(iter);
|
|
|
| base::ResetAndReturn(&select_decoder_cb_).Run(video_decoder.Pass(),
|
| - decrypted_stream_);
|
| + decrypted_stream_.Pass());
|
| }
|
|
|
| } // namespace media
|
|
|