FFmpeg
|
#include <string.h>
#include "libavutil/avutil.h"
#include "libavutil/colorspace.h"
#include "libavutil/mem.h"
#include "libavutil/pixdesc.h"
#include "drawutils.h"
#include "formats.h"
Go to the source code of this file.
Enumerations | |
enum | { RED = 0, GREEN, BLUE, ALPHA } |
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_ptr[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... | |
static uint8_t * | pointer_at (FFDrawContext *draw, uint8_t *data[], int linesize[], int plane, int x, int y) |
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... | |
static void | clip_interval (int wmax, int *x, int *w, int *dx) |
Clip interval [x; x+w[ within [0; wmax[. More... | |
static void | subsampling_bounds (int sub, int *x, int *w, int *start, int *end) |
Decompose w pixels starting at x into start + (w starting at x) + end with x and w aligned on multiples of 1<<sub. More... | |
static int | component_used (FFDrawContext *draw, int plane, int comp) |
static void | blend_line (uint8_t *dst, unsigned src, unsigned alpha, int dx, int w, unsigned hsub, int left, int right) |
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... | |
static void | blend_pixel (uint8_t *dst, unsigned src, unsigned alpha, uint8_t *mask, int mask_linesize, int l2depth, unsigned w, unsigned h, unsigned shift, unsigned xm0) |
static void | blend_line_hv (uint8_t *dst, int dst_delta, unsigned src, unsigned alpha, uint8_t *mask, int mask_linesize, int l2depth, int w, unsigned hsub, unsigned vsub, int xm, int left, int right, int hband) |
void | ff_blend_mask (FFDrawContext *draw, FFDrawColor *color, uint8_t *dst[], int dst_linesize[], int dst_w, int dst_h, 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... | |
AVFilterFormats * | ff_draw_supported_pixel_formats (unsigned flags) |
Return the list of pixel formats supported by the draw functions. More... | |
Enumeration Type Documentation
anonymous enum |
Enumerator | |
---|---|
RED | |
GREEN | |
BLUE | |
ALPHA |
Definition at line 31 of file drawutils.c.
Function Documentation
|
static |
Definition at line 309 of file drawutils.c.
Referenced by ff_blend_rectangle().
|
static |
Definition at line 404 of file drawutils.c.
Referenced by ff_blend_mask().
|
static |
Definition at line 381 of file drawutils.c.
Referenced by blend_line_hv().
|
static |
Clip interval [x; x+w[ within [0; wmax[.
The resulting w may be negative if the final interval is empty. dx, if not null, return the difference between in and out value of x.
Definition at line 270 of file drawutils.c.
Referenced by ff_blend_mask(), and ff_blend_rectangle().
|
static |
Definition at line 301 of file drawutils.c.
Referenced by ff_blend_mask(), and ff_blend_rectangle().
void ff_blend_mask | ( | FFDrawContext * | draw, |
FFDrawColor * | color, | ||
uint8_t * | dst[], | ||
int | dst_linesize[], | ||
int | dst_w, | ||
int | dst_h, | ||
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
-
draw draw context color color for the overlay; dst destination image dst_linesize line stride of the destination dst_w width of the destination image dst_h height of the destination image mask mask mask_linesize line stride of the mask mask_w width of the mask mask_h height of the mask l2depth log2 of depth of the mask (0 for 1bpp, 3 for 8bpp) endianness bit order of the mask (0: MSB to the left) x0 horizontal position of the overlay y0 vertical position of the overlay
Definition at line 429 of file drawutils.c.
Referenced by draw_glyphs(), and overlay_ass_image().
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 331 of file drawutils.c.
Referenced by draw_text().
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 115 of file drawutils.c.
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 214 of file drawutils.c.
Referenced by filter_frame().
void ff_draw_color | ( | FFDrawContext * | draw, |
FFDrawColor * | color, | ||
const uint8_t | rgba[4] | ||
) |
Prepare a color.
Definition at line 179 of file drawutils.c.
Referenced by config_input(), config_props(), ff_draw_supported_pixel_formats(), overlay_ass_image(), and request_frame().
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. No flags currently defined.
- Returns
- 0 for success, < 0 for error
Definition at line 135 of file drawutils.c.
Referenced by config_input(), config_props(), ff_draw_supported_pixel_formats(), and request_frame().
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 95 of file drawutils.c.
int ff_draw_round_to_sub | ( | FFDrawContext * | draw, |
int | sub_dir, | ||
int | round_dir, | ||
int | value | ||
) |
Round a dimension according to subsampling.
- Parameters
-
draw draw context sub_dir 0 for horizontal, 1 for vertical round_dir 0 nearest, -1 round down, +1 round up value value to round
- Returns
- the rounded value
Definition at line 489 of file drawutils.c.
Referenced by config_input(), and request_frame().
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 501 of file drawutils.c.
Referenced by query_formats(), and request_frame().
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_ptr[4] | ||
) |
Definition at line 52 of file drawutils.c.
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 236 of file drawutils.c.
Referenced by draw_blank_frame(), filter_frame(), and request_frame().
int ff_fill_rgba_map | ( | uint8_t * | rgba_map, |
enum AVPixelFormat | pix_fmt | ||
) |
Definition at line 33 of file drawutils.c.
Referenced by config_input(), config_input_main(), config_input_overlay(), config_output(), config_props(), ff_draw_color(), ff_fill_line_with_color(), and request_frame().
|
static |
Definition at line 206 of file drawutils.c.
Referenced by ff_blend_mask(), ff_blend_rectangle(), ff_copy_rectangle2(), and ff_fill_rectangle().
|
static |
Decompose w pixels starting at x into start + (w starting at x) + end with x and w aligned on multiples of 1<<sub.
Definition at line 289 of file drawutils.c.
Referenced by ff_blend_mask(), and ff_blend_rectangle().
Generated on Fri Dec 20 2024 06:56:12 for FFmpeg by 1.8.11