| Index: trunk/src/media/filters/video_frame_stream.h
 | 
| ===================================================================
 | 
| --- trunk/src/media/filters/video_frame_stream.h	(revision 195011)
 | 
| +++ trunk/src/media/filters/video_frame_stream.h	(working copy)
 | 
| @@ -11,14 +11,12 @@
 | 
|  #include "base/callback.h"
 | 
|  #include "base/compiler_specific.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"
 | 
|  #include "media/base/media_export.h"
 | 
|  #include "media/base/pipeline_status.h"
 | 
|  #include "media/base/video_decoder.h"
 | 
| -#include "media/filters/video_decoder_selector.h"
 | 
|  
 | 
|  namespace base {
 | 
|  class MessageLoopProxy;
 | 
| @@ -33,16 +31,18 @@
 | 
|  // VideoFrames to its client (e.g. VideoRendererBase).
 | 
|  class MEDIA_EXPORT VideoFrameStream : public DemuxerStream {
 | 
|   public:
 | 
| +  typedef std::list<scoped_refptr<VideoDecoder> > VideoDecoderList;
 | 
| +
 | 
|    // Indicates completion of VideoFrameStream initialization.
 | 
|    typedef base::Callback<void(bool success, bool has_alpha)> InitCB;
 | 
|  
 | 
|    VideoFrameStream(const scoped_refptr<base::MessageLoopProxy>& message_loop,
 | 
| -                   ScopedVector<VideoDecoder> decoders,
 | 
|                     const SetDecryptorReadyCB& set_decryptor_ready_cb);
 | 
|  
 | 
|    // Initializes the VideoFrameStream and returns the initialization result
 | 
|    // through |init_cb|. Note that |init_cb| is always called asynchronously.
 | 
|    void Initialize(const scoped_refptr<DemuxerStream>& stream,
 | 
| +                  const VideoDecoderList& decoders,
 | 
|                    const StatisticsCB& statistics_cb,
 | 
|                    const InitCB& init_cb);
 | 
|  
 | 
| @@ -90,8 +90,11 @@
 | 
|    // Called when |decoder_selector_| selected the |selected_decoder|.
 | 
|    // |decrypting_demuxer_stream| was also populated if a DecryptingDemuxerStream
 | 
|    // is created to help decrypt the encrypted stream.
 | 
| +  // Note: |decoder_selector| is passed here to keep the VideoDecoderSelector
 | 
| +  // alive until OnDecoderSelected() finishes.
 | 
|    void OnDecoderSelected(
 | 
| -      scoped_ptr<VideoDecoder> selected_decoder,
 | 
| +      scoped_ptr<VideoDecoderSelector> decoder_selector,
 | 
| +      const scoped_refptr<VideoDecoder>& selected_decoder,
 | 
|        const scoped_refptr<DecryptingDemuxerStream>& decrypting_demuxer_stream);
 | 
|  
 | 
|    // Callback for VideoDecoder::Read().
 | 
| @@ -115,12 +118,12 @@
 | 
|    base::Closure reset_cb_;
 | 
|    base::Closure stop_cb_;
 | 
|  
 | 
| -  VideoDecoderSelector decoder_selector_;
 | 
| +  SetDecryptorReadyCB set_decryptor_ready_cb_;
 | 
|  
 | 
|    scoped_refptr<DemuxerStream> stream_;
 | 
|  
 | 
|    // These two will be set by VideoDecoderSelector::SelectVideoDecoder().
 | 
| -  scoped_ptr<VideoDecoder> decoder_;
 | 
| +  scoped_refptr<VideoDecoder> decoder_;
 | 
|    scoped_refptr<DecryptingDemuxerStream> decrypting_demuxer_stream_;
 | 
|  
 | 
|    DISALLOW_COPY_AND_ASSIGN(VideoFrameStream);
 | 
| 
 |