Browse code

Merge commit '38f0c0781a6e099f11c0acec07f9b8be742190c4'

* commit '38f0c0781a6e099f11c0acec07f9b8be742190c4':
lavfi: merge avfiltergraph.h into avfilter.h

Conflicts:
doc/APIchanges
ffmpeg_filter.c
libavfilter/avfilter.h
libavfilter/avfiltergraph.h
libavfilter/version.h
tools/graph2dot.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>

Michael Niedermayer authored on 2013/04/12 06:40:41
Showing 13 changed files
... ...
@@ -156,6 +156,10 @@ API changes, most recent first:
156 156
 2012-03-26 - a67d9cf - lavfi 2.66.100
157 157
   Add avfilter_fill_frame_from_{audio_,}buffer_ref() functions.
158 158
 
159
+2013-xx-xx - lavfi 3.8.0
160
+  Move all content from avfiltergraph.h to avfilter.h. Deprecate
161
+  avfilterhraph.h, user applications should include just avfilter.h
162
+
159 163
 2013-xx-xx - lavfi 3.7.0 - avfilter.h
160 164
   Add AVFilter.priv_class for exporting filter options through the AVOptions API
161 165
   in the similar way private options work in lavc and lavf.
... ...
@@ -117,7 +117,7 @@ A filtergraph can be represented using a textual representation, which is
117 117
 recognized by the @option{-filter}/@option{-vf} and @option{-filter_complex}
118 118
 options in @command{ffmpeg} and @option{-vf} in @command{ffplay}, and by the
119 119
 @code{avfilter_graph_parse()}/@code{avfilter_graph_parse2()} function defined in
120
-@file{libavfilter/avfiltergraph.h}.
120
+@file{libavfilter/avfilter.h}.
121 121
 
122 122
 A filterchain consists of a sequence of connected filters, each one
123 123
 connected to the previous one in the sequence. A filterchain is
... ...
@@ -64,7 +64,6 @@
64 64
 
65 65
 # include "libavfilter/avcodec.h"
66 66
 # include "libavfilter/avfilter.h"
67
-# include "libavfilter/avfiltergraph.h"
68 67
 # include "libavfilter/buffersrc.h"
69 68
 # include "libavfilter/buffersink.h"
70 69
 
... ...
@@ -37,7 +37,6 @@
37 37
 #include "libavcodec/avcodec.h"
38 38
 
39 39
 #include "libavfilter/avfilter.h"
40
-#include "libavfilter/avfiltergraph.h"
41 40
 
42 41
 #include "libavutil/avutil.h"
43 42
 #include "libavutil/dict.h"
... ...
@@ -21,7 +21,6 @@
21 21
 #include "ffmpeg.h"
22 22
 
23 23
 #include "libavfilter/avfilter.h"
24
-#include "libavfilter/avfiltergraph.h"
25 24
 #include "libavfilter/buffersink.h"
26 25
 
27 26
 #include "libavresample/avresample.h"
... ...
@@ -28,7 +28,6 @@
28 28
 #include "libavcodec/avcodec.h"
29 29
 
30 30
 #include "libavfilter/avfilter.h"
31
-#include "libavfilter/avfiltergraph.h"
32 31
 
33 32
 #include "libavutil/avassert.h"
34 33
 #include "libavutil/avstring.h"
... ...
@@ -48,7 +48,6 @@
48 48
 #if CONFIG_AVFILTER
49 49
 # include "libavfilter/avcodec.h"
50 50
 # include "libavfilter/avfilter.h"
51
-# include "libavfilter/avfiltergraph.h"
52 51
 # include "libavfilter/buffersink.h"
53 52
 # include "libavfilter/buffersrc.h"
54 53
 #endif
... ...
@@ -912,6 +912,257 @@ int avfilter_copy_buf_props(AVFrame *dst, const AVFilterBufferRef *src);
912 912
  */
913 913
 const AVClass *avfilter_get_class(void);
914 914
 
