From 8c685374460954701edc876cfb31329a7904dceb Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 10 Jun 2025 10:34:01 +0200 Subject: [PATCH] filter-graph: clean up descriptor memory --- spa/plugins/filter-graph/ffmpeg_plugin.c | 5 +++++ spa/plugins/filter-graph/lv2_plugin.c | 3 +++ 2 files changed, 8 insertions(+) diff --git a/spa/plugins/filter-graph/ffmpeg_plugin.c b/spa/plugins/filter-graph/ffmpeg_plugin.c index fb02e00c9..ee2b81f4b 100644 --- a/spa/plugins/filter-graph/ffmpeg_plugin.c +++ b/spa/plugins/filter-graph/ffmpeg_plugin.c @@ -179,7 +179,12 @@ static void ffmpeg_cleanup(void *instance) static void ffmpeg_free(const struct spa_fga_descriptor *desc) { struct descriptor *d = (struct descriptor*)desc; + uint32_t i; avfilter_graph_free(&d->filter_graph); + for (i = 0; i < d->desc.n_ports; i++) + free((void*)d->desc.ports[i].name); + free((char*)d->desc.name); + free(d->desc.ports); free(d); } diff --git a/spa/plugins/filter-graph/lv2_plugin.c b/spa/plugins/filter-graph/lv2_plugin.c index 7628d7650..3928b236c 100644 --- a/spa/plugins/filter-graph/lv2_plugin.c +++ b/spa/plugins/filter-graph/lv2_plugin.c @@ -486,6 +486,9 @@ static void lv2_run(void *instance, unsigned long SampleCount) static void lv2_free(const struct spa_fga_descriptor *desc) { struct descriptor *d = (struct descriptor*)desc; + uint32_t i; + for (i = 0; i < d->desc.n_ports; i++) + free((void*)d->desc.ports[i].name); free((char*)d->desc.name); free(d->desc.ports); free(d);