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

Unified Diff: media/filters/chunk_demuxer.cc

Issue 13813016: Remove reference counting from media::Demuxer and friends. (Closed) Base URL: http://git.chromium.org/chromium/src.git@vd_scoped
Patch Set: 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
Index: media/filters/chunk_demuxer.cc
diff --git a/media/filters/chunk_demuxer.cc b/media/filters/chunk_demuxer.cc
index 3ff3f1c9f3d1bcb73c6706bbd8389f6cafbaf6a8..a443eea4cc5dd91311f11a4556ca85e19ec9a0f3 100644
--- a/media/filters/chunk_demuxer.cc
+++ b/media/filters/chunk_demuxer.cc
@@ -173,6 +173,7 @@ class ChunkDemuxerStream : public DemuxerStream {
const LogCB& log_cb);
ChunkDemuxerStream(const VideoDecoderConfig& video_config,
const LogCB& log_cb);
+ virtual ~ChunkDemuxerStream();
void StartWaitingForSeek();
void Seek(TimeDelta time);
@@ -213,9 +214,6 @@ class ChunkDemuxerStream : public DemuxerStream {
virtual const AudioDecoderConfig& audio_decoder_config() OVERRIDE;
virtual const VideoDecoderConfig& video_decoder_config() OVERRIDE;
- protected:
- virtual ~ChunkDemuxerStream();
-
private:
enum State {
RETURNING_DATA_FOR_READS,
@@ -615,18 +613,17 @@ void ChunkDemuxer::Seek(TimeDelta time, const PipelineStatusCB& cb) {
void ChunkDemuxer::OnAudioRendererDisabled() {
base::AutoLock auto_lock(lock_);
- audio_ = NULL;
+ audio_.reset(); // XXX: IS THIS OK?
scherkus (not reviewing) 2013/04/17 17:21:59 FYI
acolwell GONE FROM CHROMIUM 2013/04/17 20:24:53 I don't think so. Won't the decoder still have a p
}
// Demuxer implementation.
-scoped_refptr<DemuxerStream> ChunkDemuxer::GetStream(
- DemuxerStream::Type type) {
+DemuxerStream* ChunkDemuxer::GetStream(DemuxerStream::Type type) {
base::AutoLock auto_lock(lock_);
if (type == DemuxerStream::VIDEO)
- return video_;
+ return video_.get();
if (type == DemuxerStream::AUDIO)
- return audio_;
+ return audio_.get();
return NULL;
}
@@ -1142,7 +1139,7 @@ bool ChunkDemuxer::OnNewConfigs(bool has_audio, bool has_video,
if (audio_) {
success &= audio_->UpdateAudioConfig(audio_config);
} else {
- audio_ = new ChunkDemuxerStream(audio_config, log_cb_);
+ audio_.reset(new ChunkDemuxerStream(audio_config, log_cb_));
}
}
@@ -1150,7 +1147,7 @@ bool ChunkDemuxer::OnNewConfigs(bool has_audio, bool has_video,
if (video_) {
success &= video_->UpdateVideoConfig(video_config);
} else {
- video_ = new ChunkDemuxerStream(video_config, log_cb_);
+ video_.reset(new ChunkDemuxerStream(video_config, log_cb_));
}
}
@@ -1169,7 +1166,7 @@ bool ChunkDemuxer::OnAudioBuffers(const StreamParser::BufferQueue& buffers) {
if (!audio_->Append(buffers))
return false;
- IncreaseDurationIfNecessary(buffers, audio_);
+ IncreaseDurationIfNecessary(buffers, audio_.get());
return true;
}
@@ -1184,7 +1181,7 @@ bool ChunkDemuxer::OnVideoBuffers(const StreamParser::BufferQueue& buffers) {
if (!video_->Append(buffers))
return false;
- IncreaseDurationIfNecessary(buffers, video_);
+ IncreaseDurationIfNecessary(buffers, video_.get());
return true;
}
@@ -1227,7 +1224,7 @@ void ChunkDemuxer::UpdateDuration(base::TimeDelta new_duration) {
void ChunkDemuxer::IncreaseDurationIfNecessary(
const StreamParser::BufferQueue& buffers,
- const scoped_refptr<ChunkDemuxerStream>& stream) {
+ ChunkDemuxerStream* stream) {
DCHECK(!buffers.empty());
if (buffers.back()->GetTimestamp() <= duration_)
return;

Powered by Google App Engine
This is Rietveld 408576698