Go to the documentation of this file.
19 #ifndef AVFILTER_DRAWUTILS_H
20 #define AVFILTER_DRAWUTILS_H
36 int *is_packed_rgba,
uint8_t rgba_map[4]);
40 int hsub,
int vsub,
int x,
int y,
int w,
int h);
43 uint8_t *
src[4],
int src_linesize[4],
int pixelstep[4],
44 int hsub,
int vsub,
int x,
int y,
int y2,
int w,
int h);
74 #define FF_DRAW_PROCESS_ALPHA 1
97 uint8_t *dst[],
int dst_linesize[],
99 int dst_x,
int dst_y,
int src_x,
int src_y,
109 uint8_t *dst[],
int dst_linesize[],
110 int dst_x,
int dst_y,
int w,
int h);
116 uint8_t *dst[],
int dst_linesize[],
117 int dst_w,
int dst_h,
118 int x0,
int y0,
int w,
int h);
139 uint8_t *dst[],
int dst_linesize[],
int dst_w,
int dst_h,
140 const uint8_t *
mask,
int mask_linesize,
int mask_w,
int mask_h,
141 int l2depth,
unsigned endianness,
int x0,
int y0);
AVPixelFormat
Pixel format.
const struct AVPixFmtDescriptor * desc
int ff_fill_rgba_map(uint8_t *rgba_map, enum AVPixelFormat pix_fmt)
void ff_blend_mask(FFDrawContext *draw, FFDrawColor *color, uint8_t *dst[], int dst_linesize[], int dst_w, int dst_h, const uint8_t *mask, int mask_linesize, int mask_w, int mask_h, int l2depth, unsigned endianness, int x0, int y0)
Blend an alpha mask with an uniform color.
void ff_draw_color(FFDrawContext *draw, FFDrawColor *color, const uint8_t rgba[4])
Prepare a color.
void ff_blend_rectangle(FFDrawContext *draw, FFDrawColor *color, uint8_t *dst[], int dst_linesize[], int dst_w, int dst_h, int x0, int y0, int w, int h)
Blend a rectangle with an uniform color.
int pixelstep[MAX_PLANES]
int ff_draw_init(FFDrawContext *draw, enum AVPixelFormat format, unsigned flags)
Init a draw context.
static const uint16_t mask[17]
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
void ff_fill_rectangle(FFDrawContext *draw, FFDrawColor *color, uint8_t *dst[], int dst_linesize[], int dst_x, int dst_y, int w, int h)
Fill a rectangle with an uniform color.
static enum AVPixelFormat pix_fmt
void ff_draw_rectangle(uint8_t *dst[4], int dst_linesize[4], uint8_t *src[4], int pixelstep[4], int hsub, int vsub, int x, int y, int w, int h)
void ff_copy_rectangle(uint8_t *dst[4], int dst_linesize[4], uint8_t *src[4], int src_linesize[4], int pixelstep[4], int hsub, int vsub, int x, int y, int y2, int w, int h)
void ff_copy_rectangle2(FFDrawContext *draw, uint8_t *dst[], int dst_linesize[], uint8_t *src[], int src_linesize[], int dst_x, int dst_y, int src_x, int src_y, int w, int h)
Copy a rectangle from an image to another.
union FFDrawColor::@215 comp[MAX_PLANES]
enum AVPixelFormat format
uint8_t comp_mask[MAX_PLANES]
int ff_draw_round_to_sub(FFDrawContext *draw, int sub_dir, int round_dir, int value)
Round a dimension according to subsampling.
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default value
AVFilterFormats * ff_draw_supported_pixel_formats(unsigned flags)
Return the list of pixel formats supported by the draw functions.
Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes...
int ff_fill_line_with_color(uint8_t *line[4], int pixel_step[4], int w, uint8_t dst_color[4], enum AVPixelFormat pix_fmt, uint8_t rgba_color[4], int *is_packed_rgba, uint8_t rgba_map[4])
#define flags(name, subs,...)