38 #define OFFSET(x) offsetof(TextContext, x)
39 #define SD AV_OPT_FLAG_SUBTITLE_PARAM | AV_OPT_FLAG_DECODING_PARAM
41 {
"keep_ass_markup",
"Set if ASS tags must be escaped",
OFFSET(keep_ass_markup),
AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, .flags=
SD },
51 const char *ptr = avpkt->
data;
55 if (ptr && avpkt->
size > 0 && *ptr) {
73 #define DECLARE_CLASS(decname) static const AVClass decname ## _decoder_class = { \
74 .class_name = #decname " decoder", \
75 .item_name = av_default_item_name, \
76 .option = decname ## _options, \
77 .version = LIBAVUTIL_VERSION_INT, \
80 #if CONFIG_TEXT_DECODER
81 #define text_options options
92 .priv_class = &text_decoder_class,
97 #if CONFIG_VPLAYER_DECODER || CONFIG_PJS_DECODER || CONFIG_SUBVIEWER1_DECODER || CONFIG_STL_DECODER
106 #if CONFIG_VPLAYER_DECODER
107 #define vplayer_options options
117 .
init = linebreak_init,
118 .priv_class = &vplayer_decoder_class,
123 #if CONFIG_STL_DECODER
124 #define stl_options options
134 .
init = linebreak_init,
135 .priv_class = &stl_decoder_class,
140 #if CONFIG_PJS_DECODER
141 #define pjs_options options
151 .
init = linebreak_init,
152 .priv_class = &pjs_decoder_class,
157 #if CONFIG_SUBVIEWER1_DECODER
158 #define subviewer1_options options
161 AVCodec ff_subviewer1_decoder = {
162 .
name =
"subviewer1",
168 .
init = linebreak_init,
169 .priv_class = &subviewer1_decoder_class,
ptrdiff_t const GLvoid * data
static void flush(AVCodecContext *avctx)
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.
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 void text_flush(AVCodecContext *avctx)
int ff_ass_subtitle_header_default(AVCodecContext *avctx)
Generate a suitable AVCodecContext.subtitle_header for SUBTITLE_ASS with default style.
#define AV_CODEC_FLAG2_RO_FLUSH_NOOP
Do not reset ASS ReadOrder field on flush (subtitles decoding)
#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)
static const AVOption options[]
const char * name
Name of the codec implementation.
Libavcodec external API header.
main external API structure.
#define DECLARE_CLASS(decname)
Describe the class of an AVClass context structure.
void ff_ass_bprint_text_event(AVBPrint *buf, const char *p, int size, const char *linebreaks, int keep_ass_markup)
Escape a text subtitle using ASS syntax into an AVBPrint buffer.
int flags2
AV_CODEC_FLAG2_*.
static int text_decode_frame(AVCodecContext *avctx, void *data, int *got_sub_ptr, AVPacket *avpkt)
This structure stores compressed data.