FFmpeg  4.0
Data Structures | Macros | Functions
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. More...
 

Functions

int ff_fill_rgba_map (uint8_t *rgba_map, enum AVPixelFormat pix_fmt)
 
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])
 
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)
 
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 46 of file drawutils.h.

◆ FF_DRAW_PROCESS_ALPHA

#define FF_DRAW_PROCESS_ALPHA   1

Process alpha pixel component.

Definition at line 73 of file drawutils.h.

Referenced by config_input(), ff_blend_mask(), ff_blend_rectangle(), and ff_draw_init().

Function Documentation

◆ ff_fill_rgba_map()

int ff_fill_rgba_map ( uint8_t rgba_map,
enum AVPixelFormat  pix_fmt 
)

◆ ff_fill_line_with_color()

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] 
)

Definition at line 80 of file drawutils.c.

◆ ff_draw_rectangle()

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 
)

Definition at line 134 of file drawutils.c.

◆ ff_copy_rectangle()

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 
)

Definition at line 156 of file drawutils.c.

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

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

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

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

Referenced by draw_text(), oscilloscope_filter_frame(), pixscope_filter_frame(), and request_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 616 of file drawutils.c.

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

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

Referenced by config_input(), and request_frame().

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

Referenced by query_formats(), and request_frame().