mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-07 13:30:03 -05:00
filter-apply: Eliminate nested and redundant hook events
In proces(), the do_move() function calls pa_{sink_input,source_output}_set_property().
This triggers a call to {sink_input,source_output}_proplist_cb() which called process()
a second time.
This patch avoids the duplicate and nested call to process() by checking if
PA_PROP_FILTER_APPLY_MOVING is set in {sink_input,source_output}_proplist_cb().
This commit is contained in:
parent
e29068067a
commit
922f08b787
1 changed files with 10 additions and 0 deletions
|
|
@ -646,6 +646,11 @@ static pa_hook_result_t sink_input_proplist_cb(pa_core *core, pa_sink_input *i,
|
|||
pa_core_assert_ref(core);
|
||||
pa_sink_input_assert_ref(i);
|
||||
|
||||
/* Eliminate nested and redundant hook event that is triggered by
|
||||
pa_sink_input_set_property() in do_move(). */
|
||||
if (pa_proplist_gets(i->proplist, PA_PROP_FILTER_APPLY_MOVING))
|
||||
return PA_HOOK_OK;
|
||||
|
||||
return process(u, PA_OBJECT(i), true, true);
|
||||
}
|
||||
|
||||
|
|
@ -723,6 +728,11 @@ static pa_hook_result_t source_output_proplist_cb(pa_core *core, pa_source_outpu
|
|||
pa_core_assert_ref(core);
|
||||
pa_source_output_assert_ref(o);
|
||||
|
||||
/* Eliminate nested and redundant hook event that is triggered by
|
||||
pa_source_output_set_property() in do_move(). */
|
||||
if (pa_proplist_gets(o->proplist, PA_PROP_FILTER_APPLY_MOVING))
|
||||
return PA_HOOK_OK;
|
||||
|
||||
return process(u, PA_OBJECT(o), false, true);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue