46     if (!strncmp(ptr, 
"WEBVTT", 6) &&
 
   47         (!ptr[6] || strchr(
"\n\r\t ", ptr[6])))
 
   55     if (sscanf(s, 
"%u:%u:%u.%u", &hh, &mm, &ss, &ms) == 4) 
return (hh*3600LL + mm*60LL + ss) * 1000LL + ms;
 
   56     if (sscanf(s,    
"%u:%u.%u",      &mm, &ss, &ms) == 3) 
return (            mm*60LL + ss) * 1000LL + ms;
 
   81         const char *p, *identifier, *settings;
 
   82         int identifier_len, settings_len;
 
   83         int64_t ts_start, ts_end;
 
   90         p = identifier = cue.str;
 
   94         if (!strncmp(p, 
"\xEF\xBB\xBFWEBVTT", 9) ||
 
   95             !strncmp(p, 
"WEBVTT", 6) ||
 
   96             !strncmp(p, 
"NOTE", 4))
 
  101         for (i = 0; p[i] && p[i] != 
'\n' && p[i] != 
'\r'; i++) {
 
  102             if (!strncmp(p + i, 
"-->", 3)) {
 
  110             identifier_len = strcspn(p, 
"\r\n");
 
  121         if (!(p = strstr(p, 
"-->")))
 
  124         do p++; 
while (*p == 
' ' || *p == 
'\t');
 
  129         p += strcspn(p, 
"\n\t ");
 
  130         while (*p == 
'\t' || *p == 
' ')
 
  133         settings_len = strcspn(p, 
"\r\n");
 
  150 #define SET_SIDE_DATA(name, type) do {                                  \ 
  152         uint8_t *buf = av_packet_new_side_data(sub, type, name##_len);  \ 
  154             res = AVERROR(ENOMEM);                                      \ 
  157         memcpy(buf, name, name##_len);                                  \ 
  180                             int64_t min_ts, int64_t ts, int64_t max_ts, 
int flags)
 
  184                                    min_ts, ts, max_ts, flags);
 
  194 #define OFFSET(x) offsetof(WebVTTContext, x) 
  195 #define KIND_FLAGS AV_OPT_FLAG_SUBTITLE_PARAM 
  199         { 
"subtitles",    
"WebVTT subtitles kind",    0, 
AV_OPT_TYPE_CONST, { .i64 = 0 },                           INT_MIN, INT_MAX, 0, 
"webvtt_kind" },
 
  223     .priv_class     = &webvtt_demuxer_class,
 
The optional first identifier line of a WebVTT cue. 
#define LIBAVUTIL_VERSION_INT
int64_t pos
byte position in stream, -1 if unknown 
void ff_subtitles_read_chunk(AVIOContext *pb, AVBPrint *buf)
Same as ff_subtitles_read_text_chunk(), but read from an AVIOContext. 
enum AVCodecID codec_id
Specific type of the encoded data (the codec used). 
void ff_subtitles_queue_clean(FFDemuxSubtitlesQueue *q)
Remove and destroy all the subtitles packets. 
int av_bprint_finalize(AVBPrint *buf, char **ret_str)
Finalize a print buffer. 
const char * class_name
The name of the class; usually it is the same name as the context structure type to which the AVClass...
int ff_subtitles_queue_read_packet(FFDemuxSubtitlesQueue *q, AVPacket *pkt)
Generic read_packet() callback for subtitles demuxers using this queue system. 
static av_cold int end(AVCodecContext *avctx)
int64_t duration
Duration of this packet in AVStream->time_base units, 0 if unknown. 
AVStream * avformat_new_stream(AVFormatContext *s, const AVCodec *c)
Add a new stream to a media file. 
static av_cold int read_close(AVFormatContext *ctx)
static av_always_inline int64_t avio_tell(AVIOContext *s)
ftell() equivalent for AVIOContext. 
static const uint8_t header[24]
#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)
enum AVMediaType codec_type
General type of the encoded data. 
unsigned char * buf
Buffer must have AVPROBE_PADDING_SIZE of extra allocated bytes filled with zero. 
static int read_header(FFV1Context *f)
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
int ff_subtitles_queue_seek(FFDemuxSubtitlesQueue *q, AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags)
Update current_sub_idx to emulate a seek. 
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
AVIOContext * pb
I/O context. 
Describe the class of an AVClass context structure. 
This structure contains the data a format has to probe a file. 
int disposition
AV_DISPOSITION_* bit field. 
The optional settings (rendering instructions) that immediately follow the timestamp specifier of a W...
void * priv_data
Format private data. 
AVCodecParameters * codecpar
AVPacket * ff_subtitles_queue_insert(FFDemuxSubtitlesQueue *q, const uint8_t *event, size_t len, int merge)
Insert a new subtitle event. 
This structure stores compressed data. 
void ff_subtitles_queue_finalize(void *log_ctx, FFDemuxSubtitlesQueue *q)
Set missing durations, sort subtitles by PTS (and then byte position), and drop duplicated events...
int64_t pts
Presentation timestamp in AVStream->time_base units; the time at which the decompressed packet will b...
#define AV_NOPTS_VALUE
Undefined timestamp value.