diff options
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/avfiltergraph.c | 12 | ||||
-rw-r--r-- | libavfilter/avfiltergraph.h | 2 |
2 files changed, 11 insertions, 3 deletions
diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c index 7e040a4f4f..ccb275c6f9 100644 --- a/libavfilter/avfiltergraph.c +++ b/libavfilter/avfiltergraph.c @@ -33,11 +33,17 @@ void avfilter_destroy_graph(AVFilterGraph *graph) av_freep(&graph->filters); } -void avfilter_graph_add_filter(AVFilterGraph *graph, AVFilterContext *filter) +int avfilter_graph_add_filter(AVFilterGraph *graph, AVFilterContext *filter) { graph->filters = av_realloc(graph->filters, sizeof(AVFilterContext*) * ++graph->filter_count); + + if (!graph->filters) + return -1; + graph->filters[graph->filter_count - 1] = filter; + + return 0; } AVFilterContext *avfilter_graph_get_filter(AVFilterGraph *graph, char *name) @@ -87,7 +93,9 @@ static int query_formats(AVFilterGraph *graph) return -1; } - avfilter_graph_add_filter(graph, scale); + if (avfilter_graph_add_filter(graph, scale) < 0) + return -1; + scale->filter->query_formats(scale); if(!avfilter_merge_formats(scale-> inputs[0]->in_formats, scale-> inputs[0]->out_formats)|| diff --git a/libavfilter/avfiltergraph.h b/libavfilter/avfiltergraph.h index e529af9ff7..dbfad4fcc7 100644 --- a/libavfilter/avfiltergraph.h +++ b/libavfilter/avfiltergraph.h @@ -39,7 +39,7 @@ AVFilterContext *avfilter_graph_get_filter(AVFilterGraph *graph, char *name); * @param graph The filter graph * @param filter The filter to be added */ -void avfilter_graph_add_filter(AVFilterGraph *graphctx, AVFilterContext *filter); +int avfilter_graph_add_filter(AVFilterGraph *graphctx, AVFilterContext *filter); /** * Configure the formats of all the links in the graph. |