Index: media/filters/audio_renderer_algorithm.h |
diff --git a/media/filters/audio_renderer_algorithm.h b/media/filters/audio_renderer_algorithm.h |
index 39e4db6ca69b29f55fbcdf3bf9bc78672dbb99e2..b36eb0807e6d3490f486d74af2450d670d264ed3 100644 |
--- a/media/filters/audio_renderer_algorithm.h |
+++ b/media/filters/audio_renderer_algorithm.h |
@@ -4,10 +4,7 @@ |
// AudioRendererAlgorithm buffers and transforms audio data. The owner of |
// this object provides audio data to the object through EnqueueBuffer() and |
-// requests data from the buffer via FillBuffer(). The owner also sets the |
-// playback rate, and the AudioRendererAlgorithm will stretch or compress the |
-// buffered audio as necessary to match the playback rate when fulfilling |
-// FillBuffer() requests. |
+// requests data from the buffer via FillBuffer(). |
// |
// This class is *not* thread-safe. Calls to enqueue and retrieve data must be |
// locked if called from multiple threads. |
@@ -20,7 +17,6 @@ |
// description of the algorithm. |
// |
// Audio at very low or very high playback rates are muted to preserve quality. |
-// |
#ifndef MEDIA_FILTERS_AUDIO_RENDERER_ALGORITHM_H_ |
#define MEDIA_FILTERS_AUDIO_RENDERER_ALGORITHM_H_ |
@@ -41,17 +37,16 @@ class MEDIA_EXPORT AudioRendererAlgorithm { |
~AudioRendererAlgorithm(); |
// Initializes this object with information about the audio stream. |
- void Initialize(float initial_playback_rate, const AudioParameters& params); |
+ void Initialize(const AudioParameters& params); |
// Tries to fill |requested_frames| frames into |dest| with possibly scaled |
- // data from our |audio_buffer_|. Data is scaled based on the playback rate, |
+ // data from our |audio_buffer_|. Data is scaled based on |playback_rate|, |
// using a variation of the Overlap-Add method to combine sample windows. |
// |
// Data from |audio_buffer_| is consumed in proportion to the playback rate. |
// |
- // Returns the number of frames copied into |dest|. May request more reads via |
- // |request_read_cb_| before returning. |
- int FillBuffer(AudioBus* dest, int requested_frames); |
+ // Returns the number of frames copied into |dest|. |
+ int FillBuffer(AudioBus* dest, int requested_frames, float playback_rate); |
// Clears |audio_buffer_|. |
void FlushBuffers(); |
@@ -64,9 +59,6 @@ class MEDIA_EXPORT AudioRendererAlgorithm { |
// read completes. |
void EnqueueBuffer(const scoped_refptr<AudioBuffer>& buffer_in); |
- float playback_rate() const { return playback_rate_; } |
- void SetPlaybackRate(float new_rate); |
- |
// Returns true if |audio_buffer_| is at or exceeds capacity. |
bool IsQueueFull(); |
@@ -84,9 +76,6 @@ class MEDIA_EXPORT AudioRendererAlgorithm { |
// Returns the samples per second for this audio stream. |
int samples_per_second() { return samples_per_second_; } |
- // Is the sound currently muted? |
- bool is_muted() { return muted_; } |
- |
private: |
// Within |search_block_|, find the block of data that is most similar to |
// |target_block_|, and write it in |optimal_block_|. This method assumes that |
@@ -111,15 +100,15 @@ class MEDIA_EXPORT AudioRendererAlgorithm { |
// Run one iteration of WSOLA, if there are sufficient frames. This will |
// overlap-and-add one block to |wsola_output_|, hence, |num_complete_frames_| |
// is incremented by |ola_hop_size_|. |
- bool RunOneWsolaIteration(); |
+ bool RunOneWsolaIteration(float playback_rate); |
// Seek |audio_buffer_| forward to remove frames from input that are not used |
// any more. State of the WSOLA will be updated accordingly. |
- void RemoveOldInputFrames(); |
+ void RemoveOldInputFrames(float playback_rate); |
// Update |output_time_| by |time_change|. In turn |search_block_index_| is |
// updated. |
- void UpdateOutputTime(double time_change); |
+ void UpdateOutputTime(float playback_rate, double time_change); |
// Is |target_block_| fully within |search_block_|? If so, we don't need to |
// perform the search. |
@@ -134,15 +123,9 @@ class MEDIA_EXPORT AudioRendererAlgorithm { |
// Sample rate of audio stream. |
int samples_per_second_; |
- // Used by algorithm to scale output. |
- float playback_rate_; |
- |
// Buffered audio data. |
AudioBufferQueue audio_buffer_; |
- // True if the audio should be muted. |
- bool muted_; |
- |
// If muted, keep track of partial frames that should have been skipped over. |
double muted_partial_frame_; |