From: Sebastian Krzyszkowiak Date: Thu, 29 Oct 2020 01:11:22 +0000 (+0100) Subject: filter-apply: Look for filter parameters also in device properties X-Git-Tag: v14.99.1~247 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4552fe15b3578219d7e21cb77018a5f9425cd593;p=platform%2Fupstream%2Fpulseaudio.git filter-apply: Look for filter parameters also in device properties Some filters take parameters that effectively describe the hardware they're being applied to (like echo-cancel allowing to specify the mic array parameters for better noise filtering). This allows system integrators to set default parameters for such modules per-device, which will get used when the stream doesn't specify their own. Part-of: --- diff --git a/src/modules/module-filter-apply.c b/src/modules/module-filter-apply.c index c9f3f39..1c12782 100644 --- a/src/modules/module-filter-apply.c +++ b/src/modules/module-filter-apply.c @@ -146,15 +146,20 @@ static const char* get_filter_name(pa_object *o, bool is_sink_input) { static const char* get_filter_parameters(pa_object *o, const char *want, bool is_sink_input) { const char *parameters; char *prop_parameters; - pa_proplist *pl; + pa_proplist *pl, *device_pl; - if (is_sink_input) + if (is_sink_input) { pl = PA_SINK_INPUT(o)->proplist; - else + device_pl = PA_SINK_INPUT(o)->sink->proplist; + } else { pl = PA_SOURCE_OUTPUT(o)->proplist; + device_pl = PA_SOURCE_OUTPUT(o)->source->proplist; + } prop_parameters = pa_sprintf_malloc(PA_PROP_FILTER_APPLY_PARAMETERS, want); parameters = pa_proplist_gets(pl, prop_parameters); + if (!parameters) + parameters = pa_proplist_gets(device_pl, prop_parameters); pa_xfree(prop_parameters); return parameters;