libavfilter/avfiltergraph.h
Go to the documentation of this file.
00001 /*
00002  * Filter graphs
00003  * copyright (c) 2007 Bobby Bingham
00004  *
00005  * This file is part of Libav.
00006  *
00007  * Libav is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU Lesser General Public
00009  * License as published by the Free Software Foundation; either
00010  * version 2.1 of the License, or (at your option) any later version.
00011  *
00012  * Libav is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015  * Lesser General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU Lesser General Public
00018  * License along with Libav; if not, write to the Free Software
00019  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
00020  */
00021 
00022 #ifndef AVFILTER_AVFILTERGRAPH_H
00023 #define AVFILTER_AVFILTERGRAPH_H
00024 
00025 #include "avfilter.h"
00026 
00027 typedef struct AVFilterGraph {
00028     unsigned filter_count;
00029     AVFilterContext **filters;
00030 
00031     char *scale_sws_opts; 
00032 } AVFilterGraph;
00033 
00037 AVFilterGraph *avfilter_graph_alloc(void);
00038 
00045 AVFilterContext *avfilter_graph_get_filter(AVFilterGraph *graph, char *name);
00046 
00053 int avfilter_graph_add_filter(AVFilterGraph *graphctx, AVFilterContext *filter);
00054 
00068 int avfilter_graph_create_filter(AVFilterContext **filt_ctx, AVFilter *filt,
00069                                  const char *name, const char *args, void *opaque,
00070                                  AVFilterGraph *graph_ctx);
00071 
00079 int avfilter_graph_config(AVFilterGraph *graphctx, void *log_ctx);
00080 
00085 void avfilter_graph_free(AVFilterGraph **graph);
00086 
00096 typedef struct AVFilterInOut {
00098     char *name;
00099 
00101     AVFilterContext *filter_ctx;
00102 
00104     int pad_idx;
00105 
00107     struct AVFilterInOut *next;
00108 } AVFilterInOut;
00109 
00119 int avfilter_graph_parse(AVFilterGraph *graph, const char *filters,
00120                          AVFilterInOut *inputs, AVFilterInOut *outputs,
00121                          void *log_ctx);
00122 
00123 #endif /* AVFILTER_AVFILTERGRAPH_H */