Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(403)

Unified Diff: media/filters/video_decoder_selector.cc

Issue 14217008: Remove reference counting from media::DemuxerStream and friends. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/filters/video_decoder_selector.h ('k') | media/filters/video_decoder_selector_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « media/filters/video_decoder_selector.h ('k') | media/filters/video_decoder_selector_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698