OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 // | 4 // |
5 // AudioConverter is a complete mixing, resampling, buffering, and channel | 5 // AudioConverter is a complete mixing, resampling, buffering, and channel |
6 // mixing solution for converting data from one set of AudioParameters to | 6 // mixing solution for converting data from one set of AudioParameters to |
7 // another. | 7 // another. |
8 // | 8 // |
9 // For efficiency, pieces are only invoked when necessary; i.e., | 9 // For efficiency, pieces are only invoked when necessary; i.e., |
10 // - The resampler is only used if sample rates differ. | 10 // - The resampler is only used if sample rates differ. |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 | 85 |
86 // Flushes all buffered data. | 86 // Flushes all buffered data. |
87 void Reset(); | 87 void Reset(); |
88 | 88 |
89 // The maximum size in frames that guarantees we will only make a single call | 89 // The maximum size in frames that guarantees we will only make a single call |
90 // to each input's ProvideInput for more data. | 90 // to each input's ProvideInput for more data. |
91 int ChunkSize() const; | 91 int ChunkSize() const; |
92 | 92 |
93 bool empty() const { return transform_inputs_.empty(); } | 93 bool empty() const { return transform_inputs_.empty(); } |
94 | 94 |
| 95 void PrimeWithSilence(); |
| 96 |
95 private: | 97 private: |
96 // Provides input to the MultiChannelResampler. Called by the resampler when | 98 // Provides input to the MultiChannelResampler. Called by the resampler when |
97 // more data is necessary. | 99 // more data is necessary. |
98 void ProvideInput(int resampler_frame_delay, AudioBus* audio_bus); | 100 void ProvideInput(int resampler_frame_delay, AudioBus* audio_bus); |
99 | 101 |
100 // Provides input to the AudioPullFifo. Called by the fifo when more data is | 102 // Provides input to the AudioPullFifo. Called by the fifo when more data is |
101 // necessary. | 103 // necessary. |
102 void SourceCallback(int fifo_frame_delay, AudioBus* audio_bus); | 104 void SourceCallback(int fifo_frame_delay, AudioBus* audio_bus); |
103 | 105 |
104 // (Re)creates the temporary |unmixed_audio_| buffer if necessary. | 106 // (Re)creates the temporary |unmixed_audio_| buffer if necessary. |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
138 // value from the input AudioParameters class. Preserved to recreate internal | 140 // value from the input AudioParameters class. Preserved to recreate internal |
139 // AudioBus structures on demand in response to varying frame size requests. | 141 // AudioBus structures on demand in response to varying frame size requests. |
140 const int input_channel_count_; | 142 const int input_channel_count_; |
141 | 143 |
142 DISALLOW_COPY_AND_ASSIGN(AudioConverter); | 144 DISALLOW_COPY_AND_ASSIGN(AudioConverter); |
143 }; | 145 }; |
144 | 146 |
145 } // namespace media | 147 } // namespace media |
146 | 148 |
147 #endif // MEDIA_BASE_AUDIO_CONVERTER_H_ | 149 #endif // MEDIA_BASE_AUDIO_CONVERTER_H_ |
OLD | NEW |