59 int prev_chr_is_space = 0;
86 if (!strncmp(p,
" ", 6)) {
100 while (*p && *p !=
'>')
110 else if (!prev_chr_is_space)
138 const char *ptr = avpkt->
data;
141 if (ptr && avpkt->
size > 0) {
void av_bprintf(AVBPrint *buf, const char *fmt,...)
static int sami_decode_frame(AVCodecContext *avctx, void *data, int *got_sub_ptr, AVPacket *avpkt)
ptrdiff_t const GLvoid * data
static void flush(AVCodecContext *avctx)
char * av_stristr(const char *s1, const char *s2)
Locate the first case-independent occurrence in the string haystack of the string needle...
static av_cold int init(AVCodecContext *avctx)
static av_const int av_isspace(int c)
Locale-independent conversion of ASCII isspace.
int av_strncasecmp(const char *a, const char *b, size_t n)
Locale-independent case-insensitive compare.
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 av_cold int sami_init(AVCodecContext *avctx)
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.
static av_cold int sami_close(AVCodecContext *avctx)
static void sami_flush(AVCodecContext *avctx)
#define AV_CODEC_FLAG2_RO_FLUSH_NOOP
Do not reset ASS ReadOrder field on flush (subtitles decoding)
#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.
int ff_htmlmarkup_to_ass(void *log_ctx, AVBPrint *dst, const char *in)
char * av_strdup(const char *s)
Duplicate a string.
main external API structure.
void av_bprint_clear(AVBPrint *buf)
Reset the string to "" but keep internal allocated data.
char * av_strtok(char *s, const char *delim, char **saveptr)
Split the string into several tokens which can be accessed by successive calls to av_strtok()...
int flags2
AV_CODEC_FLAG2_*.
static float sub(float src0, float src1)
static int sami_paragraph_to_ass(AVCodecContext *avctx, const char *src)
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample they are references to shared objects When the negotiation mechanism computes the intersection of the formats supported at each end of a all references to both lists are replaced with a reference to the intersection And when a single format is eventually chosen for a link amongst the remaining all references to the list are updated That means that if a filter requires that its input and output have the same format amongst a supported all it has to do is use a reference to the same list of formats query_formats can leave some formats unset and return AVERROR(EAGAIN) to cause the negotiation mechanism toagain later.That can be used by filters with complex requirements to use the format negotiated on one link to set the formats supported on another.Frame references ownership and permissions
This structure stores compressed data.
void av_bprint_chars(AVBPrint *buf, char c, unsigned n)
Append char c n times to a print buffer.