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) {
|
||||
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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue