From 668f4e49b6296431a3592e7fc7cc8846f0e7f272 Mon Sep 17 00:00:00 2001 From: Arun Raghavan Date: Mon, 6 Sep 2010 21:24:55 +0530 Subject: echo-cancel: Pass arguments to the specific canceller module This allows us to tweak module parameters for whichever AEC module is chosen. --- src/modules/echo-cancel/module-echo-cancel.c | 28 +++------------------------- 1 file changed, 3 insertions(+), 25 deletions(-) (limited to 'src/modules/echo-cancel/module-echo-cancel.c') diff --git a/src/modules/echo-cancel/module-echo-cancel.c b/src/modules/echo-cancel/module-echo-cancel.c index 2e724344..d6968cd0 100644 --- a/src/modules/echo-cancel/module-echo-cancel.c +++ b/src/modules/echo-cancel/module-echo-cancel.c @@ -70,13 +70,12 @@ PA_MODULE_USAGE( "sink_name= " "sink_properties= " "sink_master= " - "frame_size_ms= " - "filter_size_ms= " "adjust_time= " "format= " "rate= " "channels= " "channel_map= " + "aec_args= " "save_aec= " )); @@ -97,11 +96,6 @@ static const pa_echo_canceller ec_table[] = { }, }; -/* should be between 10-20 ms */ -#define DEFAULT_FRAME_SIZE_MS 20 -/* should be between 100-500 ms */ -#define DEFAULT_FILTER_SIZE_MS 200 - #define DEFAULT_ADJUST_TIME_USEC (1*PA_USEC_PER_SEC) #define DEFAULT_SAVE_AEC 0 @@ -154,7 +148,6 @@ struct userdata { pa_core *core; pa_module *module; - uint32_t frame_size_ms; uint32_t save_aec; pa_echo_canceller *ec; @@ -199,13 +192,12 @@ static const char* const valid_modargs[] = { "sink_name", "sink_properties", "sink_master", - "frame_size_ms", - "filter_size_ms", "adjust_time", "format", "rate", "channels", "channel_map", + "aec_args", "save_aec", NULL }; @@ -1287,7 +1279,6 @@ int pa__init(pa_module*m) { pa_source_new_data source_data; pa_sink_new_data sink_data; pa_memchunk silence; - uint32_t frame_size_ms, filter_size_ms; uint32_t adjust_time_sec; pa_assert(m); @@ -1309,18 +1300,6 @@ int pa__init(pa_module*m) { } pa_assert(sink_master); - frame_size_ms = DEFAULT_FRAME_SIZE_MS; - if (pa_modargs_get_value_u32(ma, "frame_size_ms", &frame_size_ms) < 0 || frame_size_ms < 1 || frame_size_ms > 200) { - pa_log("Invalid frame_size_ms specification"); - goto fail; - } - - filter_size_ms = DEFAULT_FILTER_SIZE_MS; - if (pa_modargs_get_value_u32(ma, "filter_size_ms", &filter_size_ms) < 0 || filter_size_ms < 1 || filter_size_ms > 2000) { - pa_log("Invalid filter_size_ms specification"); - goto fail; - } - ss = source_master->sample_spec; ss.format = PA_SAMPLE_S16LE; map = source_master->channel_map; @@ -1337,7 +1316,6 @@ int pa__init(pa_module*m) { u->core = m->core; u->module = m; m->userdata = u; - u->frame_size_ms = frame_size_ms; u->ec = pa_xnew0(pa_echo_canceller, 1); if (!u->ec) { @@ -1369,7 +1347,7 @@ int pa__init(pa_module*m) { u->asyncmsgq = pa_asyncmsgq_new(0); u->need_realign = TRUE; if (u->ec->init) { - if (!u->ec->init(u->ec, ss, map, filter_size_ms, frame_size_ms)) { + if (!u->ec->init(u->ec, ss, map, pa_modargs_get_value(ma, "aec_args", NULL))) { pa_log("Failed to init AEC engine"); goto fail; } -- cgit