FFmpeg
Data Structures | Macros | Enumerations | Functions | Variables
vf_overlay.c File Reference

overlay one video on top of another More...

#include "avfilter.h"
#include "formats.h"
#include "libavutil/common.h"
#include "libavutil/eval.h"
#include "libavutil/avstring.h"
#include "libavutil/pixdesc.h"
#include "libavutil/imgutils.h"
#include "libavutil/mathematics.h"
#include "libavutil/opt.h"
#include "libavutil/timestamp.h"
#include "internal.h"
#include "drawutils.h"
#include "framesync.h"
#include "video.h"
#include "vf_overlay.h"

Go to the source code of this file.

Data Structures

struct  ThreadData
 Used for passing data between threads. More...
 

Macros

#define MAIN   0
 
#define OVERLAY   1
 
#define R   0
 
#define G   1
 
#define B   2
 
#define A   3
 
#define Y   0
 
#define U   1
 
#define V   2
 
#define FAST_DIV255(x)   ((((x) + 128) * 257) >> 16)
 
#define UNPREMULTIPLY_ALPHA(x, y)   ((((x) << 16) - ((x) << 9) + (x)) / ((((x) + (y)) << 8) - ((x) + (y)) - (y) * (x)))
 
#define OFFSET(x)   offsetof(OverlayContext, x)
 
#define FLAGS   AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_FILTERING_PARAM
 

Enumerations

enum  EvalMode {
  EVAL_MODE_ONCE, EVAL_MODE_FRAME, EVAL_MODE_NB, EVAL_MODE_INIT,
  EVAL_MODE_FRAME, EVAL_MODE_NB, EVAL_MODE_INIT, EVAL_MODE_FRAME,
  EVAL_MODE_NB, EVAL_MODE_INIT, EVAL_MODE_FRAME, EVAL_MODE_NB,
  EVAL_MODE_INIT, EVAL_MODE_FRAME, EVAL_MODE_NB, EVAL_MODE_INIT,
  EVAL_MODE_FRAME, EVAL_MODE_NB, EVAL_MODE_INIT, EVAL_MODE_FRAME,
  EVAL_MODE_NB
}
 

Functions

static av_cold void uninit (AVFilterContext *ctx)
 
static int normalize_xy (double d, int chroma_sub)
 
static void eval_expr (AVFilterContext *ctx)
 
static int set_expr (AVExpr **pexpr, const char *expr, const char *option, void *log_ctx)
 
static int process_command (AVFilterContext *ctx, const char *cmd, const char *args, char *res, int res_len, int flags)
 
static int query_formats (AVFilterContext *ctx)
 
static int config_input_overlay (AVFilterLink *inlink)
 
static int config_output (AVFilterLink *outlink)
 
static av_always_inline void blend_slice_packed_rgb (AVFilterContext *ctx, AVFrame *dst, const AVFrame *src, int main_has_alpha, int x, int y, int is_straight, int jobnr, int nb_jobs)
 Blend image in src to destination buffer dst at position (x, y). More...
 
static av_always_inline void blend_plane (AVFilterContext *ctx, AVFrame *dst, const AVFrame *src, int src_w, int src_h, int dst_w, int dst_h, int i, int hsub, int vsub, int x, int y, int main_has_alpha, int dst_plane, int dst_offset, int dst_step, int straight, int yuv, int jobnr, int nb_jobs)
 
static void alpha_composite (const AVFrame *src, const AVFrame *dst, int src_w, int src_h, int dst_w, int dst_h, int x, int y, int jobnr, int nb_jobs)
 
static av_always_inline void blend_slice_yuv (AVFilterContext *ctx, AVFrame *dst, const AVFrame *src, int hsub, int vsub, int main_has_alpha, int x, int y, int is_straight, int jobnr, int nb_jobs)
 
static av_always_inline void blend_slice_planar_rgb (AVFilterContext *ctx, AVFrame *dst, const AVFrame *src, int hsub, int vsub, int main_has_alpha, int x, int y, int is_straight, int jobnr, int nb_jobs)
 
