FFmpeg
Classes | Macros | Typedefs | 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.

Classes

struct  FFDrawContext
 
struct  FFDrawColor
 

Macros

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

Typedefs

typedef struct FFDrawContext FFDrawContext
 
typedef struct FFDrawColor FFDrawColor
 

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.
 
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.
 
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

Function Documentation

§ 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

§ 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.

§ 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

§ 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

§ 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.

§ 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.