Index: media/base/filter_collection.cc |
diff --git a/media/base/filter_collection.cc b/media/base/filter_collection.cc |
index 2a38f802409f0faf0bfc9a3336f2c1ff1d8edbc2..ce82d36b83e0c64c45333f0b4ccf5d27a54948b9 100644 |
--- a/media/base/filter_collection.cc |
+++ b/media/base/filter_collection.cc |
@@ -22,8 +22,8 @@ DemuxerFactory* FilterCollection::GetDemuxerFactory() { |
return demuxer_factory_.get(); |
} |
-void FilterCollection::AddVideoDecoder(VideoDecoder* filter) { |
- AddFilter(VIDEO_DECODER, filter); |
+void FilterCollection::AddVideoDecoder(VideoDecoder* video_decoder) { |
+ video_decoders_.push_back(video_decoder); |
} |
void FilterCollection::AddAudioDecoder(AudioDecoder* audio_decoder) { |
@@ -39,7 +39,7 @@ void FilterCollection::AddAudioRenderer(AudioRenderer* filter) { |
} |
bool FilterCollection::IsEmpty() const { |
- return filters_.empty() && audio_decoders_.empty(); |
+ return filters_.empty() && video_decoders_.empty() && audio_decoders_.empty(); |
} |
void FilterCollection::Clear() { |
@@ -47,9 +47,13 @@ void FilterCollection::Clear() { |
audio_decoders_.clear(); |
} |
-void FilterCollection::SelectVideoDecoder( |
- scoped_refptr<VideoDecoder>* filter_out) { |
- SelectFilter<VIDEO_DECODER>(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::SelectAudioDecoder(scoped_refptr<AudioDecoder>* out) { |