FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
webvttdec.c File Reference

WebVTT subtitle demuxer. More...

#include "avformat.h"
#include "internal.h"
#include "subtitles.h"
#include "libavutil/bprint.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/opt.h"

Go to the source code of this file.

Data Structures

struct  WebVTTContext
 

Macros

#define SET_SIDE_DATA(name, type)
 
#define OFFSET(x)   offsetof(WebVTTContext, x)
 
#define KIND_FLAGS   AV_OPT_FLAG_SUBTITLE_PARAM
 

Functions

static int webvtt_probe (AVProbeData *p)
 
static int64_t read_ts (const char *s)
 
static int webvtt_read_header (AVFormatContext *s)
 
static int webvtt_read_packet (AVFormatContext *s, AVPacket *pkt)
 
static int webvtt_read_seek (AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags)
 
static int webvtt_read_close (AVFormatContext *s)
 

Variables

static const AVOption options []
 
static const AVClass webvtt_demuxer_class
 
AVInputFormat ff_webvtt_demuxer
 

Detailed Description

WebVTT subtitle demuxer.

See Also
http://dev.w3.org/html5/webvtt/

Definition in file webvttdec.c.

Macro Definition Documentation

#define SET_SIDE_DATA (   name,
  type 
)
Value:
do { \
if (name##_len) { \
uint8_t *buf = av_packet_new_side_data(sub, type, name##_len); \
if (!buf) { \
res = AVERROR(ENOMEM); \
goto end; \
} \
memcpy(buf, name, name##_len); \
} \
} while (0)

Referenced by webvtt_read_header().

#define OFFSET (   x)    offsetof(WebVTTContext, x)

Definition at line 193 of file webvttdec.c.

#define KIND_FLAGS   AV_OPT_FLAG_SUBTITLE_PARAM

Definition at line 194 of file webvttdec.c.

Function Documentation

static int webvtt_probe ( AVProbeData p)
static

Definition at line 40 of file webvttdec.c.

static int64_t read_ts ( const char *  s)
static

Definition at line 52 of file webvttdec.c.

Referenced by webvtt_read_header().

static int webvtt_read_header ( AVFormatContext s)
static

Definition at line 60 of file webvttdec.c.

static int webvtt_read_packet ( AVFormatContext s,
AVPacket pkt 
)
static

Definition at line 172 of file webvttdec.c.

static int webvtt_read_seek ( AVFormatContext s,
int  stream_index,
int64_t  min_ts,
int64_t  ts,
int64_t  max_ts,
int  flags 
)
static

Definition at line 178 of file webvttdec.c.

static int webvtt_read_close ( AVFormatContext s)
static

Definition at line 186 of file webvttdec.c.

Variable Documentation

const AVOption options[]
static
Initial value:
= {
{ "kind", "Set kind of WebVTT track", OFFSET(kind), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, KIND_FLAGS, "webvtt_kind" },
{ "subtitles", "WebVTT subtitles kind", 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, INT_MIN, INT_MAX, 0, "webvtt_kind" },
{ "captions", "WebVTT captions kind", 0, AV_OPT_TYPE_CONST, { .i64 = AV_DISPOSITION_CAPTIONS }, INT_MIN, INT_MAX, 0, "webvtt_kind" },
{ "descriptions", "WebVTT descriptions kind", 0, AV_OPT_TYPE_CONST, { .i64 = AV_DISPOSITION_DESCRIPTIONS }, INT_MIN, INT_MAX, 0, "webvtt_kind" },
{ "metadata", "WebVTT metadata kind", 0, AV_OPT_TYPE_CONST, { .i64 = AV_DISPOSITION_METADATA }, INT_MIN, INT_MAX, 0, "webvtt_kind" },
{ NULL }
}

Definition at line 196 of file webvttdec.c.

const AVClass webvtt_demuxer_class
static
Initial value:
= {
.class_name = "WebVTT demuxer",
.item_name = av_default_item_name,
.option = options,
}

Definition at line 205 of file webvttdec.c.

AVInputFormat ff_webvtt_demuxer
Initial value:
= {
.name = "webvtt",
.long_name = NULL_IF_CONFIG_SMALL("WebVTT subtitle"),
.priv_data_size = sizeof(WebVTTContext),
.read_seek2 = webvtt_read_seek,
.extensions = "vtt",
.priv_class = &webvtt_demuxer_class,
}

Definition at line 212 of file webvttdec.c.