From eccb6fb7ceee92a8f7456005246c38c66aac8550 Mon Sep 17 00:00:00 2001 From: Vitor Sessak Date: Fri, 4 Apr 2008 20:02:10 +0000 Subject: [PATCH] Split filter graphs out into their own source & header files. Commited in SoC by Bobby Bingham on 2007-07-14 21:20:21 Originally committed as revision 12686 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavfilter/avfiltergraph.c | 51 +++++++++++++++++++++++++++++++++++++ libavfilter/avfiltergraph.h | 47 ++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 libavfilter/avfiltergraph.c create mode 100644 libavfilter/avfiltergraph.h diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c new file mode 100644 index 0000000000..7b9d96379a --- /dev/null +++ b/libavfilter/avfiltergraph.c @@ -0,0 +1,51 @@ +/* + * Filter graphs + * copyright (c) 2007 Bobby Bingham + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "avfilter.h" +#include "avfiltergraph.h" + +struct AVFilterGraph { + unsigned filter_count; + AVFilterContext **filters; +}; + +AVFilterGraph *avfilter_create_graph(void) +{ + return av_mallocz(sizeof(AVFilterGraph)); +} + +void avfilter_destroy_graph(AVFilterGraph *graph) +{ + unsigned i; + + for(i = 0; i < graph->filter_count; i ++) + avfilter_destroy(graph->filters[i]); + av_free(graph->filters); + av_free(graph); +} + +void avfilter_graph_add_filter(AVFilterGraph *graph, AVFilterContext *filter) +{ + graph->filters = av_realloc(graph->filters, + sizeof(AVFilterContext*) * ++graph->filter_count); + graph->filters[graph->filter_count - 1] = filter; +} + diff --git a/libavfilter/avfiltergraph.h b/libavfilter/avfiltergraph.h new file mode 100644 index 0000000000..0bfb683d5e --- /dev/null +++ b/libavfilter/avfiltergraph.h @@ -0,0 +1,47 @@ +/* + * Filter graphs + * copyright (c) 2007 Bobby Bingham + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef FFMPEG_AVFILTER_GRAPH_H +#define FFMPEG_AVFILTER_GRAPH_H + +#include "avfilter.h" + +typedef struct AVFilterGraph AVFilterGraph; + +/** + * Create a new filter graph + */ +AVFilterGraph *avfilter_create_graph(void); + +/** + * Destroy a filter graph, and any filters in it. + * @param graph The filter graph to destroy + */ +void avfilter_destroy_graph(AVFilterGraph *graph); + +/** + * Add an existing filter instance to a filter graph. + * @param graph The filter graph + * @param filter The filter to be added + */ +void avfilter_graph_add_filter(AVFilterGraph *graph, AVFilterContext *filter); + +#endif /* FFMPEG_AVFILTER_H */