| Index: webrtc/common_audio/include/audio_util.h
|
| diff --git a/webrtc/common_audio/include/audio_util.h b/webrtc/common_audio/include/audio_util.h
|
| index b217c683fd05815a7f10f95b000371f03e2db393..8262649145546180f23b6e82094d324b7f604e7f 100644
|
| --- a/webrtc/common_audio/include/audio_util.h
|
| +++ b/webrtc/common_audio/include/audio_util.h
|
| @@ -12,9 +12,7 @@
|
| #define WEBRTC_COMMON_AUDIO_INCLUDE_AUDIO_UTIL_H_
|
|
|
| #include <limits>
|
| -#include <cstring>
|
|
|
| -#include "webrtc/base/checks.h"
|
| #include "webrtc/base/scoped_ptr.h"
|
| #include "webrtc/typedefs.h"
|
|
|
| @@ -28,10 +26,10 @@
|
| // FloatS16: float [-32768.0, 32767.0]
|
| static inline int16_t FloatToS16(float v) {
|
| if (v > 0)
|
| - return v >= 1 ? limits_int16::max()
|
| - : static_cast<int16_t>(v * limits_int16::max() + 0.5f);
|
| - return v <= -1 ? limits_int16::min()
|
| - : static_cast<int16_t>(-v * limits_int16::min() - 0.5f);
|
| + return v >= 1 ? limits_int16::max() :
|
| + static_cast<int16_t>(v * limits_int16::max() + 0.5f);
|
| + return v <= -1 ? limits_int16::min() :
|
| + static_cast<int16_t>(-v * limits_int16::min() - 0.5f);
|
| }
|
|
|
| static inline float S16ToFloat(int16_t v) {
|
| @@ -44,9 +42,10 @@
|
| static const float kMaxRound = limits_int16::max() - 0.5f;
|
| static const float kMinRound = limits_int16::min() + 0.5f;
|
| if (v > 0)
|
| - return v >= kMaxRound ? limits_int16::max()
|
| - : static_cast<int16_t>(v + 0.5f);
|
| - return v <= kMinRound ? limits_int16::min() : static_cast<int16_t>(v - 0.5f);
|
| + return v >= kMaxRound ? limits_int16::max() :
|
| + static_cast<int16_t>(v + 0.5f);
|
| + return v <= kMinRound ? limits_int16::min() :
|
| + static_cast<int16_t>(v - 0.5f);
|
| }
|
|
|
| static inline float FloatToFloatS16(float v) {
|
| @@ -70,10 +69,8 @@
|
| // |deinterleaved| buffers (|num_channel| buffers with |samples_per_channel|
|
| // per buffer).
|
| template <typename T>
|
| -void Deinterleave(const T* interleaved,
|
| - int samples_per_channel,
|
| - int num_channels,
|
| - T* const* deinterleaved) {
|
| +void Deinterleave(const T* interleaved, int samples_per_channel,
|
| + int num_channels, T* const* deinterleaved) {
|
| for (int i = 0; i < num_channels; ++i) {
|
| T* channel = deinterleaved[i];
|
| int interleaved_idx = i;
|
| @@ -88,10 +85,8 @@
|
| // |interleaved|. There must be sufficient space allocated in |interleaved|
|
| // (|samples_per_channel| * |num_channels|).
|
| template <typename T>
|
| -void Interleave(const T* const* deinterleaved,
|
| - int samples_per_channel,
|
| - int num_channels,
|
| - T* interleaved) {
|
| +void Interleave(const T* const* deinterleaved, int samples_per_channel,
|
| + int num_channels, T* interleaved) {
|
| for (int i = 0; i < num_channels; ++i) {
|
| const T* channel = deinterleaved[i];
|
| int interleaved_idx = i;
|
| @@ -102,56 +97,6 @@
|
| }
|
| }
|
|
|
| -template <typename T, typename Intermediate>
|
| -void DownmixToMono(const T* const* input_channels,
|
| - int num_frames,
|
| - int num_channels,
|
| - T* out) {
|
| - for (int i = 0; i < num_frames; ++i) {
|
| - Intermediate value = input_channels[0][i];
|
| - for (int j = 1; j < num_channels; ++j) {
|
| - value += input_channels[j][i];
|
| - }
|
| - out[i] = value / num_channels;
|
| - }
|
| -}
|
| -
|
| -// Downmixes an interleaved multichannel signal to a single channel by averaging
|
| -// all channels.
|
| -template <typename T, typename Intermediate>
|
| -void DownmixInterleavedToMonoImpl(const T* interleaved,
|
| - int num_frames,
|
| - int num_channels,
|
| - T* deinterleaved) {
|
| - DCHECK_GT(num_channels, 0);
|
| - DCHECK_GT(num_frames, 0);
|
| -
|
| - const T* const end = interleaved + num_frames * num_channels;
|
| -
|
| - while (interleaved < end) {
|
| - const T* const frame_end = interleaved + num_channels;
|
| -
|
| - Intermediate value = *interleaved++;
|
| - while (interleaved < frame_end) {
|
| - value += *interleaved++;
|
| - }
|
| -
|
| - *deinterleaved++ = value / num_channels;
|
| - }
|
| -}
|
| -
|
| -template <typename T>
|
| -void DownmixInterleavedToMono(const T* interleaved,
|
| - int num_frames,
|
| - int num_channels,
|
| - T* deinterleaved);
|
| -
|
| -template <>
|
| -void DownmixInterleavedToMono<int16_t>(const int16_t* interleaved,
|
| - int num_frames,
|
| - int num_channels,
|
| - int16_t* deinterleaved);
|
| -
|
| } // namespace webrtc
|
|
|
| #endif // WEBRTC_COMMON_AUDIO_INCLUDE_AUDIO_UTIL_H_
|
|
|