mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-07 13:30:03 -05:00
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: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/400>
This commit is contained in:
parent
c0779b28b8
commit
4552fe15b3
1 changed files with 8 additions and 3 deletions
|
|
@ -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) {
|
static const char* get_filter_parameters(pa_object *o, const char *want, bool is_sink_input) {
|
||||||
const char *parameters;
|
const char *parameters;
|
||||||
char *prop_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;
|
pl = PA_SINK_INPUT(o)->proplist;
|
||||||
else
|
device_pl = PA_SINK_INPUT(o)->sink->proplist;
|
||||||
|
} else {
|
||||||
pl = PA_SOURCE_OUTPUT(o)->proplist;
|
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);
|
prop_parameters = pa_sprintf_malloc(PA_PROP_FILTER_APPLY_PARAMETERS, want);
|
||||||
parameters = pa_proplist_gets(pl, prop_parameters);
|
parameters = pa_proplist_gets(pl, prop_parameters);
|
||||||
|
if (!parameters)
|
||||||
|
parameters = pa_proplist_gets(device_pl, prop_parameters);
|
||||||
pa_xfree(prop_parameters);
|
pa_xfree(prop_parameters);
|
||||||
|
|
||||||
return parameters;
|
return parameters;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue