Chromium Code Reviews| Index: media/filters/audio_renderer_impl.h |
| diff --git a/media/filters/audio_renderer_impl.h b/media/filters/audio_renderer_impl.h |
| index 7829366b3f8f7ea3e1a9cde74501705a5134c025..ba7bf0a9590226155751487833e63e2546b57462 100644 |
| --- a/media/filters/audio_renderer_impl.h |
| +++ b/media/filters/audio_renderer_impl.h |
| @@ -68,8 +68,8 @@ class MEDIA_EXPORT AudioRendererImpl |
| virtual void Initialize(DemuxerStream* stream, |
| const PipelineStatusCB& init_cb, |
| const StatisticsCB& statistics_cb, |
| - const base::Closure& underflow_cb, |
| const TimeCB& time_cb, |
| + const BufferingStateCB& buffering_state_cb, |
| const base::Closure& ended_cb, |
| const PipelineStatusCB& error_cb) OVERRIDE; |
| virtual void StartRendering() OVERRIDE; |
| @@ -77,9 +77,7 @@ class MEDIA_EXPORT AudioRendererImpl |
| virtual void Flush(const base::Closure& callback) OVERRIDE; |
| virtual void Stop(const base::Closure& callback) OVERRIDE; |
| virtual void SetPlaybackRate(float rate) OVERRIDE; |
| - virtual void Preroll(base::TimeDelta time, |
| - const PipelineStatusCB& cb) OVERRIDE; |
| - virtual void ResumeAfterUnderflow() OVERRIDE; |
| + virtual void StartPlayingFrom(base::TimeDelta timestamp) OVERRIDE; |
| virtual void SetVolume(float volume) OVERRIDE; |
| // Allows injection of a custom time callback for non-realtime testing. |
| @@ -104,25 +102,17 @@ class MEDIA_EXPORT AudioRendererImpl |
| // | |
| // V Decoders reset |
| // kFlushed <------------------ kFlushing |
| - // | Preroll() ^ |
| + // | StartPlayingFrom() ^ |
| // | | |
| - // V | Flush() |
| - // kPrerolling ----------------> kPlaying ---------. |
| - // Enough data buffered ^ | Not enough data |
| - // | | buffered |
| - // Enough data buffered | V |
| - // kRebuffering <--- kUnderflow |
| - // ResumeAfterUnderflow() |
| + // | | Flush() |
| + // `---------> kPlaying --------' |
| enum State { |
| kUninitialized, |
| kInitializing, |
| kFlushing, |
| kFlushed, |
| - kPrerolling, |
| kPlaying, |
| kStopped, |
| - kUnderflow, |
| - kRebuffering, |
| }; |
| // Callback from the audio decoder delivering decoded audio samples. |
| @@ -177,10 +167,9 @@ class MEDIA_EXPORT AudioRendererImpl |
| bool CanRead_Locked(); |
| void ChangeState_Locked(State new_state); |
| - // Returns true if the data in the buffer is all before |
| - // |preroll_timestamp_|. This can only return true while |
| - // in the kPrerolling state. |
| - bool IsBeforePrerollTime(const scoped_refptr<AudioBuffer>& buffer); |
| + // Returns true if the data in the buffer is all before |start_timestamp_|. |
| + // This can only return true while in the kPlaying state. |
| + bool IsBeforeStartTime(const scoped_refptr<AudioBuffer>& buffer); |
| // Called upon AudioBufferStream initialization, or failure thereof (indicated |
| // by the value of |success|). |
| @@ -226,17 +215,16 @@ class MEDIA_EXPORT AudioRendererImpl |
| // Callbacks provided during Initialize(). |
| PipelineStatusCB init_cb_; |
| - base::Closure underflow_cb_; |
| TimeCB time_cb_; |
| + BufferingStateCB buffering_state_cb_; |
| base::Closure ended_cb_; |
| PipelineStatusCB error_cb_; |
| + BufferingState buffering_state_; |
| + |
|
acolwell GONE FROM CHROMIUM
2014/05/16 17:25:08
This should go somewhere below the lock_ decl sinc
scherkus (not reviewing)
2014/05/22 17:49:12
Done.
|
| // Callback provided to Flush(). |
| base::Closure flush_cb_; |
| - // Callback provided to Preroll(). |
| - PipelineStatusCB preroll_cb_; |
| - |
| // Typically calls base::TimeTicks::Now() but can be overridden by a test. |
| NowCB now_cb_; |
| @@ -264,7 +252,7 @@ class MEDIA_EXPORT AudioRendererImpl |
| scoped_ptr<AudioClock> audio_clock_; |
| - base::TimeDelta preroll_timestamp_; |
| + base::TimeDelta start_timestamp_; |
| // We're supposed to know amount of audio data OS or hardware buffered, but |
| // that is not always so -- on my Linux box |
| @@ -283,10 +271,6 @@ class MEDIA_EXPORT AudioRendererImpl |
| base::TimeTicks earliest_end_time_; |
| size_t total_frames_filled_; |
| - // True if the renderer receives a buffer with kAborted status during preroll, |
| - // false otherwise. This flag is cleared on the next Preroll() call. |
| - bool preroll_aborted_; |
| - |
| // End variables which must be accessed under |lock_|. ---------------------- |
| // NOTE: Weak pointers must be invalidated before all other member variables. |