FFmpeg
Data Structures | Macros | Functions | Variables
tedcaptionsdec.c File Reference
#include "libavutil/bprint.h"
#include "libavutil/log.h"
#include "libavutil/opt.h"
#include "avformat.h"
#include "internal.h"
#include "subtitles.h"

Go to the source code of this file.

Data Structures

struct  TEDCaptionsDemuxer
 

Macros

#define BETWEEN(a, amin, amax)   ((unsigned)((a) - (amin)) <= (amax) - (amin))
 
#define HEX_DIGIT_TEST(c)   (BETWEEN(c, '0', '9') || BETWEEN((c) | 32, 'a', 'z'))
 
#define HEX_DIGIT_VAL(c)   ((c) <= '9' ? (c) - '0' : ((c) | 32) - 'a' + 10)
 
#define ERR_CODE(c)   ((c) < 0 ? (c) : AVERROR_INVALIDDATA)
 

Functions

static void av_bprint_utf8 (AVBPrint *bp, unsigned c)
 
static void next_byte (AVIOContext *pb, int *cur_byte)
 
static void skip_spaces (AVIOContext *pb, int *cur_byte)
 
static int expect_byte (AVIOContext *pb, int *cur_byte, uint8_t c)
 
static int parse_string (AVIOContext *pb, int *cur_byte, AVBPrint *bp, int full)
 
static int parse_label (AVIOContext *pb, int *cur_byte, AVBPrint *bp)
 
static int parse_boolean (AVIOContext *pb, int *cur_byte, int *result)
 
static int parse_int (AVIOContext *pb, int *cur_byte, int64_t *result)
 
static int parse_file (AVIOContext *pb, FFDemuxSubtitlesQueue *subs)
 
static av_cold int tedcaptions_read_header (AVFormatContext *avf)
 
static int tedcaptions_read_packet (AVFormatContext *avf, AVPacket *packet)
 
static int tedcaptions_read_close (AVFormatContext *avf)
 
static av_cold int tedcaptions_read_probe (const AVProbeData *p)
 
static int tedcaptions_read_seek (AVFormatContext *avf, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags)
 

Variables

static const AVOption tedcaptions_options []
 
static const AVClass tedcaptions_demuxer_class
 
const AVInputFormat ff_tedcaptions_demuxer
 

Macro Definition Documentation

◆ BETWEEN

#define BETWEEN (   a,
  amin,
  amax 
)    ((unsigned)((a) - (amin)) <= (amax) - (amin))

Definition at line 50 of file tedcaptionsdec.c.

◆ HEX_DIGIT_TEST

#define HEX_DIGIT_TEST (   c)    (BETWEEN(c, '0', '9') || BETWEEN((c) | 32, 'a', 'z'))

Definition at line 52 of file tedcaptionsdec.c.

◆ HEX_DIGIT_VAL

#define HEX_DIGIT_VAL (   c)    ((c) <= '9' ? (c) - '0' : ((c) | 32) - 'a' + 10)

Definition at line 53 of file tedcaptionsdec.c.

◆ ERR_CODE

#define ERR_CODE (   c)    ((c) < 0 ? (c) : AVERROR_INVALIDDATA)

Definition at line 54 of file tedcaptionsdec.c.

Function Documentation

◆ av_bprint_utf8()

static void av_bprint_utf8 ( AVBPrint *  bp,
unsigned  c 
)
static

Definition at line 56 of file tedcaptionsdec.c.

Referenced by parse_string().

◆ next_byte()

static void next_byte ( AVIOContext pb,
int cur_byte 
)
static

◆ skip_spaces()

static void skip_spaces ( AVIOContext pb,
int cur_byte 
)
static

Definition at line 77 of file tedcaptionsdec.c.

Referenced by expect_byte(), parse_boolean(), parse_file(), and parse_int().

◆ expect_byte()

static int expect_byte ( AVIOContext pb,
int cur_byte,
uint8_t  c 
)
static

Definition at line 84 of file tedcaptionsdec.c.

Referenced by parse_file(), parse_label(), and parse_string().

◆ parse_string()

static int parse_string ( AVIOContext pb,
int cur_byte,
AVBPrint *  bp,
int  full 
)
static

Definition at line 93 of file tedcaptionsdec.c.

Referenced by parse_file(), and parse_label().

◆ parse_label()

static int parse_label ( AVIOContext pb,
int cur_byte,
AVBPrint *  bp 
)
static

Definition at line 131 of file tedcaptionsdec.c.

Referenced by parse_file().

◆ parse_boolean()

static int parse_boolean ( AVIOContext pb,
int cur_byte,
int result 
)
static

Definition at line 145 of file tedcaptionsdec.c.

Referenced by parse_file().

◆ parse_int()

static int parse_int ( AVIOContext pb,
int cur_byte,
int64_t *  result 
)
static

Definition at line 167 of file tedcaptionsdec.c.

