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 #if FF_API_GRAPH_AVCLASS
00030 const AVClass *av_class;
00031 #endif
00032 unsigned filter_count;
00033 AVFilterContext **filters;
00034
00035 char *scale_sws_opts;
00036
00044 AVFilterLink **sink_links;
00045 int sink_links_count;
00046
00047 unsigned disable_auto_convert;
00048 } AVFilterGraph;
00049
00053 AVFilterGraph *avfilter_graph_alloc(void);
00054
00061 AVFilterContext *avfilter_graph_get_filter(AVFilterGraph *graph, char *name);
00062
00069 int avfilter_graph_add_filter(AVFilterGraph *graphctx, AVFilterContext *filter);
00070
00084 int avfilter_graph_create_filter(AVFilterContext **filt_ctx, AVFilter *filt,
00085 const char *name, const char *args, void *opaque,
00086 AVFilterGraph *graph_ctx);
00087
00096 void avfilter_graph_set_auto_convert(AVFilterGraph *graph, unsigned flags);
00097
00098 enum {
00099 AVFILTER_AUTO_CONVERT_ALL = 0,
00100 AVFILTER_AUTO_CONVERT_NONE = -1,
00101 };
00102
00110 int avfilter_graph_config(AVFilterGraph *graphctx, void *log_ctx);
00111
00116 void avfilter_graph_free(AVFilterGraph **graph);
00117
00127 typedef struct AVFilterInOut {
00129 char *name;
00130
00132 AVFilterContext *filter_ctx;
00133
00135 int pad_idx;
00136
00138 struct AVFilterInOut *next;
00139 } AVFilterInOut;
00140
00146 AVFilterInOut *avfilter_inout_alloc(void);
00147
00152 void avfilter_inout_free(AVFilterInOut **inout);
00153
00167 int avfilter_graph_parse(AVFilterGraph *graph, const char *filters,
00168 AVFilterInOut **inputs, AVFilterInOut **outputs,
00169 void *log_ctx);
00170
00201 int avfilter_graph_parse2(AVFilterGraph *graph, const char *filters,
00202 AVFilterInOut **inputs,
00203 AVFilterInOut **outputs);
00204
00205
00221 int avfilter_graph_send_command(AVFilterGraph *graph, const char *target, const char *cmd, const char *arg, char *res, int res_len, int flags);
00222
00238 int avfilter_graph_queue_command(AVFilterGraph *graph, const char *target, const char *cmd, const char *arg, int flags, double ts);
00239
00240
00249 char *avfilter_graph_dump(AVFilterGraph *graph, const char *options);
00250
00263 int avfilter_graph_request_oldest(AVFilterGraph *graph);
00264
00265 #endif