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
const struct AVCodec * codec
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
memory handling functions
static int ass_encode_frame(AVCodecContext *avctx, unsigned char *buf, int bufsize, const AVSubtitle *sub)
uint8_t * extradata
some codecs need / can use extradata like Huffman tables.
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. ...
const char * name
Name of the codec implementation.
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
main external API structure.
ASS as defined in Matroska.
Formatted text, the ass field must be set by the decoder and is authoritative.
char * ass
0 terminated ASS/SSA compatible event line.
int id
current event id, ReadOrder field
uint8_t * subtitle_header
Header containing style information for text subtitles.