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);