| Index: trunk/src/media/filters/video_decoder_selector.h
|
| ===================================================================
|
| --- trunk/src/media/filters/video_decoder_selector.h (revision 195011)
|
| +++ trunk/src/media/filters/video_decoder_selector.h (working copy)
|
| @@ -5,9 +5,10 @@
|
| #ifndef MEDIA_FILTERS_VIDEO_DECODER_SELECTOR_H_
|
| #define MEDIA_FILTERS_VIDEO_DECODER_SELECTOR_H_
|
|
|
| +#include <list>
|
| +
|
| #include "base/callback.h"
|
| #include "base/memory/ref_counted.h"
|
| -#include "base/memory/scoped_vector.h"
|
| #include "base/memory/weak_ptr.h"
|
| #include "media/base/decryptor.h"
|
| #include "media/base/demuxer_stream.h"
|
| @@ -28,6 +29,8 @@
|
| // encrypted, a DecryptingDemuxerStream may also be created.
|
| class MEDIA_EXPORT VideoDecoderSelector {
|
| public:
|
| + typedef std::list<scoped_refptr<VideoDecoder> > VideoDecoderList;
|
| +
|
| // Indicates completion of VideoDecoder selection.
|
| // - First parameter: The initialized VideoDecoder. If it's set to NULL, then
|
| // VideoDecoder initialization failed.
|
| @@ -38,16 +41,14 @@
|
| // The caller should call DecryptingDemuxerStream::Reset() before
|
| // calling VideoDecoder::Reset() to release any pending decryption or read.
|
| typedef base::Callback<
|
| - void(scoped_ptr<VideoDecoder>,
|
| + void(const scoped_refptr<VideoDecoder>&,
|
| const scoped_refptr<DecryptingDemuxerStream>&)> SelectDecoderCB;
|
|
|
| - // |decoders| contains the VideoDecoders to use when initializing.
|
| - //
|
| // |set_decryptor_ready_cb| is optional. If |set_decryptor_ready_cb| is null,
|
| // no decryptor will be available to perform decryption.
|
| VideoDecoderSelector(
|
| const scoped_refptr<base::MessageLoopProxy>& message_loop,
|
| - ScopedVector<VideoDecoder> decoders,
|
| + const VideoDecoderList& decoders,
|
| const SetDecryptorReadyCB& set_decryptor_ready_cb);
|
| ~VideoDecoderSelector();
|
|
|
| @@ -61,19 +62,18 @@
|
| private:
|
| void DecryptingVideoDecoderInitDone(PipelineStatus status);
|
| void DecryptingDemuxerStreamInitDone(PipelineStatus status);
|
| - void InitializeDecoder(ScopedVector<VideoDecoder>::iterator iter);
|
| - void DecoderInitDone(ScopedVector<VideoDecoder>::iterator iter,
|
| - PipelineStatus status);
|
| + void InitializeNextDecoder();
|
| + void DecoderInitDone(PipelineStatus status);
|
|
|
| scoped_refptr<base::MessageLoopProxy> message_loop_;
|
| - ScopedVector<VideoDecoder> decoders_;
|
| + VideoDecoderList decoders_;
|
| SetDecryptorReadyCB set_decryptor_ready_cb_;
|
|
|
| scoped_refptr<DemuxerStream> input_stream_;
|
| StatisticsCB statistics_cb_;
|
| SelectDecoderCB select_decoder_cb_;
|
|
|
| - scoped_ptr<VideoDecoder> video_decoder_;
|
| + scoped_refptr<VideoDecoder> video_decoder_;
|
| scoped_refptr<DecryptingDemuxerStream> decrypted_stream_;
|
|
|
| base::WeakPtrFactory<VideoDecoderSelector> weak_ptr_factory_;
|
|
|