Remove all AudioBuffer code that is not related to storing audio data
This CL moves/removes all code from the AudioBuffer that:
-Is not directly handling audio data (e.g., keytaps, VAD descisions).
-Is caching aggregated versions of the rest of the audio data.
-Is not used (or only used in testing)
Bug: webrtc:10882
Change-Id: I737deb3f692748eff30f46ad806b2c6f6292802c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/149072
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28866}
diff --git a/modules/audio_processing/audio_buffer.cc b/modules/audio_processing/audio_buffer.cc
index 1a99463..584111c 100644
--- a/modules/audio_processing/audio_buffer.cc
+++ b/modules/audio_processing/audio_buffer.cc
@@ -27,15 +27,6 @@
const size_t kSamplesPer32kHzChannel = 320;
const size_t kSamplesPer48kHzChannel = 480;
-int KeyboardChannelIndex(const StreamConfig& stream_config) {
- if (!stream_config.has_keyboard()) {
- RTC_NOTREACHED();
- return 0;
- }
-
- return stream_config.num_channels();
-}
-
size_t NumBandsFromSamplesPerChannel(size_t num_frames) {
size_t num_bands = 1;
if (num_frames == kSamplesPer32kHzChannel ||
@@ -60,10 +51,6 @@
num_channels_(num_process_channels),
num_bands_(NumBandsFromSamplesPerChannel(proc_num_frames_)),
num_split_frames_(rtc::CheckedDivExact(proc_num_frames_, num_bands_)),
- mixed_low_pass_valid_(false),
- reference_copied_(false),
- activity_(AudioFrame::kVadUnknown),
- keyboard_data_(NULL),
data_(new IFChannelBuffer(proc_num_frames_, num_proc_channels_)),
output_buffer_(new IFChannelBuffer(output_num_frames_, num_channels_)) {
RTC_DCHECK_GT(input_num_frames_, 0);
@@ -118,10 +105,6 @@
new IFChannelBuffer(input_num_frames_, num_proc_channels_));
}
- if (stream_config.has_keyboard()) {
- keyboard_data_ = data[KeyboardChannelIndex(stream_config)];
- }
-
// Downmix.
const float* const* data_ptr = data;
if (need_to_downmix) {
@@ -179,10 +162,6 @@
}
void AudioBuffer::InitForNewData() {
- keyboard_data_ = NULL;
- mixed_low_pass_valid_ = false;
- reference_copied_ = false;
- activity_ = AudioFrame::kVadUnknown;
num_channels_ = num_proc_channels_;
data_->set_num_channels(num_proc_channels_);
if (split_data_.get()) {
@@ -195,7 +174,6 @@
}
int16_t* const* AudioBuffer::channels() {
- mixed_low_pass_valid_ = false;
return data_->ibuf()->channels();
}
@@ -205,7 +183,6 @@
}
int16_t* const* AudioBuffer::split_bands(size_t channel) {
- mixed_low_pass_valid_ = false;
return split_data_.get() ? split_data_->ibuf()->bands(channel)
: data_->ibuf()->bands(channel);
}
@@ -218,39 +195,11 @@
}
}
-int16_t* const* AudioBuffer::split_channels(Band band) {
- mixed_low_pass_valid_ = false;
- if (split_data_.get()) {
- return split_data_->ibuf()->channels(band);
- } else {
- return band == kBand0To8kHz ? data_->ibuf()->channels() : nullptr;
- }
-}
-
-ChannelBuffer<int16_t>* AudioBuffer::data() {
- mixed_low_pass_valid_ = false;
- return data_->ibuf();
-}
-
-const ChannelBuffer<int16_t>* AudioBuffer::data() const {
- return data_->ibuf_const();
-}
-
-ChannelBuffer<int16_t>* AudioBuffer::split_data() {
- mixed_low_pass_valid_ = false;
- return split_data_.get() ? split_data_->ibuf() : data_->ibuf();
-}
-
-const ChannelBuffer<int16_t>* AudioBuffer::split_data() const {
- return split_data_.get() ? split_data_->ibuf_const() : data_->ibuf_const();
-}
-
const float* const* AudioBuffer::channels_const_f() const {
return data_->fbuf_const()->channels();
}
float* const* AudioBuffer::channels_f() {
- mixed_low_pass_valid_ = false;
return data_->fbuf()->channels();
}
@@ -260,85 +209,10 @@
}
float* const* AudioBuffer::split_bands_f(size_t channel) {
- mixed_low_pass_valid_ = false;
return split_data_.get() ? split_data_->fbuf()->bands(channel)
: data_->fbuf()->bands(channel);
}
-const float* const* AudioBuffer::split_channels_const_f(Band band) const {
- if (split_data_.get()) {
- return split_data_->fbuf_const()->channels(band);
- } else {
- return band == kBand0To8kHz ? data_->fbuf_const()->channels() : nullptr;
- }
-}
-
-float* const* AudioBuffer::split_channels_f(Band band) {
- mixed_low_pass_valid_ = false;
- if (split_data_.get()) {
- return split_data_->fbuf()->channels(band);
- } else {
- return band == kBand0To8kHz ? data_->fbuf()->channels() : nullptr;
- }
-}
-
-ChannelBuffer<float>* AudioBuffer::data_f() {
- mixed_low_pass_valid_ = false;
- return data_->fbuf();
-}
-
-const ChannelBuffer<float>* AudioBuffer::data_f() const {
- return data_->fbuf_const();
-}
-
-ChannelBuffer<float>* AudioBuffer::split_data_f() {
- mixed_low_pass_valid_ = false;
- return split_data_.get() ? split_data_->fbuf() : data_->fbuf();
-}
-
-const ChannelBuffer<float>* AudioBuffer::split_data_f() const {
- return split_data_.get() ? split_data_->fbuf_const() : data_->fbuf_const();
-}
-
-const int16_t* AudioBuffer::mixed_low_pass_data() {
- if (num_proc_channels_ == 1) {
- return split_bands_const(0)[kBand0To8kHz];
- }
-
- if (!mixed_low_pass_valid_) {
- if (!mixed_low_pass_channels_.get()) {
- mixed_low_pass_channels_.reset(
- new ChannelBuffer<int16_t>(num_split_frames_, 1));
- }
-
- DownmixToMono<int16_t, int32_t>(split_channels_const(kBand0To8kHz),
- num_split_frames_, num_channels_,
- mixed_low_pass_channels_->channels()[0]);
- mixed_low_pass_valid_ = true;
- }
- return mixed_low_pass_channels_->channels()[0];
-}
-
-const int16_t* AudioBuffer::low_pass_reference(int channel) const {
- if (!reference_copied_) {
- return NULL;
- }
-
- return low_pass_reference_channels_->channels()[channel];
-}
-
-const float* AudioBuffer::keyboard_data() const {
- return keyboard_data_;
-}
-
-void AudioBuffer::set_activity(AudioFrame::VADActivity activity) {
- activity_ = activity;
-}
-
-AudioFrame::VADActivity AudioBuffer::activity() const {
- return activity_;
-}
-
size_t AudioBuffer::num_channels() const {
return num_channels_;
}
@@ -359,17 +233,12 @@
return num_split_frames_;
}
-size_t AudioBuffer::num_keyboard_frames() const {
- // We don't resample the keyboard channel.
- return input_num_frames_;
-}
-
size_t AudioBuffer::num_bands() const {
return num_bands_;
}
// The resampler is only for supporting 48kHz to 16kHz in the reverse stream.
-void AudioBuffer::DeinterleaveFrom(AudioFrame* frame) {
+void AudioBuffer::DeinterleaveFrom(const AudioFrame* frame) {
RTC_DCHECK_EQ(frame->num_channels_, num_input_channels_);
RTC_DCHECK_EQ(frame->samples_per_channel_, input_num_frames_);
InitForNewData();
@@ -378,7 +247,6 @@
input_buffer_.reset(
new IFChannelBuffer(input_num_frames_, num_proc_channels_));
}
- activity_ = frame->vad_activity_;
int16_t* const* deinterleaved;
if (input_num_frames_ == proc_num_frames_) {
@@ -407,12 +275,7 @@
}
}
-void AudioBuffer::InterleaveTo(AudioFrame* frame, bool data_changed) const {
- frame->vad_activity_ = activity_;
- if (!data_changed) {
- return;
- }
-
+void AudioBuffer::InterleaveTo(AudioFrame* frame) const {
RTC_DCHECK(frame->num_channels_ == num_channels_ || num_channels_ == 1);
RTC_DCHECK_EQ(frame->samples_per_channel_, output_num_frames_);
@@ -437,21 +300,6 @@
}
}
-void AudioBuffer::CopyLowPassToReference() {
- reference_copied_ = true;
- if (!low_pass_reference_channels_.get() ||
- low_pass_reference_channels_->num_channels() != num_channels_) {
- low_pass_reference_channels_.reset(
- new ChannelBuffer<int16_t>(num_split_frames_, num_proc_channels_));
- }
- for (size_t i = 0; i < num_proc_channels_; i++) {
- memcpy(low_pass_reference_channels_->channels()[i],
- split_bands_const(i)[kBand0To8kHz],
- low_pass_reference_channels_->num_frames_per_band() *
- sizeof(split_bands_const(i)[kBand0To8kHz][0]));
- }
-}
-
void AudioBuffer::SplitIntoFrequencyBands() {
splitting_filter_->Analysis(data_.get(), split_data_.get());
}