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

Unified Diff: media/filters/decrypting_demuxer_stream.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/decrypting_demuxer_stream.h ('k') | media/filters/decrypting_demuxer_stream_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/filters/decrypting_demuxer_stream.cc
diff --git a/media/filters/decrypting_demuxer_stream.cc b/media/filters/decrypting_demuxer_stream.cc
index 9ad105c215683362725305b5449a5ea1473608be..a64ad51bbfa83148674499c5bea3cb003bebef5f 100644
--- a/media/filters/decrypting_demuxer_stream.cc
+++ b/media/filters/decrypting_demuxer_stream.cc
@@ -20,10 +20,9 @@
namespace media {
#define BIND_TO_LOOP(function) \
- media::BindToLoop(message_loop_, base::Bind(function, this))
+ media::BindToLoop(message_loop_, base::Bind(function, weak_this_))
-static bool IsStreamValidAndEncrypted(
- const scoped_refptr<DemuxerStream>& stream) {
+static bool IsStreamValidAndEncrypted(DemuxerStream* stream) {
return ((stream->type() == DemuxerStream::AUDIO &&
stream->audio_decoder_config().IsValidConfig() &&
stream->audio_decoder_config().is_encrypted()) ||
@@ -36,20 +35,23 @@ DecryptingDemuxerStream::DecryptingDemuxerStream(
const scoped_refptr<base::MessageLoopProxy>& message_loop,
const SetDecryptorReadyCB& set_decryptor_ready_cb)
: message_loop_(message_loop),
+ weak_factory_(this),
state_(kUninitialized),
+ demuxer_stream_(NULL),
set_decryptor_ready_cb_(set_decryptor_ready_cb),
decryptor_(NULL),
key_added_while_decrypt_pending_(false) {
}
void DecryptingDemuxerStream::Initialize(
- const scoped_refptr<DemuxerStream>& stream,
+ DemuxerStream* stream,
const PipelineStatusCB& status_cb) {
DVLOG(2) << "Initialize()";
DCHECK(message_loop_->BelongsToCurrentThread());
DCHECK_EQ(state_, kUninitialized) << state_;
DCHECK(!demuxer_stream_);
+ weak_this_ = weak_factory_.GetWeakPtr();
demuxer_stream_ = stream;
init_cb_ = status_cb;
@@ -70,7 +72,7 @@ void DecryptingDemuxerStream::Read(const ReadCB& read_cb) {
read_cb_ = read_cb;
state_ = kPendingDemuxerRead;
demuxer_stream_->Read(
- base::Bind(&DecryptingDemuxerStream::DecryptBuffer, this));
+ base::Bind(&DecryptingDemuxerStream::DecryptBuffer, weak_this_));
}
void DecryptingDemuxerStream::Reset(const base::Closure& closure) {
« no previous file with comments | « media/filters/decrypting_demuxer_stream.h ('k') | media/filters/decrypting_demuxer_stream_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698