Merge commit 'd79bd6040599ef017dc45d5997fcc959ab1f71f6'
* commit 'd79bd6040599ef017dc45d5997fcc959ab1f71f6': lavfi: factorize freeing a link Conflicts: libavfilter/avfilter.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
fb8dde37e4
@ -622,10 +622,28 @@ int avfilter_open(AVFilterContext **filter_ctx, AVFilter *filter, const char *in
|
||||
}
|
||||
#endif
|
||||
|
||||
static void free_link(AVFilterLink *link)
|
||||
{
|
||||
if (!link)
|
||||
return;
|
||||
|
||||
if (link->src)
|
||||
link->src->outputs[link->srcpad - link->src->output_pads] = NULL;
|
||||
if (link->dst)
|
||||
link->dst->inputs[link->dstpad - link->dst->input_pads] = NULL;
|
||||
|
||||
ff_formats_unref(&link->in_formats);
|
||||
ff_formats_unref(&link->out_formats);
|
||||
ff_formats_unref(&link->in_samplerates);
|
||||
ff_formats_unref(&link->out_samplerates);
|
||||
ff_channel_layouts_unref(&link->in_channel_layouts);
|
||||
ff_channel_layouts_unref(&link->out_channel_layouts);
|
||||
avfilter_link_free(&link);
|
||||
}
|
||||
|
||||
void avfilter_free(AVFilterContext *filter)
|
||||
{
|
||||
int i;
|
||||
AVFilterLink *link;
|
||||
|
||||
if (!filter)
|
||||
return;
|
||||
@ -637,30 +655,10 @@ void avfilter_free(AVFilterContext *filter)
|
||||
filter->filter->uninit(filter);
|
||||
|
||||
for (i = 0; i < filter->nb_inputs; i++) {
|
||||
if ((link = filter->inputs[i])) {
|
||||
if (link->src)
|
||||
link->src->outputs[link->srcpad - link->src->output_pads] = NULL;
|
||||
ff_formats_unref(&link->in_formats);
|
||||
ff_formats_unref(&link->out_formats);
|
||||
ff_formats_unref(&link->in_samplerates);
|
||||
ff_formats_unref(&link->out_samplerates);
|
||||
ff_channel_layouts_unref(&link->in_channel_layouts);
|
||||
ff_channel_layouts_unref(&link->out_channel_layouts);
|
||||
}
|
||||
avfilter_link_free(&link);
|
||||
free_link(filter->inputs[i]);
|
||||
}
|
||||
for (i = 0; i < filter->nb_outputs; i++) {
|
||||
if ((link = filter->outputs[i])) {
|
||||
if (link->dst)
|
||||
link->dst->inputs[link->dstpad - link->dst->input_pads] = NULL;
|
||||
ff_formats_unref(&link->in_formats);
|
||||
ff_formats_unref(&link->out_formats);
|
||||
ff_formats_unref(&link->in_samplerates);
|
||||
ff_formats_unref(&link->out_samplerates);
|
||||
ff_channel_layouts_unref(&link->in_channel_layouts);
|
||||
ff_channel_layouts_unref(&link->out_channel_layouts);
|
||||
}
|
||||
avfilter_link_free(&link);
|
||||
free_link(filter->outputs[i]);
|
||||
}
|
||||
|
||||
if (filter->filter->priv_class)
|
||||
|
Loading…
Reference in New Issue
Block a user