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