static int blend_slice_yuv420 (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int blend_slice_yuva420 (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int blend_slice_yuv422 (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int blend_slice_yuva422 (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int blend_slice_yuv444 (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int blend_slice_yuva444 (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int blend_slice_gbrp (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int blend_slice_gbrap (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int blend_slice_yuv420_pm (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int blend_slice_yuva420_pm (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int blend_slice_yuv422_pm (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int blend_slice_yuva422_pm (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int blend_slice_yuv444_pm (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int blend_slice_yuva444_pm (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int blend_slice_gbrp_pm (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int blend_slice_gbrap_pm (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int blend_slice_rgb (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int blend_slice_rgba (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int blend_slice_rgb_pm (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int blend_slice_rgba_pm (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int config_input_main (AVFilterLink *inlink)
 
static int do_blend (FFFrameSync *fs)
 
static av_cold int init (AVFilterContext *ctx)
 
static int activate (AVFilterContext *ctx)
 
 FRAMESYNC_DEFINE_CLASS (overlay, OverlayContext, fs)
 

Variables

static const char *const var_names []
 
static enum AVPixelFormat alpha_pix_fmts []
 
static const AVOption overlay_options []
 
static const AVFilterPad avfilter_vf_overlay_inputs []
 
static const AVFilterPad avfilter_vf_overlay_outputs []
 
AVFilter ff_vf_overlay
 

Detailed Description

overlay one video on top of another

Definition in file vf_overlay.c.

Macro Definition Documentation

#define MAIN   0

Definition at line 63 of file vf_overlay.c.

Referenced by config_input_overlay(), config_output(), and query_formats().

#define OVERLAY   1

Definition at line 64 of file vf_overlay.c.

Referenced by config_input_overlay(), and query_formats().

#define R   0

Definition at line 66 of file vf_overlay.c.

Referenced by blend_slice_packed_rgb().

#define G   1

Definition at line 67 of file vf_overlay.c.

Referenced by blend_slice_packed_rgb().

#define B   2

Definition at line 68 of file vf_overlay.c.

Referenced by blend_slice_packed_rgb().

#define A   3

Definition at line 69 of file vf_overlay.c.

Referenced by blend_slice_packed_rgb().

#define Y   0

Definition at line 71 of file vf_overlay.c.

#define U   1

Definition at line 72 of file vf_overlay.c.

#define V   2

Definition at line 73 of file vf_overlay.c.

#define FAST_DIV255 (   x)    ((((x) + 128) * 257) >> 16)

Definition at line 345 of file vf_overlay.c.

Referenced by alpha_composite(), blend_plane(), and blend_slice_packed_rgb().

#define UNPREMULTIPLY_ALPHA (   x,
 
)    ((((x) << 16) - ((x) << 9) + (x)) / ((((x) + (y)) << 8) - ((x) + (y)) - (y) * (x)))

Definition at line 351 of file vf_overlay.c.

Referenced by alpha_composite(), blend_plane(), and blend_slice_packed_rgb().

#define OFFSET (   x)    offsetof(OverlayContext, x)

Definition at line 990 of file vf_overlay.c.

Definition at line 991 of file vf_overlay.c.

Enumeration Type Documentation

enum EvalMode
Enumerator
EVAL_MODE_ONCE 
EVAL_MODE_FRAME 
EVAL_MODE_NB 
EVAL_MODE_INIT 
EVAL_MODE_FRAME 
EVAL_MODE_NB 
EVAL_MODE_INIT 
EVAL_MODE_FRAME 
EVAL_MODE_NB 
EVAL_MODE_INIT 
EVAL_MODE_FRAME 
EVAL_MODE_NB 
EVAL_MODE_INIT 
EVAL_MODE_FRAME 
EVAL_MODE_NB 
EVAL_MODE_INIT 
EVAL_MODE_FRAME 
EVAL_MODE_NB 
EVAL_MODE_INIT 
EVAL_MODE_FRAME 
EVAL_MODE_NB 

Definition at line 75 of file vf_overlay.c.

Function Documentation

static av_cold void uninit ( AVFilterContext ctx)
static

Definition at line 81 of file vf_overlay.c.

static int normalize_xy ( double  d,
int  chroma_sub 
)
inlinestatic

Definition at line 90 of file vf_overlay.c.

Referenced by eval_expr().

static void eval_expr ( AVFilterContext ctx)
static

Definition at line 97 of file vf_overlay.c.

Referenced by config_input_overlay(), do_blend(), and process_command().

static int set_expr ( AVExpr **  pexpr,
const char *  expr,
const char *  option,
void log_ctx 
)
static

Definition at line 109 of file vf_overlay.c.

Referenced by config_input_overlay(), and process_command().

static int process_command ( AVFilterContext ctx,
const char *  cmd,
const char *  args,
char *  res,
int  res_len,
int  flags 
)
static

Definition at line 130 of file vf_overlay.c.

static int query_formats ( AVFilterContext ctx)
static

Definition at line 161 of file vf_overlay.c.

static int config_input_overlay ( AVFilterLink inlink)
static

Definition at line 280 of file vf_overlay.c.

static int config_output ( AVFilterLink outlink)
static

Definition at line 327 of file vf_overlay.c.

static av_always_inline void blend_slice_packed_rgb ( AVFilterContext ctx,
AVFrame dst,
const AVFrame src,
int  main_has_alpha,
int  x,
int  y,
int  is_straight,
int  jobnr,
int  nb_jobs 
)
static

Blend image in src to destination buffer dst at position (x, y).

< the amount of overlay to blend on to main

Definition at line 357 of file vf_overlay.c.

Referenced by blend_slice_rgb(), blend_slice_rgb_pm(), blend_slice_rgba(), and blend_slice_rgba_pm().

static av_always_inline void blend_plane ( AVFilterContext ctx,
AVFrame dst,
const AVFrame src,
int  src_w,
int  src_h,
int  dst_w,
int  dst_h,
int  i,
int  hsub,
int  vsub,
int  x,
int  y,
int  main_has_alpha,
int  dst_plane,
int  dst_offset,
int  dst_step,
int  straight,
int  yuv,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 444 of file vf_overlay.c.

Referenced by blend_slice_planar_rgb(), and blend_slice_yuv().

static void alpha_composite ( const AVFrame src,
const AVFrame dst,
int  src_w,
int  src_h,
int  dst_w,
int  dst_h,
int  x,
int  y,
int  jobnr,
int  nb_jobs 
)
inlinestatic

< the amount of overlay to blend on to main

Definition at line 553 of file vf_overlay.c.

Referenced by blend_slice_planar_rgb(), and blend_slice_yuv().

static av_always_inline void blend_slice_yuv ( AVFilterContext ctx,
AVFrame dst,
const AVFrame src,
int  hsub,
int  vsub,
int  main_has_alpha,
int  x,
int  y,
int  is_straight,
int  jobnr,
int  nb_jobs 
)
static
static av_always_inline void blend_slice_planar_rgb ( AVFilterContext ctx,
AVFrame dst,
const AVFrame src,
int  hsub,
int  vsub,
int  main_has_alpha,
int  x,
int  y,
int  is_straight,
int  jobnr,
int  nb_jobs 
)
static
static int blend_slice_yuv420 ( AVFilterContext ctx,
void arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 658 of file vf_overlay.c.

Referenced by config_input_main().

static int blend_slice_yuva420 ( AVFilterContext ctx,
void arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 666 of file vf_overlay.c.

Referenced by config_input_main().

static int blend_slice_yuv422 ( AVFilterContext ctx,
void arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 674 of file vf_overlay.c.

Referenced by config_input_main().

static int blend_slice_yuva422 ( AVFilterContext ctx,
void arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 682 of file vf_overlay.c.

Referenced by config_input_main().

static int blend_slice_yuv444 ( AVFilterContext ctx,
void arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 690 of file vf_overlay.c.

Referenced by config_input_main().

static int blend_slice_yuva444 ( AVFilterContext ctx,
void arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 698 of file vf_overlay.c.

Referenced by config_input_main().

static int blend_slice_gbrp ( AVFilterContext ctx,
void arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 706 of file vf_overlay.c.

Referenced by config_input_main().

static int blend_slice_gbrap ( AVFilterContext ctx,
void arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 714 of file vf_overlay.c.

Referenced by config_input_main().

static int blend_slice_yuv420_pm ( AVFilterContext ctx,
void arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 722 of file vf_overlay.c.

Referenced by config_input_main().

static int blend_slice_yuva420_pm ( AVFilterContext ctx,
void arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 730 of file vf_overlay.c.

Referenced by config_input_main().

static int blend_slice_yuv422_pm ( AVFilterContext ctx,
void arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 738 of file vf_overlay.c.

Referenced by config_input_main().

static int blend_slice_yuva422_pm ( AVFilterContext ctx,
void arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 746 of file vf_overlay.c.

Referenced by config_input_main().

static int blend_slice_yuv444_pm ( AVFilterContext ctx,
void arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 754 of file vf_overlay.c.

Referenced by config_input_main().

static int blend_slice_yuva444_pm ( AVFilterContext ctx,
void arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 762 of file vf_overlay.c.

Referenced by config_input_main().

static int blend_slice_gbrp_pm ( AVFilterContext ctx,
void arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 770 of file vf_overlay.c.

Referenced by config_input_main().

static int blend_slice_gbrap_pm ( AVFilterContext ctx,
void arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 778 of file vf_overlay.c.

Referenced by config_input_main().

static int blend_slice_rgb ( AVFilterContext ctx,
void arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 786 of file vf_overlay.c.

Referenced by config_input_main().

static int blend_slice_rgba ( AVFilterContext ctx,
void arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 794 of file vf_overlay.c.

Referenced by config_input_main().

static int blend_slice_rgb_pm ( AVFilterContext ctx,
void arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 802 of file vf_overlay.c.

Referenced by config_input_main().

static int blend_slice_rgba_pm ( AVFilterContext ctx,
void arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 810 of file vf_overlay.c.

Referenced by config_input_main().

static int config_input_main ( AVFilterLink inlink)
static

Definition at line 818 of file vf_overlay.c.

static int do_blend ( FFFrameSync fs)
static

Definition at line 930 of file vf_overlay.c.

Referenced by init().

static av_cold int init ( AVFilterContext ctx)
static

Definition at line 976 of file vf_overlay.c.

static int activate ( AVFilterContext ctx)
static

Definition at line 984 of file vf_overlay.c.

FRAMESYNC_DEFINE_CLASS ( overlay  ,
OverlayContext  ,
fs   
)

Variable Documentation

const char* const var_names[]
static
Initial value:
= {
"main_w", "W",
"main_h", "H",
"overlay_w", "w",
"overlay_h", "h",
"hsub",
"vsub",
"x",
"y",
"n",
"pos",
"t",
}
#define NULL
Definition: coverity.c:32

Definition at line 48 of file vf_overlay.c.

Referenced by set_expr().

enum AVPixelFormat alpha_pix_fmts[]
static
Initial value:
= {
}
planar YUV 4:2:0, 20bpp, (1 Cr & Cb sample per 2x2 Y & A samples)
Definition: pixfmt.h:101
packed ABGR 8:8:8:8, 32bpp, ABGRABGR...
Definition: pixfmt.h:94
planar YUV 4:2:2 24bpp, (1 Cr & Cb sample per 2x1 Y & A samples)
Definition: pixfmt.h:176
packed BGRA 8:8:8:8, 32bpp, BGRABGRA...
Definition: pixfmt.h:95
packed ARGB 8:8:8:8, 32bpp, ARGBARGB...
Definition: pixfmt.h:92
packed RGBA 8:8:8:8, 32bpp, RGBARGBA...
Definition: pixfmt.h:93
planar YUV 4:4:4 32bpp, (1 Cr & Cb sample per 1x1 Y & A samples)
Definition: pixfmt.h:177
planar GBRA 4:4:4:4 32bpp
Definition: pixfmt.h:215

Definition at line 155 of file vf_overlay.c.

Referenced by config_input_main(), config_input_overlay(), and query_formats().

const AVOption overlay_options[]
static
Initial value:
= {
{ "x", "set the x expression", OFFSET(x_expr), AV_OPT_TYPE_STRING, {.str = "0"}, CHAR_MIN, CHAR_MAX, FLAGS },
{ "y", "set the y expression", OFFSET(y_expr), AV_OPT_TYPE_STRING, {.str = "0"}, CHAR_MIN, CHAR_MAX, FLAGS },
{ "eof_action", "Action to take when encountering EOF from secondary input ",
OFFSET(fs.opt_eof_action), AV_OPT_TYPE_INT, { .i64 = EOF_ACTION_REPEAT },
EOF_ACTION_REPEAT, EOF_ACTION_PASS, .flags = FLAGS, "eof_action" },
{ "repeat", "Repeat the previous frame.", 0, AV_OPT_TYPE_CONST, { .i64 = EOF_ACTION_REPEAT }, .flags = FLAGS, "eof_action" },
{ "endall", "End both streams.", 0, AV_OPT_TYPE_CONST, { .i64 = EOF_ACTION_ENDALL }, .flags = FLAGS, "eof_action" },
{ "pass", "Pass through the main input.", 0, AV_OPT_TYPE_CONST, { .i64 = EOF_ACTION_PASS }, .flags = FLAGS, "eof_action" },
{ "eval", "specify when to evaluate expressions", OFFSET(eval_mode), AV_OPT_TYPE_INT, {.i64 = EVAL_MODE_FRAME}, 0, EVAL_MODE_NB-1, FLAGS, "eval" },
{ "init", "eval expressions once during initialization", 0, AV_OPT_TYPE_CONST, {.i64=EVAL_MODE_INIT}, .flags = FLAGS, .unit = "eval" },
{ "frame", "eval expressions per-frame", 0, AV_OPT_TYPE_CONST, {.i64=EVAL_MODE_FRAME}, .flags = FLAGS, .unit = "eval" },
{ "shortest", "force termination when the shortest input terminates", OFFSET(fs.opt_shortest), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, FLAGS },
{ "format", "set output format", OFFSET(format), AV_OPT_TYPE_INT, {.i64=OVERLAY_FORMAT_YUV420}, 0, OVERLAY_FORMAT_NB-1, FLAGS, "format" },
{ "yuv420", "", 0, AV_OPT_TYPE_CONST, {.i64=OVERLAY_FORMAT_YUV420}, .flags = FLAGS, .unit = "format" },
{ "yuv422", "", 0, AV_OPT_TYPE_CONST, {.i64=OVERLAY_FORMAT_YUV422}, .flags = FLAGS, .unit = "format" },
{ "yuv444", "", 0, AV_OPT_TYPE_CONST, {.i64=OVERLAY_FORMAT_YUV444}, .flags = FLAGS, .unit = "format" },
{ "rgb", "", 0, AV_OPT_TYPE_CONST, {.i64=OVERLAY_FORMAT_RGB}, .flags = FLAGS, .unit = "format" },
{ "gbrp", "", 0, AV_OPT_TYPE_CONST, {.i64=OVERLAY_FORMAT_GBRP}, .flags = FLAGS, .unit = "format" },
{ "auto", "", 0, AV_OPT_TYPE_CONST, {.i64=OVERLAY_FORMAT_AUTO}, .flags = FLAGS, .unit = "format" },
{ "repeatlast", "repeat overlay of the last overlay frame", OFFSET(fs.opt_repeatlast), AV_OPT_TYPE_BOOL, {.i64=1}, 0, 1, FLAGS },
{ "alpha", "alpha format", OFFSET(alpha_format), AV_OPT_TYPE_INT, {.i64=0}, 0, 1, FLAGS, "alpha_format" },
{ "straight", "", 0, AV_OPT_TYPE_CONST, {.i64=0}, .flags = FLAGS, .unit = "alpha_format" },
{ "premultiplied", "", 0, AV_OPT_TYPE_CONST, {.i64=1}, .flags = FLAGS, .unit = "alpha_format" },
{ NULL }
}
#define NULL
Definition: coverity.c:32
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample format(the sample packing is implied by the sample format) and sample rate.The lists are not just lists
#define fs(width, name, subs,...)
Definition: cbs_vp9.c:259
#define OFFSET(x)
Definition: vf_overlay.c:990
#define FLAGS
Definition: vf_overlay.c:991

Definition at line 993 of file vf_overlay.c.

const AVFilterPad avfilter_vf_overlay_inputs[]
static
Initial value:
= {
{
.name = "main",
.config_props = config_input_main,
},
{
.name = "overlay",
.config_props = config_input_overlay,
},
{ NULL }
}
#define NULL
Definition: coverity.c:32
static int config_input_overlay(AVFilterLink *inlink)
Definition: vf_overlay.c:280
static int config_input_main(AVFilterLink *inlink)
Definition: vf_overlay.c:818

Definition at line 1022 of file vf_overlay.c.

const AVFilterPad avfilter_vf_overlay_outputs[]
static
Initial value:
= {
{
.name = "default",
.config_props = config_output,
},
{ NULL }
}
#define NULL
Definition: coverity.c:32
static int config_output(AVFilterLink *outlink)
Definition: vf_overlay.c:327

Definition at line 1036 of file vf_overlay.c.

AVFilter ff_vf_overlay
Initial value:
= {
.name = "overlay",
.description = NULL_IF_CONFIG_SMALL("Overlay a video source on top of the input."),
.preinit = overlay_framesync_preinit,
.init = init,
.uninit = uninit,
.priv_size = sizeof(OverlayContext),
.priv_class = &overlay_class,
}
static int activate(AVFilterContext *ctx)
Definition: vf_overlay.c:984
static const AVFilterPad avfilter_vf_overlay_inputs[]
Definition: vf_overlay.c:1022
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:186
#define AVFILTER_FLAG_SLICE_THREADS
The filter supports multithreading by splitting frames into multiple parts and processing them concur...
Definition: avfilter.h:116
static const AVFilterPad avfilter_vf_overlay_outputs[]
Definition: vf_overlay.c:1036
static av_cold int init(AVFilterContext *ctx)
Definition: vf_overlay.c:976
static const AVFilterPad outputs[]
Definition: af_acontrast.c:203
static av_cold void uninit(AVFilterContext *ctx)
Definition: vf_overlay.c:81
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several inputs
static int query_formats(AVFilterContext *ctx)
Definition: vf_overlay.c:161
#define AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL
Same as AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, except that the filter will have its filter_frame() c...
Definition: avfilter.h:133
#define flags(name, subs,...)
Definition: cbs_av1.c:561
static int process_command(AVFilterContext *ctx, const char *cmd, const char *args, char *res, int res_len, int flags)
Definition: vf_overlay.c:130

Definition at line 1045 of file vf_overlay.c.