| Index: media/filters/ffmpeg_demuxer.h
 | 
| diff --git a/media/filters/ffmpeg_demuxer.h b/media/filters/ffmpeg_demuxer.h
 | 
| index b5a27105f1a6680478b0a56e61fed756fa7a4819..5f8566f18886616044c4ad727a44f2d4dde40370 100644
 | 
| --- a/media/filters/ffmpeg_demuxer.h
 | 
| +++ b/media/filters/ffmpeg_demuxer.h
 | 
| @@ -56,8 +56,6 @@ class FFmpegDemuxerStream : public DemuxerStream {
 | 
|    FFmpegDemuxerStream(FFmpegDemuxer* demuxer, AVStream* stream);
 | 
|  
 | 
|    // Returns true is this stream has pending reads, false otherwise.
 | 
| -  //
 | 
| -  // Safe to call on any thread.
 | 
|    bool HasPendingReads();
 | 
|  
 | 
|    // Enqueues the given AVPacket.  If |packet| is NULL an end of stream packet
 | 
| @@ -75,13 +73,6 @@ class FFmpegDemuxerStream : public DemuxerStream {
 | 
|  
 | 
|    // DemuxerStream implementation.
 | 
|    virtual Type type() OVERRIDE;
 | 
| -
 | 
| -  // If |buffer_queue_| is not empty will execute on caller's thread, otherwise
 | 
| -  // will post ReadTask to execute on demuxer's thread. Read will acquire
 | 
| -  // |lock_| for the life of the function so that means |read_cb| must
 | 
| -  // not make calls into FFmpegDemuxerStream directly or that may cause a
 | 
| -  // deadlock. |read_cb| should execute as quickly as possible because
 | 
| -  // |lock_| is held throughout the life of the callback.
 | 
|    virtual void Read(const ReadCB& read_cb) OVERRIDE;
 | 
|    virtual void EnableBitstreamConverter() OVERRIDE;
 | 
|    virtual const AudioDecoderConfig& audio_decoder_config() OVERRIDE;
 | 
| @@ -100,19 +91,16 @@ class FFmpegDemuxerStream : public DemuxerStream {
 | 
|   private:
 | 
|    friend class FFmpegDemuxerTest;
 | 
|  
 | 
| -  // Carries out enqueuing a pending read on the demuxer thread.
 | 
| -  void ReadTask(const ReadCB& read_cb);
 | 
| -
 | 
| -  // Attempts to fulfill a single pending read by dequeueing a buffer and read
 | 
| -  // callback pair and executing the callback. The calling function must
 | 
| -  // acquire |lock_| before calling this function.
 | 
| -  void FulfillPendingRead();
 | 
| +  // Runs callbacks in |read_queue_| for each available |buffer_queue_|, calling
 | 
| +  // NotifyHasPendingRead() if there are still pending items in |read_queue_|.
 | 
| +  void SatisfyPendingReads();
 | 
|  
 | 
|    // Converts an FFmpeg stream timestamp into a base::TimeDelta.
 | 
|    static base::TimeDelta ConvertStreamTimestamp(const AVRational& time_base,
 | 
|                                                  int64 timestamp);
 | 
|  
 | 
|    FFmpegDemuxer* demuxer_;
 | 
| +  scoped_refptr<base::MessageLoopProxy> message_loop_;
 | 
|    AVStream* stream_;
 | 
|    AudioDecoderConfig audio_config_;
 | 
|    VideoDecoderConfig video_config_;
 | 
| @@ -131,13 +119,6 @@ class FFmpegDemuxerStream : public DemuxerStream {
 | 
|    scoped_ptr<FFmpegH264ToAnnexBBitstreamConverter> bitstream_converter_;
 | 
|    bool bitstream_converter_enabled_;
 | 
|  
 | 
| -  // Used to synchronize access to |buffer_queue_|, |read_queue_|, and
 | 
| -  // |stopped_|. This is so other threads can get access to buffers that have
 | 
| -  // already been demuxed without having the demuxer thread sending the
 | 
| -  // buffers. |lock_| must be acquired before any access to |buffer_queue_|,
 | 
| -  // |read_queue_|, or |stopped_|.
 | 
| -  mutable base::Lock lock_;
 | 
| -
 | 
|    DISALLOW_COPY_AND_ASSIGN(FFmpegDemuxerStream);
 | 
|  };
 | 
|  
 | 
| @@ -146,9 +127,6 @@ class MEDIA_EXPORT FFmpegDemuxer : public Demuxer {
 | 
|    FFmpegDemuxer(const scoped_refptr<base::MessageLoopProxy>& message_loop,
 | 
|                  const scoped_refptr<DataSource>& data_source);
 | 
|  
 | 
| -  // Posts a task to perform additional demuxing.
 | 
| -  virtual void PostDemuxTask();
 | 
| -
 | 
|    // Demuxer implementation.
 | 
|    virtual void Initialize(DemuxerHost* host,
 | 
|                            const PipelineStatusCB& status_cb) OVERRIDE;
 | 
| @@ -160,11 +138,9 @@ class MEDIA_EXPORT FFmpegDemuxer : public Demuxer {
 | 
|        DemuxerStream::Type type) OVERRIDE;
 | 
|    virtual base::TimeDelta GetStartTime() const OVERRIDE;
 | 
|  
 | 
| -  // Provide access to FFmpegDemuxerStream.
 | 
| -  scoped_refptr<base::MessageLoopProxy> message_loop();
 | 
| -
 | 
| -  // Allow FFmpegDemuxerStream to notify us when there is updated information
 | 
| -  // about what buffered data is available.
 | 
| +  // Allow FFmpegDemuxerStream to notify us when it requires more data or has
 | 
| +  // updated information about what buffered data is available.
 | 
| +  void NotifyHasPendingRead();
 | 
|    void NotifyBufferingChanged();
 | 
|  
 | 
|   private:
 | 
| 
 |