915
+typedef struct AVFilterGraph {
916
+    const AVClass *av_class;
917
+#if FF_API_FOO_COUNT
918
+    attribute_deprecated
919
+    unsigned filter_count_unused;
920
+#endif
921
+    AVFilterContext **filters;
922
+#if !FF_API_FOO_COUNT
923
+    unsigned nb_filters;
924
+#endif
925
+
926
+    char *scale_sws_opts; ///< sws options to use for the auto-inserted scale filters
927
+    char *resample_lavr_opts;   ///< libavresample options to use for the auto-inserted resample filters
928
+#if FF_API_FOO_COUNT
929
+    unsigned nb_filters;
930
+#endif
931
+    char *aresample_swr_opts; ///< swr options to use for the auto-inserted aresample filters, Access ONLY through AVOptions
932
+
933
+    /**
934
+     * Private fields
935
+     *
936
+     * The following fields are for internal use only.
937
+     * Their type, offset, number and semantic can change without notice.
938
+     */
939
+
940
+    AVFilterLink **sink_links;
941
+    int sink_links_count;
942
+
943
+    unsigned disable_auto_convert;
944
+} AVFilterGraph;
945
+
946
+/**
947
+ * Allocate a filter graph.
948
+ */
949
+AVFilterGraph *avfilter_graph_alloc(void);
950
+
951
+/**
952
+ * Get a filter instance with name name from graph.
953
+ *
954
+ * @return the pointer to the found filter instance or NULL if it
955
+ * cannot be found.
956
+ */
957
+AVFilterContext *avfilter_graph_get_filter(AVFilterGraph *graph, char *name);
958
+
959
+/**
960
+ * Add an existing filter instance to a filter graph.
961
+ *
962
+ * @param graphctx  the filter graph
963
+ * @param filter the filter to be added
964
+ */
965
+int avfilter_graph_add_filter(AVFilterGraph *graphctx, AVFilterContext *filter);
966
+
967
+/**
968
+ * Create and add a filter instance into an existing graph.
969
+ * The filter instance is created from the filter filt and inited
970
+ * with the parameters args and opaque.
971
+ *
972
+ * In case of success put in *filt_ctx the pointer to the created
973
+ * filter instance, otherwise set *filt_ctx to NULL.
974
+ *
975
+ * @param name the instance name to give to the created filter instance
976
+ * @param graph_ctx the filter graph
977
+ * @return a negative AVERROR error code in case of failure, a non
978
+ * negative value otherwise
979
+ */
980
+int avfilter_graph_create_filter(AVFilterContext **filt_ctx, AVFilter *filt,
981
+                                 const char *name, const char *args, void *opaque,
982
+                                 AVFilterGraph *graph_ctx);
983
+
984
+/**
985
+ * Enable or disable automatic format conversion inside the graph.
986
+ *
987
+ * Note that format conversion can still happen inside explicitly inserted
988
+ * scale and aresample filters.
989
+ *
990
+ * @param flags  any of the AVFILTER_AUTO_CONVERT_* constants
991
+ */
992
+void avfilter_graph_set_auto_convert(AVFilterGraph *graph, unsigned flags);
993
+
994
+enum {
995
+    AVFILTER_AUTO_CONVERT_ALL  =  0, /**< all automatic conversions enabled */
996
+    AVFILTER_AUTO_CONVERT_NONE = -1, /**< all automatic conversions disabled */
997
+};
998
+
999
+/**
1000
+ * Check validity and configure all the links and formats in the graph.
1001
+ *
1002
+ * @param graphctx the filter graph
1003
+ * @param log_ctx context used for logging
1004
+ * @return 0 in case of success, a negative AVERROR code otherwise
1005
+ */
1006
+int avfilter_graph_config(AVFilterGraph *graphctx, void *log_ctx);
1007
+
1008
+/**
1009
+ * Free a graph, destroy its links, and set *graph to NULL.
1010
+ * If *graph is NULL, do nothing.
1011
+ */
1012
+void avfilter_graph_free(AVFilterGraph **graph);
1013
+
1014
+/**
1015
+ * A linked-list of the inputs/outputs of the filter chain.
1016
+ *
1017
+ * This is mainly useful for avfilter_graph_parse() / avfilter_graph_parse2(),
1018
+ * where it is used to communicate open (unlinked) inputs and outputs from and
1019
+ * to the caller.
1020
+ * This struct specifies, per each not connected pad contained in the graph, the
1021
+ * filter context and the pad index required for establishing a link.
1022
+ */
1023
+typedef struct AVFilterInOut {
1024
+    /** unique name for this input/output in the list */
1025
+    char *name;
1026
+
1027
+    /** filter context associated to this input/output */
1028
+    AVFilterContext *filter_ctx;
1029
+
1030
+    /** index of the filt_ctx pad to use for linking */
1031
+    int pad_idx;
1032
+
1033
+    /** next input/input in the list, NULL if this is the last */
1034
+    struct AVFilterInOut *next;
1035
+} AVFilterInOut;
1036
+
1037
+/**
1038
+ * Allocate a single AVFilterInOut entry.
1039
+ * Must be freed with avfilter_inout_free().
1040
+ * @return allocated AVFilterInOut on success, NULL on failure.
1041
+ */
1042
+AVFilterInOut *avfilter_inout_alloc(void);
1043
+
1044
+/**
1045
+ * Free the supplied list of AVFilterInOut and set *inout to NULL.
1046
+ * If *inout is NULL, do nothing.
1047
+ */
1048
+void avfilter_inout_free(AVFilterInOut **inout);
1049
+
1050
+/**
1051
+ * Add a graph described by a string to a graph.
1052
+ *
1053
+ * @param graph   the filter graph where to link the parsed graph context
1054
+ * @param filters string to be parsed
1055
+ * @param inputs  pointer to a linked list to the inputs of the graph, may be NULL.
1056
+ *                If non-NULL, *inputs is updated to contain the list of open inputs
1057
+ *                after the parsing, should be freed with avfilter_inout_free().
1058
+ * @param outputs pointer to a linked list to the outputs of the graph, may be NULL.
1059
+ *                If non-NULL, *outputs is updated to contain the list of open outputs
1060
+ *                after the parsing, should be freed with avfilter_inout_free().
1061
+ * @return non negative on success, a negative AVERROR code on error
1062
+ */
1063
+int avfilter_graph_parse(AVFilterGraph *graph, const char *filters,
1064
+                         AVFilterInOut **inputs, AVFilterInOut **outputs,
1065
+                         void *log_ctx);
1066
+
1067
+/**
1068
+ * Add a graph described by a string to a graph.
1069
+ *
1070
+ * @param[in]  graph   the filter graph where to link the parsed graph context
1071
+ * @param[in]  filters string to be parsed
1072
+ * @param[out] inputs  a linked list of all free (unlinked) inputs of the
1073
+ *                     parsed graph will be returned here. It is to be freed
1074
+ *                     by the caller using avfilter_inout_free().
1075
+ * @param[out] outputs a linked list of all free (unlinked) outputs of the
1076
+ *                     parsed graph will be returned here. It is to be freed by the
1077
+ *                     caller using avfilter_inout_free().
1078
+ * @return zero on success, a negative AVERROR code on error
1079
+ *
1080
+ * @note the difference between avfilter_graph_parse2() and
1081
+ * avfilter_graph_parse() is that in avfilter_graph_parse(), the caller provides
1082
+ * the lists of inputs and outputs, which therefore must be known before calling
1083
+ * the function. On the other hand, avfilter_graph_parse2() \em returns the
1084
+ * inputs and outputs that are left unlinked after parsing the graph and the
1085
+ * caller then deals with them. Another difference is that in
1086
+ * avfilter_graph_parse(), the inputs parameter describes inputs of the
1087
+ * <em>already existing</em> part of the graph; i.e. from the point of view of
1088
+ * the newly created part, they are outputs. Similarly the outputs parameter
1089
+ * describes outputs of the already existing filters, which are provided as
1090
+ * inputs to the parsed filters.
1091
+ * avfilter_graph_parse2() takes the opposite approach -- it makes no reference
1092
+ * whatsoever to already existing parts of the graph and the inputs parameter
1093
+ * will on return contain inputs of the newly parsed part of the graph.
1094
+ * Analogously the outputs parameter will contain outputs of the newly created
1095
+ * filters.
1096
+ */
1097
+int avfilter_graph_parse2(AVFilterGraph *graph, const char *filters,
1098
+                          AVFilterInOut **inputs,
1099
+                          AVFilterInOut **outputs);
1100
+
1101
+/**
1102
+ * Send a command to one or more filter instances.
1103
+ *
1104
+ * @param graph  the filter graph
1105
+ * @param target the filter(s) to which the command should be sent
1106
+ *               "all" sends to all filters
1107
+ *               otherwise it can be a filter or filter instance name
1108
+ *               which will send the command to all matching filters.
1109
+ * @param cmd    the command to sent, for handling simplicity all commands must be alphanumeric only
1110
+ * @param arg    the argument for the command
1111
+ * @param res    a buffer with size res_size where the filter(s) can return a response.
1112
+ *
1113
+ * @returns >=0 on success otherwise an error code.
1114
+ *              AVERROR(ENOSYS) on unsupported commands
1115
+ */
1116
+int avfilter_graph_send_command(AVFilterGraph *graph, const char *target, const char *cmd, const char *arg, char *res, int res_len, int flags);
1117
+
1118
+/**
1119
+ * Queue a command for one or more filter instances.
1120
+ *
1121
+ * @param graph  the filter graph
1122
+ * @param target the filter(s) to which the command should be sent
1123
+ *               "all" sends to all filters
1124
+ *               otherwise it can be a filter or filter instance name
1125
+ *               which will send the command to all matching filters.
1126
+ * @param cmd    the command to sent, for handling simplicity all commands must be alphanummeric only
1127
+ * @param arg    the argument for the command
1128
+ * @param ts     time at which the command should be sent to the filter
1129
+ *
1130
+ * @note As this executes commands after this function returns, no return code
1131
+ *       from the filter is provided, also AVFILTER_CMD_FLAG_ONE is not supported.
1132
+ */
1133
+int avfilter_graph_queue_command(AVFilterGraph *graph, const char *target, const char *cmd, const char *arg, int flags, double ts);
1134
+
1135
+
1136
+/**
1137
+ * Dump a graph into a human-readable string representation.
1138
+ *
1139
+ * @param graph    the graph to dump
1140
+ * @param options  formatting options; currently ignored
1141
+ * @return  a string, or NULL in case of memory allocation failure;
1142
+ *          the string must be freed using av_free
1143
+ */
1144
+char *avfilter_graph_dump(AVFilterGraph *graph, const char *options);
1145
+
1146
+/**
1147
+ * Request a frame on the oldest sink link.
1148
+ *
1149
+ * If the request returns AVERROR_EOF, try the next.
1150
+ *
1151
+ * Note that this function is not meant to be the sole scheduling mechanism
1152
+ * of a filtergraph, only a convenience function to help drain a filtergraph
1153
+ * in a balanced way under normal circumstances.
1154
+ *
1155
+ * Also note that AVERROR_EOF does not mean that frames did not arrive on
1156
+ * some of the sinks during the process.
1157
+ * When there are multiple sink links, in case the requested link
1158
+ * returns an EOF, this may cause a filter to flush pending frames
1159
+ * which are sent to another sink link, although unrequested.
1160
+ *
1161
+ * @return  the return value of ff_request_frame(),
1162
+ *          or AVERROR_EOF if all links returned AVERROR_EOF
1163
+ */
1164
+int avfilter_graph_request_oldest(AVFilterGraph *graph);
1165
+
915 1166
 /**
916 1167
  * @}
917 1168
  */
