FFmpeg
Loading...
Searching...
No Matches
drawutils.h File Reference

misc drawing utilities More...

#include <stdint.h>
#include "avfilter.h"
#include "libavutil/pixfmt.h"

Go to the source code of this file.

Data Structures

struct  FFDrawContext
 
struct  FFDrawColor
 

Macros

#define MAX_PLANES   4
 
#define FF_DRAW_PROCESS_ALPHA   1
 Process alpha pixel component.
 

Functions

int ff_fill_rgba_map (uint8_t *rgba_map, enum AVPixelFormat pix_fmt)
 
int ff_fill_ayuv_map (uint8_t *ayuv_map, enum AVPixelFormat pix_fmt)
 
int ff_draw_init2 (FFDrawContext *draw, enum AVPixelFormat format, enum AVColorSpace csp, enum AVColorRange range, enum AVAlphaMode alpha, unsigned flags)
 Init a draw context.
 
int ff_draw_init_from_link (FFDrawContext *draw, const AVFilterLink *link, unsigned flags)
 Init a draw context, taking the format, colorspace and range from the given filter link.
 
int ff_draw_init (FFDrawContext *draw, enum AVPixelFormat format, unsigned flags)
 
void ff_draw_color (FFDrawContext *draw, FFDrawColor *color, const uint8_t rgba[4])
 Prepare a color.
 
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.
 
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.
 
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.
 
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.
 
int ff_draw_round_to_sub (FFDrawContext *draw, int sub_dir, int round_dir, int value)
 Round a dimension according to subsampling.
 
AVFilterFormatsff_draw_supported_pixel_formats (unsigned flags)
 Return the list of pixel formats supported by the draw functions.
 

Detailed Description

misc drawing utilities

Definition in file drawutils.h.

Macro Definition Documentation

◆ MAX_PLANES

#define MAX_PLANES   4

Definition at line 34 of file drawutils.h.

◆ FF_DRAW_PROCESS_ALPHA

#define FF_DRAW_PROCESS_ALPHA   1

Process alpha pixel component.

Definition at line 64 of file drawutils.h.

Referenced by config_input(), config_input(), ff_blend_mask(), ff_blend_rectangle(), qrencode_config_input(), and qrencodesrc_config_props().

Function Documentation

◆ ff_fill_rgba_map()

◆ ff_fill_ayuv_map()

int ff_fill_ayuv_map ( uint8_t * ayuv_map,
enum AVPixelFormat pix_fmt )

Definition at line 88 of file drawutils.c.

◆ ff_draw_init2()

int ff_draw_init2 ( FFDrawContext * draw,
enum AVPixelFormat format,
enum AVColorSpace csp,
enum AVColorRange range,
enum AVAlphaMode alpha,
unsigned flags )

Init a draw context.

Only a limited number of pixel formats are supported, if format is not supported the function will return an error.

Parameters
formatpixel format of the frames that will be drawn onto
cspcolor space of the frames that will be drawn onto, defaulting to BT601 or RGB depending on the specified format when AVCOL_SPC_UNSPECIFIED is passed.
rangesample value range of the frames that will be drawn onto, defaulting to TV-range unless using a legacy J format when AVCOL_RANGE_UNSPECIFIED is passed.
flagscombination of FF_DRAW_* flags.
Returns
0 for success, < 0 for error

Definition at line 96 of file drawutils.c.

Referenced by config_input(), ff_draw_init(), and ff_draw_init_from_link().

◆ ff_draw_init_from_link()

int ff_draw_init_from_link ( FFDrawContext * draw,
const AVFilterLink * link,
unsigned flags )

Init a draw context, taking the format, colorspace and range from the given filter link.

Definition at line 168 of file drawutils.c.

Referenced by config_input(), config_input(), config_input(), config_input(), config_out_props(), config_output(), config_output(), config_props(), config_props(), config_props(), qrencode_config_input(), and qrencodesrc_config_props().

◆ ff_draw_init()

◆ ff_draw_color()

void ff_draw_color ( FFDrawContext * draw,
FFDrawColor * color,
const uint8_t rgba[4] )

◆ ff_copy_rectangle2()

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.

The coordinates must be as even as the subsampling requires.

Definition at line 236 of file drawutils.c.

Referenced by filter_frame(), and filter_frame().

◆ ff_fill_rectangle()

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.

The coordinates must be as even as the subsampling requires. The color needs to be inited with ff_draw_color.

Definition at line 258 of file drawutils.c.

Referenced by activate(), config_out_props(), draw_blank_frame(), draw_qrcode(), filter_color2(), filter_frame(), filter_frame(), filter_frame(), filter_frame(), filter_frame(), oscilloscope_filter_frame(), pixscope_filter_frame(), process_frame(), and video_frame().

◆ ff_blend_rectangle()

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.

Definition at line 378 of file drawutils.c.

Referenced by draw_qrcode(), draw_text(), oscilloscope_filter_frame(), and pixscope_filter_frame().

◆ ff_blend_mask()

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.

Parameters
drawdraw context
colorcolor for the overlay;
dstdestination image
dst_linesizeline stride of the destination
dst_wwidth of the destination image
dst_hheight of the destination image
maskmask
mask_linesizeline stride of the mask
mask_wwidth of the mask
mask_hheight of the mask
l2depthlog2 of depth of the mask (0 for 1bpp, 3 for 8bpp)
endiannessbit order of the mask (0: MSB to the left)
x0horizontal position of the overlay
y0vertical position of the overlay

Definition at line 557 of file drawutils.c.

Referenced by draw_glyphs(), draw_qrcode(), draw_text(), draw_text(), and overlay_ass_image().

◆ ff_draw_round_to_sub()

int ff_draw_round_to_sub ( FFDrawContext * draw,
int sub_dir,
int round_dir,
int value )

Round a dimension according to subsampling.

Parameters
drawdraw context
sub_dir0 for horizontal, 1 for vertical
round_dir0 nearest, -1 round down, +1 round up
valuevalue to round
Returns
the rounded value

Definition at line 658 of file drawutils.c.

Referenced by config_input().

◆ ff_draw_supported_pixel_formats()

AVFilterFormats * ff_draw_supported_pixel_formats ( unsigned flags)

Return the list of pixel formats supported by the draw functions.

The flags are the same as ff_draw_init, i.e., none currently.

Definition at line 670 of file drawutils.c.

Referenced by qrencode_query_formats(), query_formats(), query_formats(), query_formats(), query_formats(), query_formats(), query_formats(), query_formats(), and query_formats().