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 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 void AddInput(InputCallback* input); | 83 void AddInput(InputCallback* input); |
84 void RemoveInput(InputCallback* input); | 84 void RemoveInput(InputCallback* input); |
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(); } |
| 94 |
93 private: | 95 private: |
94 // Provides input to the MultiChannelResampler. Called by the resampler when | 96 // Provides input to the MultiChannelResampler. Called by the resampler when |
95 // more data is necessary. | 97 // more data is necessary. |
96 void ProvideInput(int resampler_frame_delay, AudioBus* audio_bus); | 98 void ProvideInput(int resampler_frame_delay, AudioBus* audio_bus); |
97 | 99 |
98 // Provides input to the AudioPullFifo. Called by the fifo when more data is | 100 // Provides input to the AudioPullFifo. Called by the fifo when more data is |
99 // necessary. | 101 // necessary. |
100 void SourceCallback(int fifo_frame_delay, AudioBus* audio_bus); | 102 void SourceCallback(int fifo_frame_delay, AudioBus* audio_bus); |
101 | 103 |
102 // (Re)creates the temporary |unmixed_audio_| buffer if necessary. | 104 // (Re)creates the temporary |unmixed_audio_| buffer if necessary. |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 // value from the input AudioParameters class. Preserved to recreate internal | 138 // value from the input AudioParameters class. Preserved to recreate internal |
137 // AudioBus structures on demand in response to varying frame size requests. | 139 // AudioBus structures on demand in response to varying frame size requests. |
138 const int input_channel_count_; | 140 const int input_channel_count_; |
139 | 141 |
140 DISALLOW_COPY_AND_ASSIGN(AudioConverter); | 142 DISALLOW_COPY_AND_ASSIGN(AudioConverter); |
141 }; | 143 }; |
142 | 144 |
143 } // namespace media | 145 } // namespace media |
144 | 146 |
145 #endif // MEDIA_BASE_AUDIO_CONVERTER_H_ | 147 #endif // MEDIA_BASE_AUDIO_CONVERTER_H_ |
OLD | NEW |