... ...
@@ -30,7 +30,6 @@
30 30
 #include "libavutil/pixdesc.h"
31 31
 #include "libavcodec/avcodec.h" // avcodec_find_best_pix_fmt_of_2()
32 32
 #include "avfilter.h"
33
-#include "avfiltergraph.h"
34 33
 #include "formats.h"
35 34
 #include "internal.h"
36 35
 
... ...
@@ -25,256 +25,4 @@
25 25
 #include "avfilter.h"
26 26
 #include "libavutil/log.h"
27 27
 
28
-typedef struct AVFilterGraph {
29
-    const AVClass *av_class;
30
-#if FF_API_FOO_COUNT
31
-    attribute_deprecated
32
-    unsigned filter_count_unused;
33
-#endif
34
-    AVFilterContext **filters;
35
-#if !FF_API_FOO_COUNT
36
-    unsigned nb_filters;
37
-#endif
38
-
39
-    char *scale_sws_opts; ///< sws options to use for the auto-inserted scale filters
40
-    char *resample_lavr_opts;   ///< libavresample options to use for the auto-inserted resample filters
41
-#if FF_API_FOO_COUNT
42
-    unsigned nb_filters;
43
-#endif
44
-    char *aresample_swr_opts; ///< swr options to use for the auto-inserted aresample filters, Access ONLY through AVOptions
45
-
46
-    /**
47
-     * Private fields
48
-     *
49
-     * The following fields are for internal use only.
50
-     * Their type, offset, number and semantic can change without notice.
51
-     */
52
-
53
-    AVFilterLink **sink_links;
54
-    int sink_links_count;
55
-
56
-    unsigned disable_auto_convert;
57
-} AVFilterGraph;
58
-
59
-/**
60
- * Allocate a filter graph.
61
- */
62
-AVFilterGraph *avfilter_graph_alloc(void);
63
-
64
-/**
65
- * Get a filter instance with name name from graph.
66
- *
67
- * @return the pointer to the found filter instance or NULL if it
68
- * cannot be found.
69
- */
70
-AVFilterContext *avfilter_graph_get_filter(AVFilterGraph *graph, char *name);
71
-
72
-/**
73
- * Add an existing filter instance to a filter graph.
74
- *
75
- * @param graphctx  the filter graph
76
- * @param filter the filter to be added
77
- */
78
-int avfilter_graph_add_filter(AVFilterGraph *graphctx, AVFilterContext *filter);
79
-
80
-/**
81
- * Create and add a filter instance into an existing graph.
82
- * The filter instance is created from the filter filt and inited
83
- * with the parameters args and opaque.
84
- *
85
- * In case of success put in *filt_ctx the pointer to the created
86
- * filter instance, otherwise set *filt_ctx to NULL.
87
- *
88
- * @param name the instance name to give to the created filter instance
89
- * @param graph_ctx the filter graph
90
- * @return a negative AVERROR error code in case of failure, a non
91
- * negative value otherwise
92
- */
93
-int avfilter_graph_create_filter(AVFilterContext **filt_ctx, AVFilter *filt,
94
-                                 const char *name, const char *args, void *opaque,
95
-                                 AVFilterGraph *graph_ctx);
96
-
97
-/**
98
- * Enable or disable automatic format conversion inside the graph.
99
- *
100
- * Note that format conversion can still happen inside explicitly inserted
101
- * scale and aresample filters.
102
- *
103
- * @param flags  any of the AVFILTER_AUTO_CONVERT_* constants
104
- */
105
-void avfilter_graph_set_auto_convert(AVFilterGraph *graph, unsigned flags);
106
-
107
-enum {
108
-    AVFILTER_AUTO_CONVERT_ALL  =  0, /**< all automatic conversions enabled */
109
-    AVFILTER_AUTO_CONVERT_NONE = -1, /**< all automatic conversions disabled */
110
-};
111
-
112
-/**
113
- * Check validity and configure all the links and formats in the graph.
114
- *
115
- * @param graphctx the filter graph
116
- * @param log_ctx context used for logging
117
- * @return 0 in case of success, a negative AVERROR code otherwise
118
- */
119
-int avfilter_graph_config(AVFilterGraph *graphctx, void *log_ctx);
120
-
121
-/**
122
- * Free a graph, destroy its links, and set *graph to NULL.
123
- * If *graph is NULL, do nothing.
124
- */
125
-void avfilter_graph_free(AVFilterGraph **graph);
126
-
127
-/**
128
- * A linked-list of the inputs/outputs of the filter chain.
129
- *
130
- * This is mainly useful for avfilter_graph_parse() / avfilter_graph_parse2(),
131
- * where it is used to communicate open (unlinked) inputs and outputs from and
132
- * to the caller.
133
- * This struct specifies, per each not connected pad contained in the graph, the
134
- * filter context and the pad index required for establishing a link.
135
- */
136
-typedef struct AVFilterInOut {
137
-    /** unique name for this input/output in the list */
138
-    char *name;
139
-
140
-    /** filter context associated to this input/output */
141
-    AVFilterContext *filter_ctx;
142
-
143
-    /** index of the filt_ctx pad to use for linking */
144
-    int pad_idx;
145
-
146
-    /** next input/input in the list, NULL if this is the last */
147
-    struct AVFilterInOut *next;
148
-} AVFilterInOut;
149
-
150
-/**
151
- * Allocate a single AVFilterInOut entry.
152
- * Must be freed with avfilter_inout_free().
153
- * @return allocated AVFilterInOut on success, NULL on failure.
154
- */
155
-AVFilterInOut *avfilter_inout_alloc(void);
156
-
157
-/**
158
- * Free the supplied list of AVFilterInOut and set *inout to NULL.
159
- * If *inout is NULL, do nothing.
160
- */
161
-void avfilter_inout_free(AVFilterInOut **inout);
162
-
163
-/**
164
- * Add a graph described by a string to a graph.
165
- *
166
- * @param graph   the filter graph where to link the parsed graph context
167
- * @param filters string to be parsed
168
- * @param inputs  pointer to a linked list to the inputs of the graph, may be NULL.
169
- *                If non-NULL, *inputs is updated to contain the list of open inputs
170
- *                after the parsing, should be freed with avfilter_inout_free().
171
- * @param outputs pointer to a linked list to the outputs of the graph, may be NULL.
172
- *                If non-NULL, *outputs is updated to contain the list of open outputs
173
- *                after the parsing, should be freed with avfilter_inout_free().
174
- * @return non negative on success, a negative AVERROR code on error
175
- */
176
-int avfilter_graph_parse(AVFilterGraph *graph, const char *filters,
177
-                         AVFilterInOut **inputs, AVFilterInOut **outputs,
178
-                         void *log_ctx);
179
-
180
-/**
181
- * Add a graph described by a string to a graph.
182
- *
183
- * @param[in]  graph   the filter graph where to link the parsed graph context
184
- * @param[in]  filters string to be parsed
185
- * @param[out] inputs  a linked list of all free (unlinked) inputs of the
186
- *                     parsed graph will be returned here. It is to be freed
187
- *                     by the caller using avfilter_inout_free().
188
- * @param[out] outputs a linked list of all free (unlinked) outputs of the
189
- *                     parsed graph will be returned here. It is to be freed by the
190
- *                     caller using avfilter_inout_free().
191
- * @return zero on success, a negative AVERROR code on error
192
- *
193
- * @note the difference between avfilter_graph_parse2() and
194
- * avfilter_graph_parse() is that in avfilter_graph_parse(), the caller provides
195
- * the lists of inputs and outputs, which therefore must be known before calling
196
- * the function. On the other hand, avfilter_graph_parse2() \em returns the
197
- * inputs and outputs that are left unlinked after parsing the graph and the
198
- * caller then deals with them. Another difference is that in
199
- * avfilter_graph_parse(), the inputs parameter describes inputs of the
200
- * <em>already existing</em> part of the graph; i.e. from the point of view of
201
- * the newly created part, they are outputs. Similarly the outputs parameter
202
- * describes outputs of the already existing filters, which are provided as
203
- * inputs to the parsed filters.
204
- * avfilter_graph_parse2() takes the opposite approach -- it makes no reference
205
- * whatsoever to already existing parts of the graph and the inputs parameter
206
- * will on return contain inputs of the newly parsed part of the graph.
207
- * Analogously the outputs parameter will contain outputs of the newly created
208
- * filters.
209
- */
210
-int avfilter_graph_parse2(AVFilterGraph *graph, const char *filters,
211
-                          AVFilterInOut **inputs,
212
-                          AVFilterInOut **outputs);
213
-
214
-
215
-/**
216
- * Send a command to one or more filter instances.
217
- *
218
- * @param graph  the filter graph
219
- * @param target the filter(s) to which the command should be sent
220
- *               "all" sends to all filters
221
- *               otherwise it can be a filter or filter instance name
222
- *               which will send the command to all matching filters.
223
- * @param cmd    the command to sent, for handling simplicity all commands must be alphanumeric only
224
- * @param arg    the argument for the command
225
- * @param res    a buffer with size res_size where the filter(s) can return a response.
226
- *
227
- * @returns >=0 on success otherwise an error code.
228
- *              AVERROR(ENOSYS) on unsupported commands
229
- */
230
-int avfilter_graph_send_command(AVFilterGraph *graph, const char *target, const char *cmd, const char *arg, char *res, int res_len, int flags);
231
-
232
-/**
233
- * Queue a command for one or more filter instances.
234
- *
235
- * @param graph  the filter graph
236
- * @param target the filter(s) to which the command should be sent
237
- *               "all" sends to all filters
238
- *               otherwise it can be a filter or filter instance name
239
- *               which will send the command to all matching filters.
240
- * @param cmd    the command to sent, for handling simplicity all commands must be alphanummeric only
241
- * @param arg    the argument for the command
242
- * @param ts     time at which the command should be sent to the filter
243
- *
244
- * @note As this executes commands after this function returns, no return code
245
- *       from the filter is provided, also AVFILTER_CMD_FLAG_ONE is not supported.
246
- */
247
-int avfilter_graph_queue_command(AVFilterGraph *graph, const char *target, const char *cmd, const char *arg, int flags, double ts);
248
-
249
-
250
-/**
251
- * Dump a graph into a human-readable string representation.
252
- *
253
- * @param graph    the graph to dump
254
- * @param options  formatting options; currently ignored
255
- * @return  a string, or NULL in case of memory allocation failure;
256
- *          the string must be freed using av_free
257
- */
258
-char *avfilter_graph_dump(AVFilterGraph *graph, const char *options);
259
-
260
-/**
261
- * Request a frame on the oldest sink link.
262
- *
263
- * If the request returns AVERROR_EOF, try the next.
264
- *
265
- * Note that this function is not meant to be the sole scheduling mechanism
266
- * of a filtergraph, only a convenience function to help drain a filtergraph
267
- * in a balanced way under normal circumstances.
268
- *
269
- * Also note that AVERROR_EOF does not mean that frames did not arrive on
270
- * some of the sinks during the process.
271
- * When there are multiple sink links, in case the requested link
272
- * returns an EOF, this may cause a filter to flush pending frames
273
- * which are sent to another sink link, although unrequested.
274
- *
275
- * @return  the return value of ff_request_frame(),
276
- *          or AVERROR_EOF if all links returned AVERROR_EOF
277
- */
278
-int avfilter_graph_request_oldest(AVFilterGraph *graph);
279
-
280 28
 #endif /* AVFILTER_AVFILTERGRAPH_H */
