It will allow adding new fields to it without ABI breaks.tags/n1.0
@@ -548,7 +548,7 @@ static FilterGraph *init_simple_filtergraph(InputStream *ist, OutputStream *ost) | |||||
static void init_input_filter(FilterGraph *fg, AVFilterInOut *in) | static void init_input_filter(FilterGraph *fg, AVFilterInOut *in) | ||||
{ | { | ||||
InputStream *ist; | InputStream *ist; | ||||
enum AVMediaType type = in->filter_ctx->input_pads[in->pad_idx].type; | |||||
enum AVMediaType type = avfilter_pad_get_type(in->filter_ctx->input_pads, in->pad_idx); | |||||
int i; | int i; | ||||
// TODO: support other filter types | // TODO: support other filter types | ||||
@@ -789,7 +789,7 @@ static int configure_output_audio_filter(FilterGraph *fg, OutputFilter *ofilter, | |||||
\ | \ | ||||
avio_printf(pb, "%s", ctx->filter->name); \ | avio_printf(pb, "%s", ctx->filter->name); \ | ||||
if (nb_pads > 1) \ | if (nb_pads > 1) \ | ||||
avio_printf(pb, ":%s", pads[inout->pad_idx].name); \ | |||||
avio_printf(pb, ":%s", avfilter_pad_get_name(pads, inout->pad_idx));\ | |||||
avio_w8(pb, 0); \ | avio_w8(pb, 0); \ | ||||
avio_close_dyn_buf(pb, &f->name); \ | avio_close_dyn_buf(pb, &f->name); \ | ||||
} | } | ||||
@@ -799,7 +799,7 @@ static int configure_output_filter(FilterGraph *fg, OutputFilter *ofilter, AVFil | |||||
av_freep(&ofilter->name); | av_freep(&ofilter->name); | ||||
DESCRIBE_FILTER_LINK(ofilter, out, 0); | DESCRIBE_FILTER_LINK(ofilter, out, 0); | ||||
switch (out->filter_ctx->output_pads[out->pad_idx].type) { | |||||
switch (avfilter_pad_get_type(out->filter_ctx->output_pads, out->pad_idx)) { | |||||
case AVMEDIA_TYPE_VIDEO: return configure_output_video_filter(fg, ofilter, out); | case AVMEDIA_TYPE_VIDEO: return configure_output_video_filter(fg, ofilter, out); | ||||
case AVMEDIA_TYPE_AUDIO: return configure_output_audio_filter(fg, ofilter, out); | case AVMEDIA_TYPE_AUDIO: return configure_output_audio_filter(fg, ofilter, out); | ||||
default: av_assert0(0); | default: av_assert0(0); | ||||
@@ -913,7 +913,7 @@ static int configure_input_filter(FilterGraph *fg, InputFilter *ifilter, | |||||
av_freep(&ifilter->name); | av_freep(&ifilter->name); | ||||
DESCRIBE_FILTER_LINK(ifilter, in, 1); | DESCRIBE_FILTER_LINK(ifilter, in, 1); | ||||
switch (in->filter_ctx->input_pads[in->pad_idx].type) { | |||||
switch (avfilter_pad_get_type(in->filter_ctx->input_pads, in->pad_idx)) { | |||||
case AVMEDIA_TYPE_VIDEO: return configure_input_video_filter(fg, ifilter, in); | case AVMEDIA_TYPE_VIDEO: return configure_input_video_filter(fg, ifilter, in); | ||||
case AVMEDIA_TYPE_AUDIO: return configure_input_audio_filter(fg, ifilter, in); | case AVMEDIA_TYPE_AUDIO: return configure_input_audio_filter(fg, ifilter, in); | ||||
default: av_assert0(0); | default: av_assert0(0); | ||||
@@ -4112,7 +4112,8 @@ static void init_output_filter(OutputFilter *ofilter, OptionsContext *o, | |||||
{ | { | ||||
OutputStream *ost; | OutputStream *ost; | ||||
switch (ofilter->out_tmp->filter_ctx->output_pads[ofilter->out_tmp->pad_idx].type) { | |||||
switch (avfilter_pad_get_type(ofilter->out_tmp->filter_ctx->output_pads, | |||||
ofilter->out_tmp->pad_idx)) { | |||||
case AVMEDIA_TYPE_VIDEO: ost = new_video_stream(o, oc); break; | case AVMEDIA_TYPE_VIDEO: ost = new_video_stream(o, oc); break; | ||||
case AVMEDIA_TYPE_AUDIO: ost = new_audio_stream(o, oc); break; | case AVMEDIA_TYPE_AUDIO: ost = new_audio_stream(o, oc); break; | ||||
default: | default: | ||||
@@ -4191,7 +4192,8 @@ static void opt_output_file(void *optctx, const char *filename) | |||||
if (!ofilter->out_tmp || ofilter->out_tmp->name) | if (!ofilter->out_tmp || ofilter->out_tmp->name) | ||||
continue; | continue; | ||||
switch (ofilter->out_tmp->filter_ctx->output_pads[ofilter->out_tmp->pad_idx].type) { | |||||
switch (avfilter_pad_get_type(ofilter->out_tmp->filter_ctx->output_pads, | |||||
ofilter->out_tmp->pad_idx)) { | |||||
case AVMEDIA_TYPE_VIDEO: o->video_disable = 1; break; | case AVMEDIA_TYPE_VIDEO: o->video_disable = 1; break; | ||||
case AVMEDIA_TYPE_AUDIO: o->audio_disable = 1; break; | case AVMEDIA_TYPE_AUDIO: o->audio_disable = 1; break; | ||||
case AVMEDIA_TYPE_SUBTITLE: o->subtitle_disable = 1; break; | case AVMEDIA_TYPE_SUBTITLE: o->subtitle_disable = 1; break; | ||||
@@ -23,6 +23,7 @@ | |||||
#include "audio.h" | #include "audio.h" | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "internal.h" | |||||
AVFilter avfilter_af_anull = { | AVFilter avfilter_af_anull = { | ||||
.name = "anull", | .name = "anull", | ||||
@@ -17,6 +17,7 @@ | |||||
*/ | */ | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "internal.h" | |||||
static void null_filter_samples(AVFilterLink *link, AVFilterBufferRef *samplesref) { } | static void null_filter_samples(AVFilterLink *link, AVFilterBufferRef *samplesref) { } | ||||
@@ -22,6 +22,7 @@ | |||||
*/ | */ | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "internal.h" | |||||
#include "libavutil/audioconvert.h" | #include "libavutil/audioconvert.h" | ||||
typedef struct { | typedef struct { | ||||
@@ -235,8 +235,14 @@ void avfilter_set_common_formats(AVFilterContext *ctx, AVFilterFormats *formats) | |||||
*/ | */ | ||||
#endif | #endif | ||||
#if FF_API_AVFILTERPAD_PUBLIC | |||||
/** | /** | ||||
* A filter pad used for either input or output. | * A filter pad used for either input or output. | ||||
* | |||||
* @warning this struct will be removed from public API. | |||||
* users should call avfilter_pad_get_name() and avfilter_pad_get_type() | |||||
* to access the name and type fields; there should be no need to access | |||||
* any other fields from outside of libavfilter. | |||||
*/ | */ | ||||
struct AVFilterPad { | struct AVFilterPad { | ||||
/** | /** | ||||
@@ -358,6 +364,7 @@ struct AVFilterPad { | |||||
*/ | */ | ||||
int (*config_props)(AVFilterLink *link); | int (*config_props)(AVFilterLink *link); | ||||
}; | }; | ||||
#endif | |||||
/** | /** | ||||
* Get the name of an AVFilterPad. | * Get the name of an AVFilterPad. | ||||
@@ -27,6 +27,7 @@ | |||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "buffersrc.h" | #include "buffersrc.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
#include "vsrc_buffer.h" | #include "vsrc_buffer.h" | ||||
@@ -26,6 +26,132 @@ | |||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#if !FF_API_AVFILTERPAD_PUBLIC | |||||
/** | |||||
* A filter pad used for either input or output. | |||||
*/ | |||||
struct AVFilterPad { | |||||
/** | |||||
* Pad name. The name is unique among inputs and among outputs, but an | |||||
* input may have the same name as an output. This may be NULL if this | |||||
* pad has no need to ever be referenced by name. | |||||
*/ | |||||
const char *name; | |||||
/** | |||||
* AVFilterPad type. | |||||
*/ | |||||
enum AVMediaType type; | |||||
/** | |||||
* Minimum required permissions on incoming buffers. Any buffer with | |||||
* insufficient permissions will be automatically copied by the filter | |||||
* system to a new buffer which provides the needed access permissions. | |||||
* | |||||
* Input pads only. | |||||
*/ | |||||
int min_perms; | |||||
/** | |||||
* Permissions which are not accepted on incoming buffers. Any buffer | |||||
* which has any of these permissions set will be automatically copied | |||||
* by the filter system to a new buffer which does not have those | |||||
* permissions. This can be used to easily disallow buffers with | |||||
* AV_PERM_REUSE. | |||||
* | |||||
* Input pads only. | |||||
*/ | |||||
int rej_perms; | |||||
/** | |||||
* Callback called before passing the first slice of a new frame. If | |||||
* NULL, the filter layer will default to storing a reference to the | |||||
* picture inside the link structure. | |||||
* | |||||
* Input video pads only. | |||||
*/ | |||||
void (*start_frame)(AVFilterLink *link, AVFilterBufferRef *picref); | |||||
/** | |||||
* Callback function to get a video buffer. If NULL, the filter system will | |||||
* use avfilter_default_get_video_buffer(). | |||||
* | |||||
* Input video pads only. | |||||
*/ | |||||
AVFilterBufferRef *(*get_video_buffer)(AVFilterLink *link, int perms, int w, int h); | |||||
/** | |||||
* Callback function to get an audio buffer. If NULL, the filter system will | |||||
* use avfilter_default_get_audio_buffer(). | |||||
* | |||||
* Input audio pads only. | |||||
*/ | |||||
AVFilterBufferRef *(*get_audio_buffer)(AVFilterLink *link, int perms, | |||||
int nb_samples); | |||||
/** | |||||
* Callback called after the slices of a frame are completely sent. If | |||||
* NULL, the filter layer will default to releasing the reference stored | |||||
* in the link structure during start_frame(). | |||||
* | |||||
* Input video pads only. | |||||
*/ | |||||
void (*end_frame)(AVFilterLink *link); | |||||
/** | |||||
* Slice drawing callback. This is where a filter receives video data | |||||
* and should do its processing. | |||||
* | |||||
* Input video pads only. | |||||
*/ | |||||
void (*draw_slice)(AVFilterLink *link, int y, int height, int slice_dir); | |||||
/** | |||||
* Samples filtering callback. This is where a filter receives audio data | |||||
* and should do its processing. | |||||
* | |||||
* Input audio pads only. | |||||
*/ | |||||
void (*filter_samples)(AVFilterLink *link, AVFilterBufferRef *samplesref); | |||||
/** | |||||
* Frame poll callback. This returns the number of immediately available | |||||
* samples. It should return a positive value if the next request_frame() | |||||
* is guaranteed to return one frame (with no delay). | |||||
* | |||||
* Defaults to just calling the source poll_frame() method. | |||||
* | |||||
* Output pads only. | |||||
*/ | |||||
int (*poll_frame)(AVFilterLink *link); | |||||
/** | |||||
* Frame request callback. A call to this should result in at least one | |||||
* frame being output over the given link. This should return zero on | |||||
* success, and another value on error. | |||||
* | |||||
* Output pads only. | |||||
*/ | |||||
int (*request_frame)(AVFilterLink *link); | |||||
/** | |||||
* Link configuration callback. | |||||
* | |||||
* For output pads, this should set the link properties such as | |||||
* width/height. This should NOT set the format property - that is | |||||
* negotiated between filters by the filter system using the | |||||
* query_formats() callback before this function is called. | |||||
* | |||||
* For input pads, this should check the properties of the link, and update | |||||
* the filter's internal state as necessary. | |||||
* | |||||
* For both input and output filters, this should return zero on success, | |||||
* and another value on error. | |||||
*/ | |||||
int (*config_props)(AVFilterLink *link); | |||||
}; | |||||
#endif | |||||
/** default handler for freeing audio/video buffer when there are no references left */ | /** default handler for freeing audio/video buffer when there are no references left */ | ||||
void ff_avfilter_default_free_buffer(AVFilterBuffer *buf); | void ff_avfilter_default_free_buffer(AVFilterBuffer *buf); | ||||
@@ -59,5 +59,8 @@ | |||||
#ifndef FF_API_FILTERS_PUBLIC | #ifndef FF_API_FILTERS_PUBLIC | ||||
#define FF_API_FILTERS_PUBLIC (LIBAVFILTER_VERSION_MAJOR < 3) | #define FF_API_FILTERS_PUBLIC (LIBAVFILTER_VERSION_MAJOR < 3) | ||||
#endif | #endif | ||||
#ifndef FF_API_AVFILTERPAD_PUBLIC | |||||
#define FF_API_AVFILTERPAD_PUBLIC (LIBAVFILTER_VERSION_MAJOR < 4) | |||||
#endif | |||||
#endif // AVFILTER_VERSION_H | #endif // AVFILTER_VERSION_H |
@@ -25,6 +25,7 @@ | |||||
#include "libavutil/mathematics.h" | #include "libavutil/mathematics.h" | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
typedef struct { | typedef struct { | ||||
@@ -29,6 +29,7 @@ | |||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
typedef struct { | typedef struct { | ||||
@@ -30,6 +30,7 @@ | |||||
#include "libavutil/pixdesc.h" | #include "libavutil/pixdesc.h" | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
static const char *const var_names[] = { | static const char *const var_names[] = { | ||||
@@ -22,6 +22,7 @@ | |||||
*/ | */ | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
AVFilter avfilter_vf_copy = { | AVFilter avfilter_vf_copy = { | ||||
@@ -27,6 +27,7 @@ | |||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
#include "libavutil/eval.h" | #include "libavutil/eval.h" | ||||
#include "libavutil/avstring.h" | #include "libavutil/avstring.h" | ||||
@@ -26,6 +26,7 @@ | |||||
#include "libavutil/imgutils.h" | #include "libavutil/imgutils.h" | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
typedef struct { | typedef struct { | ||||
@@ -30,6 +30,7 @@ | |||||
#include "libavutil/pixdesc.h" | #include "libavutil/pixdesc.h" | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
/** | /** | ||||
@@ -29,6 +29,7 @@ | |||||
#include "libavutil/parseutils.h" | #include "libavutil/parseutils.h" | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
enum { Y, U, V, A }; | enum { Y, U, V, A }; | ||||
@@ -42,6 +42,7 @@ | |||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "drawutils.h" | #include "drawutils.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
#undef time | #undef time | ||||
@@ -28,6 +28,7 @@ | |||||
#include "libavutil/pixdesc.h" | #include "libavutil/pixdesc.h" | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
typedef struct { | typedef struct { | ||||
@@ -29,6 +29,7 @@ | |||||
#include "libavutil/pixdesc.h" | #include "libavutil/pixdesc.h" | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
typedef struct | typedef struct | ||||
@@ -26,6 +26,7 @@ | |||||
#include "libavutil/pixdesc.h" | #include "libavutil/pixdesc.h" | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
typedef struct { | typedef struct { | ||||
@@ -32,6 +32,7 @@ | |||||
#include "libavutil/parseutils.h" | #include "libavutil/parseutils.h" | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
typedef f0r_instance_t (*f0r_construct_f)(unsigned int width, unsigned int height); | typedef f0r_instance_t (*f0r_construct_f)(unsigned int width, unsigned int height); | ||||
@@ -38,6 +38,7 @@ | |||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "gradfun.h" | #include "gradfun.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
DECLARE_ALIGNED(16, static const uint16_t, dither)[8][8] = { | DECLARE_ALIGNED(16, static const uint16_t, dither)[8][8] = { | ||||
@@ -26,6 +26,7 @@ | |||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
#include "libavutil/pixdesc.h" | #include "libavutil/pixdesc.h" | ||||
#include "libavutil/intreadwrite.h" | #include "libavutil/intreadwrite.h" | ||||
@@ -28,6 +28,7 @@ | |||||
#include "libavutil/pixdesc.h" | #include "libavutil/pixdesc.h" | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
typedef struct { | typedef struct { | ||||
@@ -22,6 +22,7 @@ | |||||
*/ | */ | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
AVFilter avfilter_vf_null = { | AVFilter avfilter_vf_null = { | ||||
@@ -26,6 +26,7 @@ | |||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
#include "libavutil/avstring.h" | #include "libavutil/avstring.h" | ||||
#include "libavutil/eval.h" | #include "libavutil/eval.h" | ||||
@@ -25,6 +25,7 @@ | |||||
#include "libavutil/pixdesc.h" | #include "libavutil/pixdesc.h" | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
typedef struct { | typedef struct { | ||||
@@ -25,6 +25,7 @@ | |||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
#include "libavutil/avstring.h" | #include "libavutil/avstring.h" | ||||
#include "libavutil/eval.h" | #include "libavutil/eval.h" | ||||
@@ -29,6 +29,7 @@ | |||||
#include "libavutil/eval.h" | #include "libavutil/eval.h" | ||||
#include "libavutil/mathematics.h" | #include "libavutil/mathematics.h" | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
static const char *const var_names[] = { | static const char *const var_names[] = { | ||||
@@ -26,6 +26,7 @@ | |||||
#include "libavutil/imgutils.h" | #include "libavutil/imgutils.h" | ||||
#include "libavutil/pixdesc.h" | #include "libavutil/pixdesc.h" | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
typedef struct { | typedef struct { | ||||
@@ -24,6 +24,7 @@ | |||||
*/ | */ | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
#include "libavutil/pixdesc.h" | #include "libavutil/pixdesc.h" | ||||
@@ -30,6 +30,7 @@ | |||||
#include "libavutil/imgutils.h" | #include "libavutil/imgutils.h" | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
typedef struct { | typedef struct { | ||||
@@ -38,6 +38,7 @@ | |||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
#include "libavutil/common.h" | #include "libavutil/common.h" | ||||
#include "libavutil/mem.h" | #include "libavutil/mem.h" | ||||
@@ -25,6 +25,7 @@ | |||||
#include "libavutil/pixdesc.h" | #include "libavutil/pixdesc.h" | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
typedef struct { | typedef struct { | ||||
@@ -17,6 +17,7 @@ | |||||
*/ | */ | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "internal.h" | |||||
static void start_frame(AVFilterLink *link, AVFilterBufferRef *picref) | static void start_frame(AVFilterLink *link, AVFilterBufferRef *picref) | ||||
{ | { | ||||
@@ -25,6 +25,7 @@ | |||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
#include "libavutil/pixdesc.h" | #include "libavutil/pixdesc.h" | ||||
#include "libavutil/colorspace.h" | #include "libavutil/colorspace.h" | ||||
@@ -37,6 +37,7 @@ | |||||
#include "libavformat/avformat.h" | #include "libavformat/avformat.h" | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
typedef struct { | typedef struct { | ||||
@@ -27,6 +27,7 @@ | |||||
#include "libavutil/parseutils.h" | #include "libavutil/parseutils.h" | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "internal.h" | |||||
static const char *const var_names[] = { | static const char *const var_names[] = { | ||||
"E", | "E", | ||||
@@ -38,6 +38,7 @@ | |||||
#include "libavutil/parseutils.h" | #include "libavutil/parseutils.h" | ||||
#include "avfilter.h" | #include "avfilter.h" | ||||
#include "formats.h" | #include "formats.h" | ||||
#include "internal.h" | |||||
#include "video.h" | #include "video.h" | ||||
typedef struct { | typedef struct { | ||||