It will allow adding new fields to it without ABI breaks.
Unified · Split
| @@ -548,7 +548,7 @@ static FilterGraph *init_simple_filtergraph(InputStream *ist, OutputStream *ost) · 547 unmodified lines | ||
| 548 | 548 | static void init_input_filter(FilterGraph *fg, AVFilterInOut *in) |
| 549 | 549 | { |
| 550 | 550 | InputStream *ist; |
| 551 | − enum AVMediaType type = in->filter_ctx->input_pads[in->pad_idx].type; | |
| 551 | + enum AVMediaType type = avfilter_pad_get_type(in->filter_ctx->input_pads, in->pad_idx); | |
| 552 | 552 | int i; |
| 553 | 553 | |
| 554 | 554 | // TODO: support other filter types |
| @@ -789,7 +789,7 @@ static int configure_output_audio_filter(FilterGraph *fg, OutputFilter *ofilter, · 234 unmodified lines | ||
| 789 | 789 | \ |
| 790 | 790 | avio_printf(pb, "%s", ctx->filter->name); \ |
| 791 | 791 | if (nb_pads > 1) \ |
| 792 | − avio_printf(pb, ":%s", pads[inout->pad_idx].name); \ | |
| 792 | + avio_printf(pb, ":%s", avfilter_pad_get_name(pads, inout->pad_idx));\ | |
| 793 | 793 | avio_w8(pb, 0); \ |
| 794 | 794 | avio_close_dyn_buf(pb, &f->name); \ |
| 795 | 795 | } |
| @@ -799,7 +799,7 @@ static int configure_output_filter(FilterGraph *fg, OutputFilter *ofilter, AVFil · 3 unmodified lines | ||
| 799 | 799 | av_freep(&ofilter->name); |
| 800 | 800 | DESCRIBE_FILTER_LINK(ofilter, out, 0); |
| 801 | 801 | |
| 802 | − switch (out->filter_ctx->output_pads[out->pad_idx].type) { | |
| 802 | + switch (avfilter_pad_get_type(out->filter_ctx->output_pads, out->pad_idx)) { | |
| 803 | 803 | case AVMEDIA_TYPE_VIDEO: return configure_output_video_filter(fg, ofilter, out); |
| 804 | 804 | case AVMEDIA_TYPE_AUDIO: return configure_output_audio_filter(fg, ofilter, out); |
| 805 | 805 | default: av_assert0(0); |
| @@ -913,7 +913,7 @@ static int configure_input_filter(FilterGraph *fg, InputFilter *ifilter, · 107 unmodified lines | ||
| 913 | 913 | av_freep(&ifilter->name); |
| 914 | 914 | DESCRIBE_FILTER_LINK(ifilter, in, 1); |
| 915 | 915 | |
| 916 | − switch (in->filter_ctx->input_pads[in->pad_idx].type) { | |
| 916 | + switch (avfilter_pad_get_type(in->filter_ctx->input_pads, in->pad_idx)) { | |
| 917 | 917 | case AVMEDIA_TYPE_VIDEO: return configure_input_video_filter(fg, ifilter, in); |
| 918 | 918 | case AVMEDIA_TYPE_AUDIO: return configure_input_audio_filter(fg, ifilter, in); |
| 919 | 919 | default: av_assert0(0); |
| @@ -4112,7 +4112,8 @@ static void init_output_filter(OutputFilter *ofilter, OptionsContext *o, · 3192 unmodified lines | ||
| 4112 | 4112 | { |
| 4113 | 4113 | OutputStream *ost; |
| 4114 | 4114 | |
| 4115 | − switch (ofilter->out_tmp->filter_ctx->output_pads[ofilter->out_tmp->pad_idx].type) { | |
| 4115 | + switch (avfilter_pad_get_type(ofilter->out_tmp->filter_ctx->output_pads, | |
| 4116 | + ofilter->out_tmp->pad_idx)) { | |
| 4116 | 4117 | case AVMEDIA_TYPE_VIDEO: ost = new_video_stream(o, oc); break; |
| 4117 | 4118 | case AVMEDIA_TYPE_AUDIO: ost = new_audio_stream(o, oc); break; |
| 4118 | 4119 | default: |
| @@ -4191,7 +4192,8 @@ static void opt_output_file(void *optctx, const char *filename) · 72 unmodified lines | ||
| 4191 | 4192 | if (!ofilter->out_tmp || ofilter->out_tmp->name) |
| 4192 | 4193 | continue; |
| 4193 | 4194 | |
| 4194 | − switch (ofilter->out_tmp->filter_ctx->output_pads[ofilter->out_tmp->pad_idx].type) { | |
| 4195 | + switch (avfilter_pad_get_type(ofilter->out_tmp->filter_ctx->output_pads, | |
| 4196 | + ofilter->out_tmp->pad_idx)) { | |
| 4195 | 4197 | case AVMEDIA_TYPE_VIDEO: o->video_disable = 1; break; |
| 4196 | 4198 | case AVMEDIA_TYPE_AUDIO: o->audio_disable = 1; break; |
| 4197 | 4199 | case AVMEDIA_TYPE_SUBTITLE: o->subtitle_disable = 1; break; |
| @@ -23,6 +23,7 @@ · 22 unmodified lines | ||
| 23 | 23 | |
| 24 | 24 | #include "audio.h" |
| 25 | 25 | #include "avfilter.h" |
| 26 | +#include "internal.h" | |
| 26 | 27 | |
| 27 | 28 | AVFilter avfilter_af_anull = { |
| 28 | 29 | .name = "anull", |
| @@ -17,6 +17,7 @@ · 16 unmodified lines | ||
| 17 | 17 | */ |
| 18 | 18 | |
| 19 | 19 | #include "avfilter.h" |
| 20 | +#include "internal.h" | |
| 20 | 21 | |
| 21 | 22 | static void null_filter_samples(AVFilterLink *link, AVFilterBufferRef *samplesref) { } |
| 22 | 23 | |
| @@ -22,6 +22,7 @@ · 21 unmodified lines | ||
| 22 | 22 | */ |
| 23 | 23 | |
| 24 | 24 | #include "avfilter.h" |
| 25 | +#include "internal.h" | |
| 25 | 26 | #include "libavutil/audioconvert.h" |
| 26 | 27 | |
| 27 | 28 | typedef struct { |
| @@ -235,8 +235,14 @@ void avfilter_set_common_formats(AVFilterContext *ctx, AVFilterFormats *formats) · 234 unmodified lines | ||
| 235 | 235 | */ |
| 236 | 236 | #endif |
| 237 | 237 | |
| 238 | +#if FF_API_AVFILTERPAD_PUBLIC | |
| 238 | 239 | /** |
| 239 | 240 | * A filter pad used for either input or output. |
| 241 | + * | |
| 242 | + * @warning this struct will be removed from public API. | |
| 243 | + * users should call avfilter_pad_get_name() and avfilter_pad_get_type() | |
| 244 | + * to access the name and type fields; there should be no need to access | |
| 245 | + * any other fields from outside of libavfilter. | |
| 240 | 246 | */ |
| 241 | 247 | struct AVFilterPad { |
| 242 | 248 | /** |
| @@ -358,6 +364,7 @@ struct AVFilterPad { · 115 unmodified lines | ||
| 358 | 364 | */ |
| 359 | 365 | int (*config_props)(AVFilterLink *link); |
| 360 | 366 | }; |
| 367 | +#endif | |
| 361 | 368 | |
| 362 | 369 | /** |
| 363 | 370 | * Get the name of an AVFilterPad. |
| @@ -27,6 +27,7 @@ · 26 unmodified lines | ||
| 27 | 27 | #include "avfilter.h" |
| 28 | 28 | #include "buffersrc.h" |
| 29 | 29 | #include "formats.h" |
| 30 | +#include "internal.h" | |
| 30 | 31 | #include "video.h" |
| 31 | 32 | #include "vsrc_buffer.h" |
| 32 | 33 | |
| @@ -26,6 +26,132 @@ · 25 unmodified lines | ||
| 26 | 26 | |
| 27 | 27 | #include "avfilter.h" |
| 28 | 28 | |
| 29 | +#if !FF_API_AVFILTERPAD_PUBLIC | |
| 30 | +/** | |
| 31 | + * A filter pad used for either input or output. | |
| 32 | + */ | |
| 33 | +struct AVFilterPad { | |
| 34 | + /** | |
| 35 | + * Pad name. The name is unique among inputs and among outputs, but an | |
| 36 | + * input may have the same name as an output. This may be NULL if this | |
| 37 | + * pad has no need to ever be referenced by name. | |
| 38 | + */ | |
| 39 | + const char *name; | |
| 40 | + | |
| 41 | + /** | |
| 42 | + * AVFilterPad type. | |
| 43 | + */ | |
| 44 | + enum AVMediaType type; | |
| 45 | + | |
| 46 | + /** | |
| 47 | + * Minimum required permissions on incoming buffers. Any buffer with | |
| 48 | + * insufficient permissions will be automatically copied by the filter | |
| 49 | + * system to a new buffer which provides the needed access permissions. | |
| 50 | + * | |
| 51 | + * Input pads only. | |
| 52 | + */ | |
| 53 | + int min_perms; | |
| 54 | + | |
| 55 | + /** | |
| 56 | + * Permissions which are not accepted on incoming buffers. Any buffer | |
| 57 | + * which has any of these permissions set will be automatically copied | |
| 58 | + * by the filter system to a new buffer which does not have those | |
| 59 | + * permissions. This can be used to easily disallow buffers with | |
| 60 | + * AV_PERM_REUSE. | |
| 61 | + * | |
| 62 | + * Input pads only. | |
| 63 | + */ | |
| 64 | + int rej_perms; | |
| 65 | + | |
| 66 | + /** | |
| 67 | + * Callback called before passing the first slice of a new frame. If | |
| 68 | + * NULL, the filter layer will default to storing a reference to the | |
| 69 | + * picture inside the link structure. | |
| 70 | + * | |
| 71 | + * Input video pads only. | |
| 72 | + */ | |
| 73 | + void (*start_frame)(AVFilterLink *link, AVFilterBufferRef *picref); | |
| 74 | + | |
| 75 | + /** | |
| 76 | + * Callback function to get a video buffer. If NULL, the filter system will | |
| 77 | + * use avfilter_default_get_video_buffer(). | |
| 78 | + * | |
| 79 | + * Input video pads only. | |
| 80 | + */ | |
| 81 | + AVFilterBufferRef *(*get_video_buffer)(AVFilterLink *link, int perms, int w, int h); | |
| 82 | + | |
| 83 | + /** | |
| 84 | + * Callback function to get an audio buffer. If NULL, the filter system will | |
| 85 | + * use avfilter_default_get_audio_buffer(). | |
| 86 | + * | |
| 87 | + * Input audio pads only. | |
| 88 | + */ | |
| 89 | + AVFilterBufferRef *(*get_audio_buffer)(AVFilterLink *link, int perms, | |
| 90 | + int nb_samples); | |
| 91 | + | |
| 92 | + /** | |
| 93 | + * Callback called after the slices of a frame are completely sent. If | |
| 94 | + * NULL, the filter layer will default to releasing the reference stored | |
| 95 | + * in the link structure during start_frame(). | |
| 96 | + * | |
| 97 | + * Input video pads only. | |
| 98 | + */ | |
| 99 | + void (*end_frame)(AVFilterLink *link); | |
| 100 | + | |
| 101 | + /** | |
| 102 | + * Slice drawing callback. This is where a filter receives video data | |
| 103 | + * and should do its processing. | |
| 104 | + * | |
| 105 | + * Input video pads only. | |
| 106 | + */ | |
| 107 | + void (*draw_slice)(AVFilterLink *link, int y, int height, int slice_dir); | |
| 108 | + | |
| 109 | + /** | |
| 110 | + * Samples filtering callback. This is where a filter receives audio data | |
| 111 | + * and should do its processing. | |
| 112 | + * | |
| 113 | + * Input audio pads only. | |
| 114 | + */ | |
| 115 | + void (*filter_samples)(AVFilterLink *link, AVFilterBufferRef *samplesref); | |
| 116 | + | |
| 117 | + /** | |
| 118 | + * Frame poll callback. This returns the number of immediately available | |
| 119 | + * samples. It should return a positive value if the next request_frame() | |
| 120 | + * is guaranteed to return one frame (with no delay). | |
| 121 | + * | |
| 122 | + * Defaults to just calling the source poll_frame() method. | |
| 123 | + * | |
| 124 | + * Output pads only. | |
| 125 | + */ | |
| 126 | + int (*poll_frame)(AVFilterLink *link); | |
| 127 | + | |
| 128 | + /** | |
| 129 | + * Frame request callback. A call to this should result in at least one | |
| 130 | + * frame being output over the given link. This should return zero on | |
| 131 | + * success, and another value on error. | |
| 132 | + * | |
| 133 | + * Output pads only. | |
| 134 | + */ | |
| 135 | + int (*request_frame)(AVFilterLink *link); | |
| 136 | + | |
| 137 | + /** | |
| 138 | + * Link configuration callback. | |
| 139 | + * | |
| 140 | + * For output pads, this should set the link properties such as | |
| 141 | + * width/height. This should NOT set the format property - that is | |
| 142 | + * negotiated between filters by the filter system using the | |
| 143 | + * query_formats() callback before this function is called. | |
| 144 | + * | |
| 145 | + * For input pads, this should check the properties of the link, and update | |
| 146 | + * the filter's internal state as necessary. | |
| 147 | + * | |
| 148 | + * For both input and output filters, this should return zero on success, | |
| 149 | + * and another value on error. | |
| 150 | + */ | |
| 151 | + int (*config_props)(AVFilterLink *link); | |
| 152 | +}; | |
| 153 | +#endif | |
| 154 | + | |
| 29 | 155 | /** default handler for freeing audio/video buffer when there are no references left */ |
| 30 | 156 | void ff_avfilter_default_free_buffer(AVFilterBuffer *buf); |
| 31 | 157 | |
| @@ -59,5 +59,8 @@ · 58 unmodified lines | ||
| 59 | 59 | #ifndef FF_API_FILTERS_PUBLIC |
| 60 | 60 | #define FF_API_FILTERS_PUBLIC (LIBAVFILTER_VERSION_MAJOR < 3) |
| 61 | 61 | #endif |
| 62 | +#ifndef FF_API_AVFILTERPAD_PUBLIC | |
| 63 | +#define FF_API_AVFILTERPAD_PUBLIC (LIBAVFILTER_VERSION_MAJOR < 4) | |
| 64 | +#endif | |
| 62 | 65 | |
| 63 | 66 | #endif // AVFILTER_VERSION_H |
| @@ -25,6 +25,7 @@ · 24 unmodified lines | ||
| 25 | 25 | |
| 26 | 26 | #include "libavutil/mathematics.h" |
| 27 | 27 | #include "avfilter.h" |
| 28 | +#include "internal.h" | |
| 28 | 29 | #include "video.h" |
| 29 | 30 | |
| 30 | 31 | typedef struct { |
| @@ -29,6 +29,7 @@ · 28 unmodified lines | ||
| 29 | 29 | |
| 30 | 30 | #include "avfilter.h" |
| 31 | 31 | #include "formats.h" |
| 32 | +#include "internal.h" | |
| 32 | 33 | #include "video.h" |
| 33 | 34 | |
| 34 | 35 | typedef struct { |
| @@ -30,6 +30,7 @@ · 29 unmodified lines | ||
| 30 | 30 | #include "libavutil/pixdesc.h" |
| 31 | 31 | #include "avfilter.h" |
| 32 | 32 | #include "formats.h" |
| 33 | +#include "internal.h" | |
| 33 | 34 | #include "video.h" |
| 34 | 35 | |
| 35 | 36 | static const char *const var_names[] = { |
| @@ -22,6 +22,7 @@ · 21 unmodified lines | ||
| 22 | 22 | */ |
| 23 | 23 | |
| 24 | 24 | #include "avfilter.h" |
| 25 | +#include "internal.h" | |
| 25 | 26 | #include "video.h" |
| 26 | 27 | |
| 27 | 28 | AVFilter avfilter_vf_copy = { |
| @@ -27,6 +27,7 @@ · 26 unmodified lines | ||
| 27 | 27 | |
| 28 | 28 | #include "avfilter.h" |
| 29 | 29 | #include "formats.h" |
| 30 | +#include "internal.h" | |
| 30 | 31 | #include "video.h" |
| 31 | 32 | #include "libavutil/eval.h" |
| 32 | 33 | #include "libavutil/avstring.h" |
| @@ -26,6 +26,7 @@ · 25 unmodified lines | ||
| 26 | 26 | #include "libavutil/imgutils.h" |
| 27 | 27 | #include "avfilter.h" |
| 28 | 28 | #include "formats.h" |
| 29 | +#include "internal.h" | |
| 29 | 30 | #include "video.h" |
| 30 | 31 | |
| 31 | 32 | typedef struct { |
| @@ -30,6 +30,7 @@ · 29 unmodified lines | ||
| 30 | 30 | #include "libavutil/pixdesc.h" |
| 31 | 31 | #include "avfilter.h" |
| 32 | 32 | #include "formats.h" |
| 33 | +#include "internal.h" | |
| 33 | 34 | #include "video.h" |
| 34 | 35 | |
| 35 | 36 | /** |
| @@ -29,6 +29,7 @@ · 28 unmodified lines | ||
| 29 | 29 | #include "libavutil/parseutils.h" |
| 30 | 30 | #include "avfilter.h" |
| 31 | 31 | #include "formats.h" |
| 32 | +#include "internal.h" | |
| 32 | 33 | #include "video.h" |
| 33 | 34 | |
| 34 | 35 | enum { Y, U, V, A }; |
| @@ -42,6 +42,7 @@ · 41 unmodified lines | ||
| 42 | 42 | #include "avfilter.h" |
| 43 | 43 | #include "drawutils.h" |
| 44 | 44 | #include "formats.h" |
| 45 | +#include "internal.h" | |
| 45 | 46 | #include "video.h" |
| 46 | 47 | |
| 47 | 48 | #undef time |
| @@ -28,6 +28,7 @@ · 27 unmodified lines | ||
| 28 | 28 | #include "libavutil/pixdesc.h" |
| 29 | 29 | #include "avfilter.h" |
| 30 | 30 | #include "formats.h" |
| 31 | +#include "internal.h" | |
| 31 | 32 | #include "video.h" |
| 32 | 33 | |
| 33 | 34 | typedef struct { |
| @@ -29,6 +29,7 @@ · 28 unmodified lines | ||
| 29 | 29 | #include "libavutil/pixdesc.h" |
| 30 | 30 | #include "avfilter.h" |
| 31 | 31 | #include "formats.h" |
| 32 | +#include "internal.h" | |
| 32 | 33 | #include "video.h" |
| 33 | 34 | |
| 34 | 35 | typedef struct |
| @@ -26,6 +26,7 @@ · 25 unmodified lines | ||
| 26 | 26 | #include "libavutil/pixdesc.h" |
| 27 | 27 | #include "avfilter.h" |
| 28 | 28 | #include "formats.h" |
| 29 | +#include "internal.h" | |
| 29 | 30 | #include "video.h" |
| 30 | 31 | |
| 31 | 32 | typedef struct { |
| @@ -32,6 +32,7 @@ · 31 unmodified lines | ||
| 32 | 32 | #include "libavutil/parseutils.h" |
| 33 | 33 | #include "avfilter.h" |
| 34 | 34 | #include "formats.h" |
| 35 | +#include "internal.h" | |
| 35 | 36 | #include "video.h" |
| 36 | 37 | |
| 37 | 38 | typedef f0r_instance_t (*f0r_construct_f)(unsigned int width, unsigned int height); |
| @@ -38,6 +38,7 @@ · 37 unmodified lines | ||
| 38 | 38 | #include "avfilter.h" |
| 39 | 39 | #include "formats.h" |
| 40 | 40 | #include "gradfun.h" |
| 41 | +#include "internal.h" | |
| 41 | 42 | #include "video.h" |
| 42 | 43 | |
| 43 | 44 | DECLARE_ALIGNED(16, static const uint16_t, dither)[8][8] = { |
| @@ -26,6 +26,7 @@ · 25 unmodified lines | ||
| 26 | 26 | |
| 27 | 27 | #include "avfilter.h" |
| 28 | 28 | #include "formats.h" |
| 29 | +#include "internal.h" | |
| 29 | 30 | #include "video.h" |
| 30 | 31 | #include "libavutil/pixdesc.h" |
| 31 | 32 | #include "libavutil/intreadwrite.h" |
| @@ -28,6 +28,7 @@ · 27 unmodified lines | ||
| 28 | 28 | #include "libavutil/pixdesc.h" |
| 29 | 29 | #include "avfilter.h" |
| 30 | 30 | #include "formats.h" |
| 31 | +#include "internal.h" | |
| 31 | 32 | #include "video.h" |
| 32 | 33 | |
| 33 | 34 | typedef struct { |
| @@ -22,6 +22,7 @@ · 21 unmodified lines | ||
| 22 | 22 | */ |
| 23 | 23 | |
| 24 | 24 | #include "avfilter.h" |
| 25 | +#include "internal.h" | |
| 25 | 26 | #include "video.h" |
| 26 | 27 | |
| 27 | 28 | AVFilter avfilter_vf_null = { |
| @@ -26,6 +26,7 @@ · 25 unmodified lines | ||
| 26 | 26 | |
| 27 | 27 | #include "avfilter.h" |
| 28 | 28 | #include "formats.h" |
| 29 | +#include "internal.h" | |
| 29 | 30 | #include "video.h" |
| 30 | 31 | #include "libavutil/avstring.h" |
| 31 | 32 | #include "libavutil/eval.h" |
| @@ -25,6 +25,7 @@ · 24 unmodified lines | ||
| 25 | 25 | |
| 26 | 26 | #include "libavutil/pixdesc.h" |
| 27 | 27 | #include "avfilter.h" |
| 28 | +#include "internal.h" | |
| 28 | 29 | #include "video.h" |
| 29 | 30 | |
| 30 | 31 | typedef struct { |
| @@ -25,6 +25,7 @@ · 24 unmodified lines | ||
| 25 | 25 | |
| 26 | 26 | #include "avfilter.h" |
| 27 | 27 | #include "formats.h" |
| 28 | +#include "internal.h" | |
| 28 | 29 | #include "video.h" |
| 29 | 30 | #include "libavutil/avstring.h" |
| 30 | 31 | #include "libavutil/eval.h" |
| @@ -29,6 +29,7 @@ · 28 unmodified lines | ||
| 29 | 29 | #include "libavutil/eval.h" |
| 30 | 30 | #include "libavutil/mathematics.h" |
| 31 | 31 | #include "avfilter.h" |
| 32 | +#include "internal.h" | |
| 32 | 33 | #include "video.h" |
| 33 | 34 | |
| 34 | 35 | static const char *const var_names[] = { |
| @@ -26,6 +26,7 @@ · 25 unmodified lines | ||
| 26 | 26 | #include "libavutil/imgutils.h" |
| 27 | 27 | #include "libavutil/pixdesc.h" |
| 28 | 28 | #include "avfilter.h" |
| 29 | +#include "internal.h" | |
| 29 | 30 | #include "video.h" |
| 30 | 31 | |
| 31 | 32 | typedef struct { |
| @@ -24,6 +24,7 @@ · 23 unmodified lines | ||
| 24 | 24 | */ |
| 25 | 25 | |
| 26 | 26 | #include "avfilter.h" |
| 27 | +#include "internal.h" | |
| 27 | 28 | #include "video.h" |
| 28 | 29 | #include "libavutil/pixdesc.h" |
| 29 | 30 | |
| @@ -30,6 +30,7 @@ · 29 unmodified lines | ||
| 30 | 30 | #include "libavutil/imgutils.h" |
| 31 | 31 | #include "avfilter.h" |
| 32 | 32 | #include "formats.h" |
| 33 | +#include "internal.h" | |
| 33 | 34 | #include "video.h" |
| 34 | 35 | |
| 35 | 36 | typedef struct { |
| @@ -38,6 +38,7 @@ · 37 unmodified lines | ||
| 38 | 38 | |
| 39 | 39 | #include "avfilter.h" |
| 40 | 40 | #include "formats.h" |
| 41 | +#include "internal.h" | |
| 41 | 42 | #include "video.h" |
| 42 | 43 | #include "libavutil/common.h" |
| 43 | 44 | #include "libavutil/mem.h" |
| @@ -25,6 +25,7 @@ · 24 unmodified lines | ||
| 25 | 25 | |
| 26 | 26 | #include "libavutil/pixdesc.h" |
| 27 | 27 | #include "avfilter.h" |
| 28 | +#include "internal.h" | |
| 28 | 29 | #include "video.h" |
| 29 | 30 | |
| 30 | 31 | typedef struct { |
| @@ -17,6 +17,7 @@ · 16 unmodified lines | ||
| 17 | 17 | */ |
| 18 | 18 | |
| 19 | 19 | #include "avfilter.h" |
| 20 | +#include "internal.h" | |
| 20 | 21 | |
| 21 | 22 | static void start_frame(AVFilterLink *link, AVFilterBufferRef *picref) |
| 22 | 23 | { |
| @@ -25,6 +25,7 @@ · 24 unmodified lines | ||
| 25 | 25 | |
| 26 | 26 | #include "avfilter.h" |
| 27 | 27 | #include "formats.h" |
| 28 | +#include "internal.h" | |
| 28 | 29 | #include "video.h" |
| 29 | 30 | #include "libavutil/pixdesc.h" |
| 30 | 31 | #include "libavutil/colorspace.h" |
| @@ -37,6 +37,7 @@ · 36 unmodified lines | ||
| 37 | 37 | #include "libavformat/avformat.h" |
| 38 | 38 | #include "avfilter.h" |
| 39 | 39 | #include "formats.h" |
| 40 | +#include "internal.h" | |
| 40 | 41 | #include "video.h" |
| 41 | 42 | |
| 42 | 43 | typedef struct { |
| @@ -27,6 +27,7 @@ · 26 unmodified lines | ||
| 27 | 27 | #include "libavutil/parseutils.h" |
| 28 | 28 | #include "avfilter.h" |
| 29 | 29 | #include "formats.h" |
| 30 | +#include "internal.h" | |
| 30 | 31 | |
| 31 | 32 | static const char *const var_names[] = { |
| 32 | 33 | "E", |
| @@ -38,6 +38,7 @@ · 37 unmodified lines | ||
| 38 | 38 | #include "libavutil/parseutils.h" |
| 39 | 39 | #include "avfilter.h" |
| 40 | 40 | #include "formats.h" |
| 41 | +#include "internal.h" | |
| 41 | 42 | #include "video.h" |
| 42 | 43 | |
| 43 | 44 | typedef struct { |