diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c
index 059e6a36765ea91a3ca09f36fd3aa80a3ab238c9..a2dc93fafcbba141160a0a3884ffdd6de7c04eb5 100644
--- a/libavfilter/avfiltergraph.c
+++ b/libavfilter/avfiltergraph.c
@@ -84,7 +84,7 @@ static const AVClass filter_parser_class = {
 
 static const AVClass *log_ctx = &filter_parser_class;
 
-static void uninit(AVFilterGraph *graph)
+void avfilter_destroy_graph(AVFilterGraph *graph)
 {
     for(; graph->filter_count > 0; graph->filter_count --)
         avfilter_destroy(graph->filters[graph->filter_count - 1]);
@@ -306,7 +306,7 @@ static int load_from_desc(AVFilterGraph *graph, AVFilterGraphDesc *desc, AVFilte
     return 0;
 
 fail:
-    uninit(graph);
+    avfilter_destroy_graph(graph);
     return -1;
 }
 
diff --git a/libavfilter/avfiltergraph.h b/libavfilter/avfiltergraph.h
index ec1cf16b58fb5874ed9a88c5d8ed37b382d0e754..f856fbd6b6a99fcfc96db847eccee1dc9cd25918 100644
--- a/libavfilter/avfiltergraph.h
+++ b/libavfilter/avfiltergraph.h
@@ -58,4 +58,9 @@ int avfilter_graph_config_formats(AVFilterGraph *graphctx);
  */
 int avfilter_graph_config_links(AVFilterGraph *graphctx);
 
+/**
+ * Free a graph and destroy its links.
+ */
+void avfilter_destroy_graph(AVFilterGraph *graph);
+
 #endif  /* FFMPEG_AVFILTERGRAPH_H */