30 #define WEBVTT_STACK_SIZE 64
42 __attribute__ ((__format__ (__printf__, 2, 3)))
173 for (; dialog && num--; dialog++) {
184 if (s->
buffer.len > bufsize) {
AVCodec ff_webvtt_encoder
char * style
name of the ASSStyle to use with this dialog
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
char stack[WEBVTT_STACK_SIZE]
fields extracted from the [Events] section
static int webvtt_encode_frame(AVCodecContext *avctx, unsigned char *buf, int bufsize, const AVSubtitle *sub)
static void webvtt_stack_push_pop(WebVTTContext *s, const char c, int close)
static av_cold int init(AVCodecContext *avctx)
ASSSplitContext * ff_ass_split(const char *buf)
Split a full ASS file or a ASS header from a string buffer and store the split structure in a newly a...
static void webvtt_style_cb(void *priv, char style, int close)
static void webvtt_print(WebVTTContext *s, const char *str,...)
int av_bprint_finalize(AVBPrint *buf, char **ret_str)
Finalize a print buffer.
static void webvtt_cancel_overrides_cb(void *priv, const char *style)
char * text
actual text which will be displayed as a subtitle, can include style override control codes (see ff_a...
This struct can be casted to ASS to access to the split data.
int bold
whether text is bold (1) or not (0)
int ff_ass_split_override_codes(const ASSCodesCallbacks *callbacks, void *priv, const char *buf)
Split override codes out of a ASS "Dialogue" Text field.
void av_bprint_append_data(AVBPrint *buf, const char *data, unsigned size)
Append data to a print buffer.
ASSDialog * ff_ass_split_dialog(ASSSplitContext *ctx, const char *buf, int cache, int *number)
Split one or several ASS "Dialogue" lines from a string buffer and store them in a already initialize...
static void webvtt_end_cb(void *priv)
#define ASS_DEFAULT_UNDERLINE
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
#define AV_BPRINT_SIZE_UNLIMITED
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
void av_bprint_init(AVBPrint *buf, unsigned size_init, unsigned size_max)
const char * name
Name of the codec implementation.
static int webvtt_stack_push(WebVTTContext *s, const char c)
static av_cold int webvtt_encode_init(AVCodecContext *avctx)
static void webvtt_text_cb(void *priv, const char *text, int len)
void(* text)(void *priv, const char *text, int len)
int italic
whether text is italic (1) or not (0)
static int av_bprint_is_complete(const AVBPrint *buf)
Test if the print buffer is complete (not truncated).
Set of callback functions corresponding to each override codes that can be encountered in a "Dialogue...
static void webvtt_close_tag(WebVTTContext *s, char tag)
static void webvtt_new_line_cb(void *priv, int forced)
static char webvtt_stack_pop(WebVTTContext *s)
Libavcodec external API header.
static int webvtt_encode_close(AVCodecContext *avctx)
main external API structure.
void av_vbprintf(AVBPrint *buf, const char *fmt, va_list vl_arg)
Append a formatted string to a print buffer.
fields extracted from the [V4(+) Styles] section
ASSSplitContext * ass_ctx
static void webvtt_style_apply(WebVTTContext *s, const char *style)
ASSStyle * ff_ass_style_get(ASSSplitContext *ctx, const char *style)
Find an ASSStyle structure by its name.
void av_bprint_clear(AVBPrint *buf)
Reset the string to "" but keep internal allocated data.
Formatted text, the ass field must be set by the decoder and is authoritative.
#define ASS_DEFAULT_ITALIC
char * ass
0 terminated ASS/SSA compatible event line.
void ff_ass_split_free(ASSSplitContext *ctx)
Free all the memory allocated for an ASSSplitContext.
#define WEBVTT_STACK_SIZE
static int webvtt_stack_find(WebVTTContext *s, const char c)
int underline
whether text is underlined (1) or not (0)
static const ASSCodesCallbacks webvtt_callbacks
uint8_t * subtitle_header
Header containing style information for text subtitles.