| Index: media/base/media_filter_collection.cc
|
| ===================================================================
|
| --- media/base/media_filter_collection.cc (revision 66137)
|
| +++ media/base/media_filter_collection.cc (working copy)
|
| @@ -9,30 +9,10 @@
|
| MediaFilterCollection::MediaFilterCollection() {
|
| }
|
|
|
| -void MediaFilterCollection::AddDataSource(DataSource* filter) {
|
| - AddFilter(DATA_SOURCE, filter);
|
| +void MediaFilterCollection::AddFilter(MediaFilter* filter) {
|
| + filters_.push_back(filter);
|
| }
|
|
|
| -void MediaFilterCollection::AddDemuxer(Demuxer* filter) {
|
| - AddFilter(DEMUXER, filter);
|
| -}
|
| -
|
| -void MediaFilterCollection::AddVideoDecoder(VideoDecoder* filter) {
|
| - AddFilter(VIDEO_DECODER, filter);
|
| -}
|
| -
|
| -void MediaFilterCollection::AddAudioDecoder(AudioDecoder* filter) {
|
| - AddFilter(AUDIO_DECODER, filter);
|
| -}
|
| -
|
| -void MediaFilterCollection::AddVideoRenderer(VideoRenderer* filter) {
|
| - AddFilter(VIDEO_RENDERER, filter);
|
| -}
|
| -
|
| -void MediaFilterCollection::AddAudioRenderer(AudioRenderer* filter) {
|
| - AddFilter(AUDIO_RENDERER, filter);
|
| -}
|
| -
|
| bool MediaFilterCollection::IsEmpty() const {
|
| return filters_.empty();
|
| }
|
| @@ -41,60 +21,19 @@
|
| filters_.clear();
|
| }
|
|
|
| -void MediaFilterCollection::SelectDataSource(
|
| - scoped_refptr<DataSource>* filter_out) {
|
| - SelectFilter<DATA_SOURCE>(filter_out);
|
| -}
|
| -
|
| -void MediaFilterCollection::SelectDemuxer(scoped_refptr<Demuxer>* filter_out) {
|
| - SelectFilter<DEMUXER>(filter_out);
|
| -}
|
| -
|
| -void MediaFilterCollection::SelectVideoDecoder(
|
| - scoped_refptr<VideoDecoder>* filter_out) {
|
| - SelectFilter<VIDEO_DECODER>(filter_out);
|
| -}
|
| -
|
| -void MediaFilterCollection::SelectAudioDecoder(
|
| - scoped_refptr<AudioDecoder>* filter_out) {
|
| - SelectFilter<AUDIO_DECODER>(filter_out);
|
| -}
|
| -
|
| -void MediaFilterCollection::SelectVideoRenderer(
|
| - scoped_refptr<VideoRenderer>* filter_out) {
|
| - SelectFilter<VIDEO_RENDERER>(filter_out);
|
| -}
|
| -
|
| -void MediaFilterCollection::SelectAudioRenderer(
|
| - scoped_refptr<AudioRenderer>* filter_out) {
|
| - SelectFilter<AUDIO_RENDERER>(filter_out);
|
| -}
|
| -
|
| -void MediaFilterCollection::AddFilter(FilterType filter_type,
|
| - MediaFilter* filter) {
|
| - filters_.push_back(FilterListElement(filter_type, filter));
|
| -}
|
| -
|
| -template<MediaFilterCollection::FilterType filter_type, class Filter>
|
| -void MediaFilterCollection::SelectFilter(scoped_refptr<Filter>* filter_out) {
|
| - scoped_refptr<MediaFilter> filter;
|
| - SelectFilter(filter_type, &filter);
|
| - *filter_out = reinterpret_cast<Filter*>(filter.get());
|
| -}
|
| -
|
| void MediaFilterCollection::SelectFilter(
|
| FilterType filter_type,
|
| scoped_refptr<MediaFilter>* filter_out) {
|
|
|
| - FilterList::iterator it = filters_.begin();
|
| + std::list<scoped_refptr<MediaFilter> >::iterator it = filters_.begin();
|
| while (it != filters_.end()) {
|
| - if (it->first == filter_type)
|
| + if ((*it)->filter_type() == filter_type)
|
| break;
|
| ++it;
|
| }
|
|
|
| if (it != filters_.end()) {
|
| - *filter_out = it->second.get();
|
| + *filter_out = it->get();
|
| filters_.erase(it);
|
| }
|
| }
|
|
|