module-echo-cancel: Wire up the webrtc echo canceller

Mostly uses the existing infrastructure, but the webrtc canceller has a
fixed blocksize, so we:

  1. Use the canceller blocksize if configured
  2. Accumulate output data in a ringbuffer
  3. Push out the data in the required chunk size
This commit is contained in:
Arun Raghavan 2021-05-28 11:28:03 -04:00
parent 1349d5334d
commit d95870d8d3
9 changed files with 247 additions and 69 deletions

View file

@ -28,11 +28,11 @@ struct impl {
uint32_t channels;
};
static void *null_create(struct spa_dict *info, uint32_t channels)
static void *null_create(const struct pw_properties *args, const struct spa_audio_info_raw *info)
{
struct impl *impl;
impl = calloc(1, sizeof(struct impl));
impl->channels = channels;
impl->channels = info->channels;
return impl;
}
@ -53,6 +53,7 @@ static int null_run(void *ec, const float *rec[], const float *play[], float *ou
static const struct echo_cancel_info echo_cancel_null_impl = {
.name = "null",
.info = SPA_DICT_INIT(NULL, 0),
.latency = NULL,
.create = null_create,
.destroy = null_destroy,