mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-02 09:01:50 -05:00
audioconvert: only deactive old filter when new filter loaded
When we fail to load the new filter, keep the old filter active or else we will cause a crash when we clean up the old graph.
This commit is contained in:
parent
0868ff1ada
commit
049ab37a6d
1 changed files with 4 additions and 2 deletions
|
|
@ -1062,7 +1062,7 @@ static int load_filter_graph(struct impl *impl, const char *graph, int order)
|
||||||
void *iface;
|
void *iface;
|
||||||
struct spa_handle *new_handle = NULL;
|
struct spa_handle *new_handle = NULL;
|
||||||
uint32_t i, idx, n_graph;
|
uint32_t i, idx, n_graph;
|
||||||
struct filter_graph *pending;
|
struct filter_graph *pending, *old_active = NULL;
|
||||||
|
|
||||||
if (impl->props.filter_graph_disabled)
|
if (impl->props.filter_graph_disabled)
|
||||||
return -EPERM;
|
return -EPERM;
|
||||||
|
|
@ -1078,7 +1078,7 @@ static int load_filter_graph(struct impl *impl, const char *graph, int order)
|
||||||
/* deactivate an existing filter of the same order */
|
/* deactivate an existing filter of the same order */
|
||||||
if (pending->active) {
|
if (pending->active) {
|
||||||
if (pending->order == order)
|
if (pending->order == order)
|
||||||
pending->active = false;
|
old_active = pending;
|
||||||
else
|
else
|
||||||
n_graph++;
|
n_graph++;
|
||||||
}
|
}
|
||||||
|
|
@ -1119,6 +1119,8 @@ static int load_filter_graph(struct impl *impl, const char *graph, int order)
|
||||||
spa_log_info(impl->log, "removing filter-graph order:%d active:%d",
|
spa_log_info(impl->log, "removing filter-graph order:%d active:%d",
|
||||||
order, n_graph);
|
order, n_graph);
|
||||||
}
|
}
|
||||||
|
if (old_active)
|
||||||
|
old_active->active = false;
|
||||||
|
|
||||||
/* we call this here on the pending_graph so that the n_input/n_output is updated
|
/* we call this here on the pending_graph so that the n_input/n_output is updated
|
||||||
* before we switch */
|
* before we switch */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue