OSDN Git Service

Make avfilter_graph_parse() not free the input graph
authorStefano Sabatini <stefano.sabatini-lala@poste.it>
Tue, 1 Feb 2011 20:52:07 +0000 (21:52 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 6 Feb 2011 19:31:42 +0000 (20:31 +0100)
Make avfilter_graph_parse() only release the internal structures
allocated during the parsing, and leave to free the graph itself to
the calling code.

This approach looks cleaner, as the graph is not allocated by the
function.

Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit e8e5dde779fca80d86e00baea26d1baca333f4c0)

libavfilter/graphparser.c

index 7151e4f..47179e5 100644 (file)
@@ -393,7 +393,9 @@ int avfilter_graph_parse(AVFilterGraph *graph, const char *filters,
     return 0;
 
  fail:
-    avfilter_graph_free(graph);
+    for (; graph->filter_count > 0; graph->filter_count--)
+        avfilter_free(graph->filters[graph->filter_count - 1]);
+    av_freep(&graph->filters);
     free_inout(open_inputs);
     free_inout(open_outputs);
     free_inout(curr_inputs);