... ...
@@ -26,7 +26,6 @@
26 26
 #include "libavutil/avstring.h"
27 27
 #include "libavutil/mem.h"
28 28
 #include "avfilter.h"
29
-#include "avfiltergraph.h"
30 29
 
31 30
 #define WHITESPACES " \n\t"
32 31
 
... ...
@@ -29,8 +29,8 @@
29 29
 #include "libavutil/avutil.h"
30 30
 
31 31
 #define LIBAVFILTER_VERSION_MAJOR  3
32
-#define LIBAVFILTER_VERSION_MINOR  52
33
-#define LIBAVFILTER_VERSION_MICRO 102
32
+#define LIBAVFILTER_VERSION_MINOR  53
33
+#define LIBAVFILTER_VERSION_MICRO 100
34 34
 
35 35
 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
36 36
                                                LIBAVFILTER_VERSION_MINOR, \
... ...
@@ -28,7 +28,7 @@
28 28
 #include "libavutil/channel_layout.h"
29 29
 #include "libavutil/mem.h"
30 30
 #include "libavutil/pixdesc.h"
31
-#include "libavfilter/avfiltergraph.h"
31
+#include "libavfilter/avfilter.h"
32 32
 
33 33
 #if !HAVE_GETOPT
34 34
 #include "compat/getopt.c"