Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3.""
This is a reland of a66395e72f9fc86873bf443579ec73c3d78af240
Original change's description:
> Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."
>
> This is a reland of f3a197e55323aee974a932c52dd19fa88e5d4e38
>
> Original change's description:
> > Add core multi-channel pipeline in AEC3
> > This CL adds basic the basic pipeline to support multi-channel
> > processing in AEC3.
> >
> > Apart from that, it removes the 8 kHz processing support in several
> > places of the AEC3 code.
> >
> > Bug: webrtc:10913
> > Change-Id: If5b75fa325ed0071deea94a7546cb4a7adf22137
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150332
> > Commit-Queue: Per Åhgren <peah@webrtc.org>
> > Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#29017}
>
> Bug: webrtc:10913
> Change-Id: Ifc4b13bd994cfd22dca8f8755fa5700617cc379d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151124
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Commit-Queue: Per Åhgren <peah@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29034}
Bug: webrtc:10913
Change-Id: Id8da5666df8c86f290c73ad5dc9958199f1a7ebe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151127
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29042}
diff --git a/modules/audio_processing/aec3/matrix_buffer.cc b/modules/audio_processing/aec3/matrix_buffer.cc
index bd6daea..2fd71b4 100644
--- a/modules/audio_processing/aec3/matrix_buffer.cc
+++ b/modules/audio_processing/aec3/matrix_buffer.cc
@@ -14,14 +14,22 @@
namespace webrtc {
-MatrixBuffer::MatrixBuffer(size_t size, size_t height, size_t width)
+MatrixBuffer::MatrixBuffer(size_t size,
+ size_t num_bands,
+ size_t num_channels,
+ size_t frame_length)
: size(static_cast<int>(size)),
buffer(size,
- std::vector<std::vector<float>>(height,
- std::vector<float>(width, 0.f))) {
- for (auto& c : buffer) {
- for (auto& b : c) {
- std::fill(b.begin(), b.end(), 0.f);
+ std::vector<std::vector<std::vector<float>>>(
+ num_bands,
+ std::vector<std::vector<float>>(
+ num_channels,
+ std::vector<float>(frame_length, 0.f)))) {
+ for (auto& block : buffer) {
+ for (auto& band : block) {
+ for (auto& channel : band) {
+ std::fill(channel.begin(), channel.end(), 0.f);
+ }
}
}
}