return av_mallocz(sizeof(AVFilterGraph));
}
-void avfilter_graph_free(AVFilterGraph *graph)
+void avfilter_graph_free(AVFilterGraph **graph)
{
- if (!graph)
+ if (!*graph)
return;
- for (; graph->filter_count > 0; graph->filter_count --)
- avfilter_free(graph->filters[graph->filter_count - 1]);
- av_freep(&graph->scale_sws_opts);
- av_freep(&graph->filters);
+ for (; (*graph)->filter_count > 0; (*graph)->filter_count--)
+ avfilter_free((*graph)->filters[(*graph)->filter_count - 1]);
+ av_freep(&(*graph)->scale_sws_opts);
+ av_freep(&(*graph)->filters);
+ av_freep(graph);
}
int avfilter_graph_add_filter(AVFilterGraph *graph, AVFilterContext *filter)
int avfilter_graph_config(AVFilterGraph *graphctx, AVClass *log_ctx);
/**
- * Free a graph and destroy its links, graph may be NULL.
+ * Free a graph, destroy its links, and set *graph to NULL.
+ * If *graph is NULL, do nothing.
*/
-void avfilter_graph_free(AVFilterGraph *graph);
+void avfilter_graph_free(AVFilterGraph **graph);
/**
* A linked-list of the inputs/outputs of the filter chain.