27 #include "libavutil/avstring.h"
29 #include "libavutil/mem.h"
47 unsigned char *
buf,
int bufsize,
51 int i,
len, total_len = 0;
55 const char *ass = sub->
rects[i]->
ass;
62 if (strncmp(ass,
"Dialogue: ", 10)) {
64 " does not look like a SSA markup\n", ass);
74 "ASS rectangle field.\n");
82 layer = strtol(ass, &p, 10);
84 #define SKIP_ENTRY(ptr) do { \
85 char *sep = strchr(ptr, ','); \
93 snprintf(ass_line,
sizeof(ass_line),
"%d,%ld,%s", ++s->
id, layer, p);
94 ass_line[strcspn(ass_line,
"\r\n")] = 0;
97 len =
av_strlcpy(buf+total_len, ass, bufsize-total_len);
99 if (len > bufsize-total_len-1) {
110 #if CONFIG_SSA_ENCODER
122 #if CONFIG_ASS_ENCODER
uint8_t * subtitle_header
Header containing style information for text subtitles.
static int ass_encode_frame(AVCodecContext *avctx, unsigned char *buf, int bufsize, const AVSubtitle *sub)
void av_log(void *avcl, int level, const char *fmt,...) av_printf_format(3
Send the specified message to the log if the level is less than or equal to the current av_log_level...
uint8_t * extradata
some codecs need / can use extradata like Huffman tables.
const char * name
Name of the codec implementation.
static av_cold int ass_encode_init(AVCodecContext *avctx)
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Libavcodec external API header.
size_t av_strlcpy(char *dst, const char *src, size_t size)
Copy the string src to dst, but no more than size - 1 bytes, and null-terminate dst.
common internal API header
void * av_malloc(size_t size) av_malloc_attrib 1(1)
Allocate a block of size bytes with alignment suitable for all memory accesses (including vectors if ...
char * ass
0 terminated ASS/SSA compatible event line.
main external API structure.
ASS as defined in Matroska.
Formatted text, the ass field must be set by the decoder and is authoritative.
#define AVERROR_INVALIDDATA
int id
current event id, ReadOrder field