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

Unified Diff: media/base/filter_collection.cc

Issue 9700006: Move VideoDecoder out of media pipeline. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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
« no previous file with comments | « media/base/filter_collection.h ('k') | media/base/filters.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/base/filter_collection.cc
diff --git a/media/base/filter_collection.cc b/media/base/filter_collection.cc
index 2a38f802409f0faf0bfc9a3336f2c1ff1d8edbc2..317139954ac9f28ac2c339a11dd5e1e6561da765 100644
--- a/media/base/filter_collection.cc
+++ b/media/base/filter_collection.cc
@@ -22,24 +22,24 @@ DemuxerFactory* FilterCollection::GetDemuxerFactory() {
return demuxer_factory_.get();
}
-void FilterCollection::AddVideoDecoder(VideoDecoder* filter) {
- AddFilter(VIDEO_DECODER, filter);
-}
-
void FilterCollection::AddAudioDecoder(AudioDecoder* audio_decoder) {
audio_decoders_.push_back(audio_decoder);
}
-void FilterCollection::AddVideoRenderer(VideoRenderer* filter) {
- AddFilter(VIDEO_RENDERER, filter);
+void FilterCollection::AddVideoDecoder(VideoDecoder* video_decoder) {
+ video_decoders_.push_back(video_decoder);
}
void FilterCollection::AddAudioRenderer(AudioRenderer* filter) {
AddFilter(AUDIO_RENDERER, filter);
}
+void FilterCollection::AddVideoRenderer(VideoRenderer* filter) {
+ AddFilter(VIDEO_RENDERER, filter);
+}
+
bool FilterCollection::IsEmpty() const {
- return filters_.empty() && audio_decoders_.empty();
+ return filters_.empty() && audio_decoders_.empty() && video_decoders_.empty();
}
void FilterCollection::Clear() {
@@ -47,11 +47,6 @@ void FilterCollection::Clear() {
audio_decoders_.clear();
}
-void FilterCollection::SelectVideoDecoder(
- scoped_refptr<VideoDecoder>* filter_out) {
- SelectFilter<VIDEO_DECODER>(filter_out);
-}
-
void FilterCollection::SelectAudioDecoder(scoped_refptr<AudioDecoder>* out) {
if (audio_decoders_.empty()) {
*out = NULL;
@@ -61,9 +56,13 @@ void FilterCollection::SelectAudioDecoder(scoped_refptr<AudioDecoder>* out) {
audio_decoders_.pop_front();
}
-void FilterCollection::SelectVideoRenderer(
- scoped_refptr<VideoRenderer>* filter_out) {
- SelectFilter<VIDEO_RENDERER>(filter_out);
+void FilterCollection::SelectVideoDecoder(scoped_refptr<VideoDecoder>* out) {
+ if (video_decoders_.empty()) {
+ *out = NULL;
+ return;
+ }
+ *out = video_decoders_.front();
+ video_decoders_.pop_front();
}
void FilterCollection::SelectAudioRenderer(
@@ -71,6 +70,11 @@ void FilterCollection::SelectAudioRenderer(
SelectFilter<AUDIO_RENDERER>(filter_out);
}
+void FilterCollection::SelectVideoRenderer(
+ scoped_refptr<VideoRenderer>* filter_out) {
+ SelectFilter<VIDEO_RENDERER>(filter_out);
+}
+
void FilterCollection::AddFilter(FilterType filter_type,
Filter* filter) {
filters_.push_back(FilterListElement(filter_type, filter));
« no previous file with comments | « media/base/filter_collection.h ('k') | media/base/filters.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698