OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "webkit/media/filter_helpers.h" | 5 #include "webkit/media/filter_helpers.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "media/base/filter_collection.h" | 8 #include "media/base/filter_collection.h" |
9 #include "media/base/message_loop_factory.h" | 9 #include "media/base/message_loop_factory.h" |
10 #include "media/filters/chunk_demuxer.h" | 10 #include "media/filters/chunk_demuxer.h" |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 media::FilterCollection* filter_collection) { | 42 media::FilterCollection* filter_collection) { |
43 if (!client) | 43 if (!client) |
44 return false; | 44 return false; |
45 | 45 |
46 scoped_refptr<media::VideoDecoder> video_decoder = client->GetVideoDecoder( | 46 scoped_refptr<media::VideoDecoder> video_decoder = client->GetVideoDecoder( |
47 url, message_loop_factory); | 47 url, message_loop_factory); |
48 if (!video_decoder) | 48 if (!video_decoder) |
49 return false; | 49 return false; |
50 | 50 |
51 // Remove all other decoders and just use the MediaStream one. | 51 // Remove all other decoders and just use the MediaStream one. |
52 // Remove any "traditional" decoders (e.g. GpuVideoDecoder) from the | |
53 // collection. | |
54 // NOTE: http://crbug.com/110800 is about replacing this ad-hockery with | 52 // NOTE: http://crbug.com/110800 is about replacing this ad-hockery with |
55 // something more designed. | 53 // something more designed. |
56 filter_collection->GetVideoDecoders()->clear(); | 54 filter_collection->GetVideoDecoders()->clear(); |
57 filter_collection->GetVideoDecoders()->push_back(video_decoder); | 55 filter_collection->GetVideoDecoders()->push_back(video_decoder); |
58 | 56 |
59 filter_collection->SetDemuxer(new media::DummyDemuxer(true, false)); | 57 filter_collection->SetDemuxer(new media::DummyDemuxer(true, false)); |
60 | 58 |
61 return true; | 59 return true; |
62 } | 60 } |
63 | 61 |
(...skipping 22 matching lines...) Expand all Loading... |
86 filter_collection->SetDemuxer(new media::FFmpegDemuxer( | 84 filter_collection->SetDemuxer(new media::FFmpegDemuxer( |
87 message_loop_factory->GetMessageLoop( | 85 message_loop_factory->GetMessageLoop( |
88 media::MessageLoopFactory::kPipeline), | 86 media::MessageLoopFactory::kPipeline), |
89 data_source)); | 87 data_source)); |
90 | 88 |
91 AddDefaultDecodersToCollection(message_loop_factory, filter_collection, | 89 AddDefaultDecodersToCollection(message_loop_factory, filter_collection, |
92 decryptor); | 90 decryptor); |
93 } | 91 } |
94 | 92 |
95 } // webkit_media | 93 } // webkit_media |
OLD | NEW |