| Index: media/audio/audio_util.cc
|
| ===================================================================
|
| --- media/audio/audio_util.cc (revision 70546)
|
| +++ media/audio/audio_util.cc (working copy)
|
| @@ -204,4 +204,23 @@
|
| return false;
|
| }
|
|
|
| +void InterleaveFloatToInt16(const std::vector<float*>& source,
|
| + int16* destination,
|
| + size_t number_of_frames) {
|
| + const float kScale = 32768.0f;
|
| + int channels = source.size();
|
| + for (int i = 0; i < channels; ++i) {
|
| + float* channel_data = source[i];
|
| + for (size_t j = 0; j < number_of_frames; ++j) {
|
| + float sample = kScale * channel_data[j];
|
| + if (sample < -32768.0)
|
| + sample = -32768.0;
|
| + else if (sample > 32767.0)
|
| + sample = 32767.0;
|
| +
|
| + destination[j * channels + i] = static_cast<int16>(sample);
|
| + }
|
| + }
|
| +}
|
| +
|
| } // namespace media
|
|
|