Support 48kHz in Noise Suppression
Doing the same for the 16-24kHz band than was done in the 8-16kHz.
Results look and sound as nice.
BUG=webrtc:3146
R=andrew@webrtc.org, bjornv@webrtc.org, kwiberg@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/29139004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7865 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/modules/audio_processing/audio_buffer.h b/webrtc/modules/audio_processing/audio_buffer.h
index 59bb1ff..65d7cad 100644
--- a/webrtc/modules/audio_processing/audio_buffer.h
+++ b/webrtc/modules/audio_processing/audio_buffer.h
@@ -27,6 +27,7 @@
class PushSincResampler;
class IFChannelBuffer;
+static const int kMaxNumBands = 3;
enum Band {
kBand0To8kHz = 0,
kBand8To16kHz = 1,
@@ -47,6 +48,7 @@
int samples_per_channel() const;
int samples_per_split_channel() const;
int samples_per_keyboard_channel() const;
+ int num_bands() const;
// Sample array accessors. Channels are guaranteed to be stored contiguously
// in memory. Prefer to use the const variants of each accessor when
@@ -55,8 +57,8 @@
const int16_t* data_const(int channel) const;
int16_t* const* channels();
const int16_t* const* channels_const() const;
- int16_t* split_data(int channel, Band band);
- const int16_t* split_data_const(int channel, Band band) const;
+ int16_t* const* split_bands(int channel);
+ const int16_t* const* split_bands_const(int channel) const;
int16_t* const* split_channels(Band band);
const int16_t* const* split_channels_const(Band band) const;
@@ -71,8 +73,8 @@
const float* data_const_f(int channel) const;
float* const* channels_f();
const float* const* channels_const_f() const;
- float* split_data_f(int channel, Band band);
- const float* split_data_const_f(int channel, Band band) const;
+ float* const* split_bands_f(int channel);
+ const float* const* split_bands_const_f(int channel) const;
float* const* split_channels_f(Band band);
const float* const* split_channels_const_f(Band band) const;
@@ -110,6 +112,7 @@
const int proc_samples_per_channel_;
const int num_proc_channels_;
const int output_samples_per_channel_;
+ int num_bands_;
int samples_per_split_channel_;
bool mixed_low_pass_valid_;
bool reference_copied_;
@@ -118,6 +121,8 @@
const float* keyboard_data_;
scoped_ptr<IFChannelBuffer> channels_;
ScopedVector<IFChannelBuffer> split_channels_;
+ scoped_ptr<int16_t*[]> bands_;
+ scoped_ptr<float*[]> bands_f_;
scoped_ptr<SplittingFilter> splitting_filter_;
scoped_ptr<ChannelBuffer<int16_t> > mixed_low_pass_channels_;
scoped_ptr<ChannelBuffer<int16_t> > low_pass_reference_channels_;