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:
kwiberg@webrtc.org
2014-07-03 09:47:33 +00:00
parent a82f9a243d
commit 38214d53db
8 changed files with 54 additions and 51 deletions

View File

@ -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_);