mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-03 09:01:50 -05:00
echo-cancel: Add function pa_echo_canceller_blocksize_power2()
computes EC block size in frames (rounded down to nearest power-of-2) based on sample rate and milliseconds move code from speex AEC implementation to module-echo-cancel such that functionality can be reused by other AEC implementations Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>
This commit is contained in:
parent
e845c86c64
commit
db7415b7e9
3 changed files with 22 additions and 9 deletions
|
|
@ -1569,6 +1569,21 @@ void pa_echo_canceller_set_capture_volume(pa_echo_canceller *ec, pa_cvolume *v)
|
|||
}
|
||||
}
|
||||
|
||||
uint32_t pa_echo_canceller_blocksize_power2(unsigned rate, unsigned ms) {
|
||||
unsigned nframes = (rate * ms) / 1000;
|
||||
uint32_t y = 1 << ((8 * sizeof(uint32_t)) - 2);
|
||||
|
||||
assert(rate >= 4000);
|
||||
assert(ms >= 1);
|
||||
|
||||
/* nframes should be a power of 2, round down to nearest power of two */
|
||||
while (y > nframes)
|
||||
y >>= 1;
|
||||
|
||||
assert(y >= 1);
|
||||
return y;
|
||||
}
|
||||
|
||||
static pa_echo_canceller_method_t get_ec_method_from_string(const char *method) {
|
||||
if (pa_streq(method, "null"))
|
||||
return PA_ECHO_CANCELLER_NULL;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue