FFmpeg
Data Structures | Macros | Functions
drawutils.h File Reference
#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. More...
 

Functions

int ff_fill_rgba_map (uint8_t *rgba_map, enum AVPixelFormat pix_fmt)
 
int ff_draw_init (FFDrawContext *draw, enum AVPixelFormat format, unsigned flags)
 Init a draw context. More...
 
void ff_draw_color (FFDrawContext *draw, FFDrawColor *color, const uint8_t rgba[4])
 Prepare a color. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
int ff_draw_round_to_sub (FFDrawContext *draw, int sub_dir, int round_dir, int value)
 Round a dimension according to subsampling. More...
 
AVFilterFormatsff_draw_supported_pixel_formats (unsigned flags)
 Return the list of pixel formats supported by the draw functions. More...
 

Detailed Description

misc drawing utilities

Definition in file drawutils.h.

Macro Definition Documentation

◆ MAX_PLANES

#define MAX_PLANES   4

Definition at line 33 of file drawutils.h.

◆ FF_DRAW_PROCESS_ALPHA

#define FF_DRAW_PROCESS_ALPHA   1

Process alpha pixel component.

Definition at line 60 of file drawutils.h.

Function Documentation

◆ ff_fill_rgba_map()

int ff_fill_rgba_map ( uint8_t *  rgba_map,
enum AVPixelFormat  pix_fmt 
)

◆ ff_draw_init()

int ff_draw_init ( FFDrawContext draw,
enum AVPixelFormat  format,
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. flags is combination of FF_DRAW_* flags.

Returns
0 for success, < 0 for error

Definition at line 79 of file drawutils.c.

Referenced by config_input(), config_out_props(), config_output(), config_props(), ff_draw_supported_pixel_formats(), main(), oscilloscope_config_input(), and pixscope_config_input().

◆ 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 192 of file drawutils.c.

Referenced by 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 214 of file drawutils.c.

Referenced by activate(), config_out_props(), draw_blank_frame(), filter_color2(), filter_frame(), oscilloscope_filter_frame(), pixscope_filter_frame(), and process_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 336 of file drawutils.c.

Referenced by 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 517 of file drawutils.c.

Referenced by draw_glyphs(), 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 618 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 630 of file drawutils.c.

Referenced by query_formats().