diff options
author | Vitor Sessak <vitor1001@gmail.com> | 2008-04-04 20:09:47 +0000 |
---|---|---|
committer | Vitor Sessak <vitor1001@gmail.com> | 2008-04-04 20:09:47 +0000 |
commit | 4e4a3e2314b34a0d55167626c1e737cdaa66126b (patch) | |
tree | 274ffc25d46383df9b93000f1c2c3787c3774b93 /libavfilter/avfiltergraph.c | |
parent | 51bf654d796cb59834f050adcccf1ba6bba2abe7 (diff) | |
download | ffmpeg-4e4a3e2314b34a0d55167626c1e737cdaa66126b.tar.gz |
Handle av_realloc() failure
Commited in SoC by Vitor Sessak on 2008-04-04 15:35:38
Originally committed as revision 12754 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavfilter/avfiltergraph.c')
-rw-r--r-- | libavfilter/avfiltergraph.c | 12 |
1 files changed, 10 insertions, 2 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)|| |