#include <ass/ass.h>
#include "libavutil/avstring.h"
#include "libavutil/imgutils.h"
#include "libavutil/pixdesc.h"
#include "drawutils.h"
#include "avfilter.h"
Go to the source code of this file.
Data Structures | |
struct | AssContext |
Defines | |
#define | R 0 |
#define | G 1 |
#define | B 2 |
#define | A 3 |
#define | SET_PIXEL_RGB(picref, rgba_color, val, x, y, pixel_step, r_off, g_off, b_off) |
#define | AR(c) ( (c)>>24) |
#define | AG(c) (((c)>>16)&0xFF) |
#define | AB(c) (((c)>>8) &0xFF) |
#define | AA(c) ((0xFF-c) &0xFF) |
Functions | |
static void | ass_log (int ass_level, const char *fmt, va_list args, void *ctx) |
static av_cold int | init (AVFilterContext *ctx, const char *args, void *opaque) |
static av_cold void | uninit (AVFilterContext *ctx) |
static int | query_formats (AVFilterContext *ctx) |
static int | config_input (AVFilterLink *inlink) |
static void | null_draw_slice (AVFilterLink *link, int y, int h, int slice_dir) |
static void | overlay_ass_image (AVFilterBufferRef *picref, const uint8_t *rgba_map, const int pix_step, const ASS_Image *image) |
static void | end_frame (AVFilterLink *inlink) |
Variables | |
int | ass_libav_log_level_map [] |
AVFilter | avfilter_vf_ass |
Definition in file vf_ass.c.
#define SET_PIXEL_RGB | ( | picref, | |||
rgba_color, | |||||
val, | |||||
x, | |||||
y, | |||||
pixel_step, | |||||
r_off, | |||||
g_off, | |||||
b_off | ) |
Value:
{ \ p = picref->data[0] + (x) * pixel_step + ((y) * picref->linesize[0]); \ alpha = rgba_color[A] * (val) * 129; \ *(p+r_off) = (alpha * rgba_color[R] + (255*255*129 - alpha) * *(p+r_off)) >> 23; \ *(p+g_off) = (alpha * rgba_color[G] + (255*255*129 - alpha) * *(p+g_off)) >> 23; \ *(p+b_off) = (alpha * rgba_color[B] + (255*255*129 - alpha) * *(p+b_off)) >> 23; \ }
Definition at line 158 of file vf_ass.c.
Referenced by draw_glyph_rgb(), drawbox(), and overlay_ass_image().
static void ass_log | ( | int | ass_level, | |
const char * | fmt, | |||
va_list | args, | |||
void * | ctx | |||
) | [static] |
static int config_input | ( | AVFilterLink * | inlink | ) | [static] |
static void end_frame | ( | AVFilterLink * | inlink | ) | [static] |
static av_cold int init | ( | AVFilterContext * | ctx, | |
const char * | args, | |||
void * | opaque | |||
) | [static] |
static void null_draw_slice | ( | AVFilterLink * | link, | |
int | y, | |||
int | h, | |||
int | slice_dir | |||
) | [static] |
static void overlay_ass_image | ( | AVFilterBufferRef * | picref, | |
const uint8_t * | rgba_map, | |||
const int | pix_step, | |||
const ASS_Image * | image | |||
) | [static] |
static int query_formats | ( | AVFilterContext * | ctx | ) | [static] |
static av_cold void uninit | ( | AVFilterContext * | ctx | ) | [static] |
int ass_libav_log_level_map[] |
Initial value:
{ AV_LOG_QUIET, AV_LOG_PANIC, AV_LOG_FATAL, AV_LOG_ERROR, AV_LOG_WARNING, AV_LOG_INFO, AV_LOG_VERBOSE, AV_LOG_DEBUG, }
Definition at line 48 of file vf_ass.c.
Referenced by ass_log().
Initial value:
{ .name = "ass", .description = NULL_IF_CONFIG_SMALL("Render subtitles onto input video using the libass library."), .priv_size = sizeof(AssContext), .init = init, .uninit = uninit, .query_formats = query_formats, .inputs = (const AVFilterPad[]) { { .name = "default", .type = AVMEDIA_TYPE_VIDEO, .get_video_buffer = avfilter_null_get_video_buffer, .start_frame = avfilter_null_start_frame, .draw_slice = null_draw_slice, .end_frame = end_frame, .config_props = config_input, .min_perms = AV_PERM_WRITE | AV_PERM_READ, .rej_perms = AV_PERM_PRESERVE }, { .name = NULL} }, .outputs = (const AVFilterPad[]) { { .name = "default", .type = AVMEDIA_TYPE_VIDEO, }, { .name = NULL} }, }