API add to set background noise mode.
Background noise mode.
BUG=
R=henrik.lundin@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2194005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4835 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/modules/audio_coding/neteq4/neteq_impl.cc b/webrtc/modules/audio_coding/neteq4/neteq_impl.cc
index 7620a7f..d872b80 100644
--- a/webrtc/modules/audio_coding/neteq4/neteq_impl.cc
+++ b/webrtc/modules/audio_coding/neteq4/neteq_impl.cc
@@ -363,7 +363,7 @@
current_memory_size_bytes, max_memory_size_bytes);
}
-int NetEqImpl::DecodedRtpInfo(int* sequence_number, uint32_t* timestamp) {
+int NetEqImpl::DecodedRtpInfo(int* sequence_number, uint32_t* timestamp) const {
CriticalSectionScoped lock(crit_sect_.get());
if (decoded_packet_sequence_number_ < 0)
return -1;
@@ -377,10 +377,16 @@
return kNotImplemented;
}
-void NetEqImpl::SetBackgroundNoiseMode(NetEqBackgroundNoiseMode /* mode */) {}
+void NetEqImpl::SetBackgroundNoiseMode(NetEqBackgroundNoiseMode mode) {
+ CriticalSectionScoped lock(crit_sect_.get());
+ assert(background_noise_.get());
+ background_noise_->set_mode(mode);
+}
NetEqBackgroundNoiseMode NetEqImpl::BackgroundNoiseMode() const {
- return kBgnOn;
+ CriticalSectionScoped lock(crit_sect_.get());
+ assert(background_noise_.get());
+ return background_noise_->mode();
}
// Methods below this line are private.
@@ -1759,8 +1765,14 @@
// Delete sync buffer and create a new one.
sync_buffer_.reset(new SyncBuffer(channels, kSyncBufferSize * fs_mult_));
- // Delete BackgroundNoise object and create a new one.
+
+ // Delete BackgroundNoise object and create a new one, while preserving its
+ // mode.
+ NetEqBackgroundNoiseMode current_mode = kBgnOn;
+ if (background_noise_.get())
+ current_mode = background_noise_->mode();
background_noise_.reset(new BackgroundNoise(channels));
+ background_noise_->set_mode(current_mode);
// Reset random vector.
random_vector_.Reset();