Referenced by parse_file().

◆ parse_file()

static int parse_file ( AVIOContext pb,
FFDemuxSubtitlesQueue subs 
)
static

Definition at line 184 of file tedcaptionsdec.c.

Referenced by tedcaptions_read_header().

◆ tedcaptions_read_header()

static av_cold int tedcaptions_read_header ( AVFormatContext avf)
static

Definition at line 276 of file tedcaptionsdec.c.

◆ tedcaptions_read_packet()

static int tedcaptions_read_packet ( AVFormatContext avf,
AVPacket packet 
)
static

Definition at line 311 of file tedcaptionsdec.c.

◆ tedcaptions_read_close()

static int tedcaptions_read_close ( AVFormatContext avf)
static

Definition at line 318 of file tedcaptionsdec.c.

◆ tedcaptions_read_probe()

static av_cold int tedcaptions_read_probe ( const AVProbeData p)
static

Definition at line 326 of file tedcaptionsdec.c.

◆ tedcaptions_read_seek()

static int tedcaptions_read_seek ( AVFormatContext avf,
int  stream_index,
int64_t  min_ts,
int64_t  ts,
int64_t  max_ts,
int  flags 
)
static

Definition at line 349 of file tedcaptionsdec.c.

Variable Documentation

◆ tedcaptions_options

const AVOption tedcaptions_options[]
static
Initial value:
= {
{ "start_time", "set the start time (offset) of the subtitles, in ms",
{ .i64 = 15000 }, INT64_MIN, INT64_MAX,
{ NULL },
}

Definition at line 35 of file tedcaptionsdec.c.

◆ tedcaptions_demuxer_class

const AVClass tedcaptions_demuxer_class
static
Initial value:
= {
.class_name = "tedcaptions_demuxer",
.item_name = av_default_item_name,
}

Definition at line 43 of file tedcaptionsdec.c.

◆ ff_tedcaptions_demuxer

const AVInputFormat ff_tedcaptions_demuxer
Initial value:
= {
.name = "tedcaptions",
.long_name = NULL_IF_CONFIG_SMALL("TED Talks captions"),
.priv_data_size = sizeof(TEDCaptionsDemuxer),
.flags_internal = FF_FMT_INIT_CLEANUP,
.priv_class = &tedcaptions_demuxer_class,
.read_seek2 = tedcaptions_read_seek,
}

Definition at line 358 of file tedcaptionsdec.c.

FF_FMT_INIT_CLEANUP
#define FF_FMT_INIT_CLEANUP
For an AVInputFormat with this flag set read_close() needs to be called by the caller upon read_heade...
Definition: internal.h:46
tedcaptions_options
static const AVOption tedcaptions_options[]
Definition: tedcaptionsdec.c:35
tedcaptions_read_seek
static int tedcaptions_read_seek(AVFormatContext *avf, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags)
Definition: tedcaptionsdec.c:349
read_close
static av_cold int read_close(AVFormatContext *ctx)
Definition: libcdio.c:143
read_packet
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
Definition: avio_read_callback.c:41
TEDCaptionsDemuxer
Definition: tedcaptionsdec.c:29
tedcaptions_demuxer_class
static const AVClass tedcaptions_demuxer_class
Definition: tedcaptionsdec.c:43
AV_OPT_TYPE_INT64
@ AV_OPT_TYPE_INT64
Definition: opt.h:226
LIBAVUTIL_VERSION_INT
#define LIBAVUTIL_VERSION_INT
Definition: version.h:85
read_header
static int read_header(FFV1Context *f)
Definition: ffv1dec.c:550
NULL
#define NULL
Definition: coverity.c:32
av_default_item_name
const char * av_default_item_name(void *ptr)
Return the context name.
Definition: log.c:237
tedcaptions_read_packet
static int tedcaptions_read_packet(AVFormatContext *avf, AVPacket *packet)
Definition: tedcaptionsdec.c:311
NULL_IF_CONFIG_SMALL
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
Definition: internal.h:106
tedcaptions_read_probe
static av_cold int tedcaptions_read_probe(const AVProbeData *p)
Definition: tedcaptionsdec.c:326
AV_OPT_FLAG_DECODING_PARAM
#define AV_OPT_FLAG_DECODING_PARAM
a generic parameter which can be set by the user for demuxing or decoding
Definition: opt.h:282
tedcaptions_read_close
static int tedcaptions_read_close(AVFormatContext *avf)
Definition: tedcaptionsdec.c:318
read_probe
static int read_probe(const AVProbeData *p)
Definition: cdg.c:29
AV_OPT_FLAG_SUBTITLE_PARAM
#define AV_OPT_FLAG_SUBTITLE_PARAM
Definition: opt.h:285
tedcaptions_read_header
static av_cold int tedcaptions_read_header(AVFormatContext *avf)
Definition: tedcaptionsdec.c:276