| Index: media/filters/video_decoder_selector.h
|
| diff --git a/media/filters/video_decoder_selector.h b/media/filters/video_decoder_selector.h
|
| index 826bbf81852bbf34ed9c25e60a99ba5249c9c4fb..81a311086de9dc8c6d77c04d03ef4e7dd47920f9 100644
|
| --- a/media/filters/video_decoder_selector.h
|
| +++ b/media/filters/video_decoder_selector.h
|
| @@ -5,10 +5,9 @@
|
| #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"
|
| @@ -29,8 +28,6 @@ class Decryptor;
|
| // 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.
|
| @@ -41,14 +38,16 @@ class MEDIA_EXPORT VideoDecoderSelector {
|
| // The caller should call DecryptingDemuxerStream::Reset() before
|
| // calling VideoDecoder::Reset() to release any pending decryption or read.
|
| typedef base::Callback<
|
| - void(const scoped_refptr<VideoDecoder>&,
|
| + void(scoped_ptr<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,
|
| - const VideoDecoderList& decoders,
|
| + ScopedVector<VideoDecoder> decoders,
|
| const SetDecryptorReadyCB& set_decryptor_ready_cb);
|
| ~VideoDecoderSelector();
|
|
|
| @@ -62,18 +61,19 @@ class MEDIA_EXPORT VideoDecoderSelector {
|
| private:
|
| void DecryptingVideoDecoderInitDone(PipelineStatus status);
|
| void DecryptingDemuxerStreamInitDone(PipelineStatus status);
|
| - void InitializeNextDecoder();
|
| - void DecoderInitDone(PipelineStatus status);
|
| + void InitializeDecoder(ScopedVector<VideoDecoder>::iterator iter);
|
| + void DecoderInitDone(ScopedVector<VideoDecoder>::iterator iter,
|
| + PipelineStatus status);
|
|
|
| scoped_refptr<base::MessageLoopProxy> message_loop_;
|
| - VideoDecoderList decoders_;
|
| + ScopedVector<VideoDecoder> decoders_;
|
| SetDecryptorReadyCB set_decryptor_ready_cb_;
|
|
|
| scoped_refptr<DemuxerStream> input_stream_;
|
| StatisticsCB statistics_cb_;
|
| SelectDecoderCB select_decoder_cb_;
|
|
|
| - scoped_refptr<VideoDecoder> video_decoder_;
|
| + scoped_ptr<VideoDecoder> video_decoder_;
|
| scoped_refptr<DecryptingDemuxerStream> decrypted_stream_;
|
|
|
| base::WeakPtrFactory<VideoDecoderSelector> weak_ptr_factory_;
|
|
|