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

Unified Diff: media/base/pipeline.cc

Issue 9700006: Move VideoDecoder out of media pipeline. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase and a small fix Created 8 years, 9 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/base/pipeline.cc
diff --git a/media/base/pipeline.cc b/media/base/pipeline.cc
index 9da3df1b95579c0bc85d147f8111ea2f5e06284c..569b105227f8ee2fa27bed3cd8d2d3668dd1700b 100644
--- a/media/base/pipeline.cc
+++ b/media/base/pipeline.cc
@@ -17,7 +17,6 @@
#include "media/base/audio_decoder.h"
#include "media/base/clock.h"
#include "media/base/composite_filter.h"
-#include "media/base/composite_filter.h"
#include "media/base/filter_collection.h"
#include "media/base/filters.h"
#include "media/base/media_log.h"
@@ -648,8 +647,6 @@ void Pipeline::InitializeTask(PipelineStatus last_stage_status) {
// Currently only VideoDecoders have a recoverable error code.
if (state_ == kInitVideoDecoder &&
last_stage_status == DECODER_ERROR_NOT_SUPPORTED) {
- pipeline_init_state_->composite->RemoveFilter(
- pipeline_init_state_->video_decoder.get());
state_ = kInitAudioRenderer;
} else {
SetError(last_stage_status);
@@ -1161,6 +1158,7 @@ bool Pipeline::InitializeAudioDecoder(
const scoped_refptr<Demuxer>& demuxer) {
DCHECK_EQ(MessageLoop::current(), message_loop_);
DCHECK(IsPipelineOk());
+ DCHECK(demuxer);
scoped_refptr<DemuxerStream> stream =
demuxer->GetStream(DemuxerStream::AUDIO);
@@ -1186,31 +1184,27 @@ bool Pipeline::InitializeVideoDecoder(
const scoped_refptr<Demuxer>& demuxer) {
DCHECK_EQ(MessageLoop::current(), message_loop_);
DCHECK(IsPipelineOk());
+ DCHECK(demuxer);
- scoped_refptr<DemuxerStream> stream;
-
- if (demuxer) {
- stream = demuxer->GetStream(DemuxerStream::VIDEO);
+ scoped_refptr<DemuxerStream> stream =
+ demuxer->GetStream(DemuxerStream::VIDEO);
- if (!stream)
- return false;
- }
+ if (!stream)
+ return false;
- filter_collection_->SelectVideoDecoder(&video_decoder_);
+ filter_collection_->SelectVideoDecoder(&pipeline_init_state_->video_decoder);
- if (!video_decoder_) {
+ if (!pipeline_init_state_->video_decoder) {
SetError(PIPELINE_ERROR_REQUIRED_FILTER_MISSING);
return false;
}
- if (!PrepareFilter(video_decoder_))
- return false;
-
- pipeline_init_state_->video_decoder = video_decoder_;
- video_decoder_->Initialize(
+ pipeline_init_state_->video_decoder->Initialize(
stream,
base::Bind(&Pipeline::OnFilterInitialize, this),
base::Bind(&Pipeline::OnUpdateStatistics, this));
+
+ video_decoder_ = pipeline_init_state_->video_decoder;
Ami GONE FROM CHROMIUM 2012/03/14 20:05:01 I don't get why you flipped the use of video_decod
xhwang 2012/03/14 22:28:41 Nothing deep :) I found InitializeVideoDecoder and
return true;
}
@@ -1355,7 +1349,6 @@ void Pipeline::OnDemuxerStopDone(const base::Closure& callback) {
}
callback.Run();
-
}
void Pipeline::DoSeek(base::TimeDelta seek_timestamp) {

Powered by Google App Engine
This is Rietveld 408576698