00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 #ifndef AVFILTER_AVFILTERGRAPH_H
00023 #define AVFILTER_AVFILTERGRAPH_H
00024 
00025 #include "avfilter.h"
00026 #include "libavutil/log.h"
00027 
00028 typedef struct AVFilterGraph {
00029     const AVClass *av_class;
00030     unsigned filter_count;
00031     AVFilterContext **filters;
00032 
00033     char *scale_sws_opts; 
00034 
00042     AVFilterLink **sink_links;
00043     int sink_links_count;
00044 
00045     unsigned disable_auto_convert;
00046 } AVFilterGraph;
00047 
00051 AVFilterGraph *avfilter_graph_alloc(void);
00052 
00059 AVFilterContext *avfilter_graph_get_filter(AVFilterGraph *graph, char *name);
00060 
00067 int avfilter_graph_add_filter(AVFilterGraph *graphctx, AVFilterContext *filter);
00068 
00082 int avfilter_graph_create_filter(AVFilterContext **filt_ctx, AVFilter *filt,
00083                                  const char *name, const char *args, void *opaque,
00084                                  AVFilterGraph *graph_ctx);
00085 
00094 void avfilter_graph_set_auto_convert(AVFilterGraph *graph, unsigned flags);
00095 
00096 enum {
00097     AVFILTER_AUTO_CONVERT_ALL  =  0, 
00098     AVFILTER_AUTO_CONVERT_NONE = -1, 
00099 };
00100 
00108 int avfilter_graph_config(AVFilterGraph *graphctx, void *log_ctx);
00109 
00114 void avfilter_graph_free(AVFilterGraph **graph);
00115 
00125 typedef struct AVFilterInOut {
00127     char *name;
00128 
00130     AVFilterContext *filter_ctx;
00131 
00133     int pad_idx;
00134 
00136     struct AVFilterInOut *next;
00137 } AVFilterInOut;
00138 
00144 AVFilterInOut *avfilter_inout_alloc(void);
00145 
00150 void avfilter_inout_free(AVFilterInOut **inout);
00151 
00165 int avfilter_graph_parse(AVFilterGraph *graph, const char *filters,
00166                          AVFilterInOut **inputs, AVFilterInOut **outputs,
00167                          void *log_ctx);
00168 
00199 int avfilter_graph_parse2(AVFilterGraph *graph, const char *filters,
00200                           AVFilterInOut **inputs,
00201                           AVFilterInOut **outputs);
00202 
00203 
00219 int avfilter_graph_send_command(AVFilterGraph *graph, const char *target, const char *cmd, const char *arg, char *res, int res_len, int flags);
00220 
00236 int avfilter_graph_queue_command(AVFilterGraph *graph, const char *target, const char *cmd, const char *arg, int flags, double ts);
00237 
00238 
00247 char *avfilter_graph_dump(AVFilterGraph *graph, const char *options);
00248 
00267 int avfilter_graph_request_oldest(AVFilterGraph *graph);
00268 
00269 #endif