30 #define STYLE_FLAG_BOLD         (1<<0) 
   31 #define STYLE_FLAG_ITALIC       (1<<1) 
   32 #define STYLE_FLAG_UNDERLINE    (1<<2) 
   34 #define BOX_SIZE_INITIAL    40 
   36 #define STYL_BOX   (1<<0) 
   37 #define HLIT_BOX   (1<<1) 
   38 #define HCLR_BOX   (1<<2) 
   39 #define TWRP_BOX   (1<<3) 
   42 #define BOTTOM_CENTER   2 
   43 #define BOTTOM_RIGHT    3 
   45 #define MIDDLE_CENTER   5 
   46 #define MIDDLE_RIGHT    6 
  115         for(i = 0; i < m->
count_s; i++) {
 
  131         for(i = 0; i < m->
count_f; i++) {
 
  142     int i, box_size, font_length;
 
  143     int8_t v_align, h_align;
 
  156     h_align = *tx3g_ptr++;
 
  157     v_align = *tx3g_ptr++;
 
  190     style_fontID = 
AV_RB16(tx3g_ptr);
 
  226         font_length = *tx3g_ptr++;
 
  228         box_size = box_size + font_length;
 
  247         tx3g_ptr = tx3g_ptr + font_length;
 
  284     int style_entries = 
AV_RB16(tsmb);
 
  340     const char *
start = text;
 
  359     if (text < text_end && m->box_flags & 
TWRP_BOX) {
 
  367     while (text < text_end) {
 
  404                     av_bprintf(buf, 
"{\\1c&H000000&}{\\2c&HFFFFFF&}");
 
  411                     av_bprintf(buf, 
"{\\1c&HFFFFFF&}{\\2c&H000000&}");
 
  421         for (i = 0; i < 
len; i++) {
 
  466     char *ptr = avpkt->
data;
 
  468     int text_length, tsmb_type, ret_tsmb;
 
  473     if (!ptr || avpkt->
size < 2)
 
  483     if (avpkt->
size == 2)
 
  492     end = ptr + 
FFMIN(2 + text_length, avpkt->
size);
 
  504     if (text_length + 2 != avpkt->
size) {
 
  513             if (tsmb_size == 1) {
 
  523             if (tsmb_size == 0) {
 
  532                 if (tsmb_type == box_types[i].
type) {
 
  535                     ret_tsmb = box_types[i].
decode(tsmb, m, avpkt);
 
#define AVERROR_INVALIDDATA
Invalid data found when processing input. 
 
void av_bprintf(AVBPrint *buf, const char *fmt,...)
 
static const size_t box_count
 
#define GET_UTF8(val, GET_BYTE, ERROR)
Convert a UTF-8 character (up to 4 bytes) to its 32-bit UCS-4 encoded form. 
 
static int decode_twrp(const uint8_t *tsmb, MovTextContext *m, AVPacket *avpkt)
 
ptrdiff_t const GLvoid * data
 
static void flush(AVCodecContext *avctx)
 
#define ASS_DEFAULT_BORDERSTYLE
 
int(* decode)(const uint8_t *tsmb, MovTextContext *m, AVPacket *avpkt)
 
Memory handling functions. 
 
int ff_ass_subtitle_header(AVCodecContext *avctx, const char *font, int font_size, int color, int back_color, int bold, int italic, int underline, int border_style, int alignment)
Generate a suitable AVCodecContext.subtitle_header for SUBTITLE_ASS. 
 
static av_cold int init(AVCodecContext *avctx)
 
int ff_ass_add_rect(AVSubtitle *sub, const char *dialog, int readorder, int layer, const char *style, const char *speaker)
Add an ASS dialog to a subtitle. 
 
void * av_mallocz(size_t size)
Allocate a memory block with alignment suitable for all memory accesses (including vectors if availab...
 
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_WL24 unsigned int_TMPL AV_WL16 uint64_t_TMPL AV_WB64 unsigned int_TMPL AV_WB32 unsigned int_TMPL AV_WB24 unsigned int_TMPL AV_RB16
 
static void decode(AVCodecContext *dec_ctx, AVPacket *pkt, AVFrame *frame, FILE *outfile)
 
int av_bprint_finalize(AVBPrint *buf, char **ret_str)
Finalize a print buffer. 
 
static av_cold int end(AVCodecContext *avctx)
 
int ff_ass_subtitle_header_default(AVCodecContext *avctx)
Generate a suitable AVCodecContext.subtitle_header for SUBTITLE_ASS with default style. 
 
uint8_t * extradata
some codecs need / can use extradata like Huffman tables. 
 
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_WL24 unsigned int_TMPL AV_WL16 uint64_t_TMPL AV_WB64 unsigned int_TMPL AV_RB32
 
static int get_utf8_length_at(const char *text, const char *text_end)
 
static int mov_text_init(AVCodecContext *avctx)
 
static void mov_text_cleanup(MovTextContext *m)
 
#define AV_CODEC_FLAG2_RO_FLUSH_NOOP
Do not reset ASS ReadOrder field on flush (subtitles decoding) 
 
#define STYLE_FLAG_UNDERLINE
 
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered. 
 
#define AV_BPRINT_SIZE_UNLIMITED
 
static const Box box_types[]
 
#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)
 
static int text_to_ass(AVBPrint *buf, const char *text, const char *text_end, AVCodecContext *avctx)
 
const char * name
Name of the codec implementation. 
 
static void mov_text_flush(AVCodecContext *avctx)
 
#define STYLE_FLAG_ITALIC
 
static void error(const char *err)
 
#define FF_ARRAY_ELEMS(a)
 
static int decode_hlit(const uint8_t *tsmb, MovTextContext *m, AVPacket *avpkt)
 
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_WL24 unsigned int_TMPL AV_WL16 uint64_t_TMPL AV_WB64 unsigned int_TMPL AV_WB32 unsigned int_TMPL AV_WB24 unsigned int_TMPL AV_WB16 unsigned int_TMPL AV_RB8
 
Libavcodec external API header. 
 
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_WL24 unsigned int_TMPL AV_WL16 uint64_t_TMPL AV_WB64 unsigned int_TMPL AV_WB32 unsigned int_TMPL AV_RB24
 
main external API structure. 
 
static int decode_hclr(const uint8_t *tsmb, MovTextContext *m, AVPacket *avpkt)
 
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_WL24 unsigned int_TMPL AV_WL16 uint64_t_TMPL AV_RB64
 
common internal and external API header 
 
static int decode_styl(const uint8_t *tsmb, MovTextContext *m, AVPacket *avpkt)
 
static int mov_text_decode_close(AVCodecContext *avctx)
 
AVCodec ff_movtext_decoder
 
#define MKBETAG(a, b, c, d)
 
void av_dynarray_add(void *tab_ptr, int *nb_ptr, void *elem)
Add the pointer to an element to a dynamic array. 
 
static void mov_text_cleanup_ftab(MovTextContext *m)
 
int flags2
AV_CODEC_FLAG2_*. 
 
static int mov_text_decode_frame(AVCodecContext *avctx, void *data, int *got_sub_ptr, AVPacket *avpkt)
 
This structure stores compressed data. 
 
static int mov_text_tx3g(AVCodecContext *avctx, MovTextContext *m)
 
void av_bprint_chars(AVBPrint *buf, char c, unsigned n)
Append char c n times to a print buffer.