Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(66)

Unified Diff: webrtc/modules/audio_processing/aec3/echo_canceller3.cc

Issue 2611223003: Adding second layer of the echo canceller 3 functionality. (Closed)
Patch Set: Changes in response to reviewer comments Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/audio_processing/aec3/echo_canceller3.cc
diff --git a/webrtc/modules/audio_processing/aec3/echo_canceller3.cc b/webrtc/modules/audio_processing/aec3/echo_canceller3.cc
index b409e60350e2c2b6c45b2395d8a42d6285f92410..36e208f8ef799aae4d8068c1cf199ac6753b98e3 100644
--- a/webrtc/modules/audio_processing/aec3/echo_canceller3.cc
+++ b/webrtc/modules/audio_processing/aec3/echo_canceller3.cc
@@ -53,7 +53,7 @@ void FillSubFrameView(std::vector<std::vector<float>>* frame,
void ProcessCaptureFrameContent(
AudioBuffer* capture,
- bool known_echo_path_change,
+ bool level_change,
bool saturated_microphone_signal,
size_t sub_frame_index,
FrameBlocker* capture_blocker,
@@ -63,13 +63,13 @@ void ProcessCaptureFrameContent(
std::vector<rtc::ArrayView<float>>* sub_frame_view) {
FillSubFrameView(capture, sub_frame_index, sub_frame_view);
capture_blocker->InsertSubFrameAndExtractBlock(*sub_frame_view, block);
- block_processor->ProcessCapture(known_echo_path_change,
- saturated_microphone_signal, block);
+ block_processor->ProcessCapture(level_change, saturated_microphone_signal,
+ block);
output_framer->InsertBlockAndExtractSubFrame(*block, sub_frame_view);
}
void ProcessRemainingCaptureFrameContent(
- bool known_echo_path_change,
+ bool level_change,
bool saturated_microphone_signal,
FrameBlocker* capture_blocker,
BlockFramer* output_framer,
@@ -80,8 +80,8 @@ void ProcessRemainingCaptureFrameContent(
}
capture_blocker->ExtractBlock(block);
- block_processor->ProcessCapture(known_echo_path_change,
- saturated_microphone_signal, block);
+ block_processor->ProcessCapture(level_change, saturated_microphone_signal,
+ block);
output_framer->InsertBlock(*block);
}
@@ -275,8 +275,7 @@ void EchoCanceller3::AnalyzeCapture(AudioBuffer* capture) {
}
}
-void EchoCanceller3::ProcessCapture(AudioBuffer* capture,
- bool known_echo_path_change) {
+void EchoCanceller3::ProcessCapture(AudioBuffer* capture, bool level_change) {
RTC_DCHECK_RUNS_SERIALIZED(&capture_race_checker_);
RTC_DCHECK(capture);
RTC_DCHECK_EQ(1u, capture->num_channels());
@@ -289,27 +288,26 @@ void EchoCanceller3::ProcessCapture(AudioBuffer* capture,
data_dumper_->DumpWav("aec3_capture_input", capture_lower_band,
LowestBandRate(sample_rate_hz_), 1);
- const bool render_buffer_overrun = EmptyRenderQueue();
- RTC_DCHECK(!render_buffer_overrun);
+ const bool successful_buffering = EmptyRenderQueue();
+ RTC_DCHECK(!successful_buffering);
hlundin-webrtc 2017/01/20 09:31:44 I think you better invert the DCHECK.
peah-webrtc 2017/01/23 14:16:40 Done.
if (capture_highpass_filter_) {
capture_highpass_filter_->Process(capture_lower_band);
}
- ProcessCaptureFrameContent(capture, known_echo_path_change,
- saturated_microphone_signal_, 0, &capture_blocker_,
- &output_framer_, block_processor_.get(), &block_,
- &sub_frame_view_);
+ ProcessCaptureFrameContent(
+ capture, level_change, saturated_microphone_signal_, 0, &capture_blocker_,
+ &output_framer_, block_processor_.get(), &block_, &sub_frame_view_);
if (sample_rate_hz_ != 8000) {
ProcessCaptureFrameContent(
- capture, known_echo_path_change, saturated_microphone_signal_, 1,
+ capture, level_change, saturated_microphone_signal_, 1,
&capture_blocker_, &output_framer_, block_processor_.get(), &block_,
&sub_frame_view_);
}
ProcessRemainingCaptureFrameContent(
- known_echo_path_change, saturated_microphone_signal_, &capture_blocker_,
+ level_change, saturated_microphone_signal_, &capture_blocker_,
&output_framer_, block_processor_.get(), &block_);
data_dumper_->DumpWav("aec3_capture_output", frame_length_,
@@ -332,27 +330,33 @@ bool EchoCanceller3::Validate(
bool EchoCanceller3::EmptyRenderQueue() {
RTC_DCHECK_RUNS_SERIALIZED(&capture_race_checker_);
- bool render_buffer_overrun = false;
+ bool successful_buffering = false;
aleloi 2017/01/20 14:45:37 successful_buffering is initialized with false, an
peah-webrtc 2017/01/23 14:16:40 Good find! I must have missed running the test aft
bool frame_to_buffer =
render_transfer_queue_.Remove(&render_queue_output_frame_);
while (frame_to_buffer) {
- render_buffer_overrun |= BufferRenderFrameContent(
- &render_queue_output_frame_, 0, &render_blocker_,
- block_processor_.get(), &block_, &sub_frame_view_);
+ successful_buffering =
+ BufferRenderFrameContent(&render_queue_output_frame_, 0,
+ &render_blocker_, block_processor_.get(),
+ &block_, &sub_frame_view_) &&
+ successful_buffering;
if (sample_rate_hz_ != 8000) {
- render_buffer_overrun |= BufferRenderFrameContent(
- &render_queue_output_frame_, 1, &render_blocker_,
- block_processor_.get(), &block_, &sub_frame_view_);
+ successful_buffering =
+ BufferRenderFrameContent(&render_queue_output_frame_, 1,
+ &render_blocker_, block_processor_.get(),
+ &block_, &sub_frame_view_) &&
+ successful_buffering;
}
- render_buffer_overrun |= BufferRemainingRenderFrameContent(
- &render_blocker_, block_processor_.get(), &block_);
+ successful_buffering =
+ BufferRemainingRenderFrameContent(&render_blocker_,
+ block_processor_.get(), &block_) &&
+ successful_buffering;
frame_to_buffer =
render_transfer_queue_.Remove(&render_queue_output_frame_);
}
- return render_buffer_overrun;
+ return successful_buffering;
}
} // namespace webrtc

Powered by Google App Engine
This is Rietveld 408576698