avfilter/avfiltergraph: Simplify adding filter to graph

By reallocating the array of pointers to the AVFilterContexts
before allocating the new AVFilterContext one can avoid freeing
the new AVFilterContext in case the array could not be reallocated.

Also switch to av_realloc_array() while just at it.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
pull/369/head
Andreas Rheinhardt 3 years ago
parent 68815d6791
commit 22c4f33991
  1. 12
      libavfilter/avfiltergraph.c

@ -183,17 +183,15 @@ AVFilterContext *avfilter_graph_alloc_filter(AVFilterGraph *graph,
}
}
s = ff_filter_alloc(filter, name);
if (!s)
filters = av_realloc_array(graph->filters, graph->nb_filters + 1, sizeof(*filters));
if (!filters)
return NULL;
graph->filters = filters;
filters = av_realloc(graph->filters, sizeof(*filters) * (graph->nb_filters + 1));
if (!filters) {
avfilter_free(s);
s = ff_filter_alloc(filter, name);
if (!s)
return NULL;
}
graph->filters = filters;
graph->filters[graph->nb_filters++] = s;
s->graph = graph;

Loading…
Cancel
Save