EchoCancellationImpl::ProcessRenderAudio: Use float samples directly
This patch lets EchoCancellationImpl::ProcessRenderAudio ask the given AudioBuffer for float sample data directly, instead of asking for int16 samples and then converting manually. Since EchoCancellationImpl::ProcessRenderAudio takes a const AudioBuffer*, it was necessary to add some const accessors for float data to AudioBuffer. R=aluebs@webrtc.org, andrew@webrtc.org, bjornv@webrtc.org Review URL: https://webrtc-codereview.appspot.com/14749004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6590 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@ -294,11 +294,16 @@ int16_t* AudioBuffer::data(int channel) {
|
||||
return const_cast<int16_t*>(t->data(channel));
|
||||
}
|
||||
|
||||
float* AudioBuffer::data_f(int channel) {
|
||||
const float* AudioBuffer::data_f(int channel) const {
|
||||
assert(channel >= 0 && channel < num_proc_channels_);
|
||||
return channels_->fbuf()->channel(channel);
|
||||
}
|
||||
|
||||
float* AudioBuffer::data_f(int channel) {
|
||||
const AudioBuffer* t = this;
|
||||
return const_cast<float*>(t->data_f(channel));
|
||||
}
|
||||
|
||||
const int16_t* AudioBuffer::low_pass_split_data(int channel) const {
|
||||
assert(channel >= 0 && channel < num_proc_channels_);
|
||||
return split_channels_.get() ? split_channels_->low_channel(channel)
|
||||
@ -310,12 +315,17 @@ int16_t* AudioBuffer::low_pass_split_data(int channel) {
|
||||
return const_cast<int16_t*>(t->low_pass_split_data(channel));
|
||||
}
|
||||
|
||||
float* AudioBuffer::low_pass_split_data_f(int channel) {
|
||||
const float* AudioBuffer::low_pass_split_data_f(int channel) const {
|
||||
assert(channel >= 0 && channel < num_proc_channels_);
|
||||
return split_channels_.get() ? split_channels_->low_channel_f(channel)
|
||||
: data_f(channel);
|
||||
}
|
||||
|
||||
float* AudioBuffer::low_pass_split_data_f(int channel) {
|
||||
const AudioBuffer* t = this;
|
||||
return const_cast<float*>(t->low_pass_split_data_f(channel));
|
||||
}
|
||||
|
||||
const int16_t* AudioBuffer::high_pass_split_data(int channel) const {
|
||||
assert(channel >= 0 && channel < num_proc_channels_);
|
||||
return split_channels_.get() ? split_channels_->high_channel(channel) : NULL;
|
||||
@ -326,12 +336,17 @@ int16_t* AudioBuffer::high_pass_split_data(int channel) {
|
||||
return const_cast<int16_t*>(t->high_pass_split_data(channel));
|
||||
}
|
||||
|
||||
float* AudioBuffer::high_pass_split_data_f(int channel) {
|
||||
const float* AudioBuffer::high_pass_split_data_f(int channel) const {
|
||||
assert(channel >= 0 && channel < num_proc_channels_);
|
||||
return split_channels_.get() ? split_channels_->high_channel_f(channel)
|
||||
: NULL;
|
||||
}
|
||||
|
||||
float* AudioBuffer::high_pass_split_data_f(int channel) {
|
||||
const AudioBuffer* t = this;
|
||||
return const_cast<float*>(t->high_pass_split_data_f(channel));
|
||||
}
|
||||
|
||||
const int16_t* AudioBuffer::mixed_data(int channel) const {
|
||||
assert(channel >= 0 && channel < num_mixed_channels_);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user