FFmpeg
Loading...
Searching...
No Matches
jacosubdec.c File Reference

JACOsub subtitle demuxer. More...

#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "libavutil/attributes.h"
#include "subtitles.h"
#include "libavcodec/jacosub.h"
#include "libavutil/avstring.h"
#include "libavutil/bprint.h"
#include "libavutil/intreadwrite.h"

Go to the source code of this file.

Data Structures

struct  JACOsubContext
 

Macros

#define SSEP   "%*1[.:]"
 

Functions

static int timed_line (const char *ptr)
 
static int jacosub_probe (const AVProbeData *p)
 
static int get_jss_cmd (char k)
 
static const char * read_ts (JACOsubContext *jacosub, const char *buf, int64_t *start, int64_t *duration)
 
static int get_shift (unsigned timeres, const char *buf)
 
static int jacosub_read_header (AVFormatContext *s)
 

Variables

static const char *const cmds []
 
const FFInputFormat ff_jacosub_demuxer
 

Detailed Description

JACOsub subtitle demuxer.

See also
http://unicorn.us.com/jacosub/jscripts.html
Todo
Support P[ALETTE] directive.

Definition in file jacosubdec.c.

Macro Definition Documentation

◆ SSEP

#define SSEP   "%*1[.:]"

Referenced by get_shift().

Function Documentation

◆ timed_line()

static int timed_line ( const char * ptr)
static

Definition at line 44 of file jacosubdec.c.

Referenced by jacosub_probe(), and jacosub_read_header().

◆ jacosub_probe()

static int jacosub_probe ( const AVProbeData * p)
static

Definition at line 52 of file jacosubdec.c.

◆ get_jss_cmd()

static int get_jss_cmd ( char k)
static

Definition at line 86 of file jacosubdec.c.

Referenced by jacosub_read_header().

◆ read_ts()

static const char * read_ts ( JACOsubContext * jacosub,
const char * buf,
int64_t * start,
int64_t * duration )
static

Definition at line 97 of file jacosubdec.c.

Referenced by jacosub_read_header().

◆ get_shift()

static int get_shift ( unsigned timeres,
const char * buf )
static

Definition at line 129 of file jacosubdec.c.

Referenced by jacosub_read_header().

◆ jacosub_read_header()

static int jacosub_read_header ( AVFormatContext * s)
static

Definition at line 164 of file jacosubdec.c.

Variable Documentation

◆ cmds

const char* const cmds[]
static
Initial value:
= {
"CLOCKPAUSE",
"DIRECTIVE",
"FONT",
"HRES",
"INCLUDE",
"PALETTE",
"QUANTIZE",
"RAMP",
"SHIFT",
"TIMERES",
}

Definition at line 73 of file jacosubdec.c.

Referenced by decode_byterun2(), get_jss_cmd(), jacosub_read_header(), and parse_commands().

◆ ff_jacosub_demuxer

const FFInputFormat ff_jacosub_demuxer
Initial value:
= {
.p.name = "jacosub",
.p.long_name = NULL_IF_CONFIG_SMALL("JACOsub subtitle format"),
.priv_data_size = sizeof(JACOsubContext),
.flags_internal = FF_INFMT_FLAG_INIT_CLEANUP,
.read_seek2 = ff_subtitles_read_seek,
}
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
static int read_probe(const AVProbeData *p)
Definition cdg.c:30
#define FF_INFMT_FLAG_INIT_CLEANUP
For an FFInputFormat with this flag set read_close() needs to be called by the caller upon read_heade...
Definition demux.h:35
static int read_header(FFV1Context *f, RangeCoder *c)
Definition ffv1dec.c:578
static int jacosub_probe(const AVProbeData *p)
Definition jacosubdec.c:52
static int jacosub_read_header(AVFormatContext *s)
Definition jacosubdec.c:164
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
Definition internal.h:88
static av_cold int read_close(AVFormatContext *ctx)
Definition libcdio.c:143
int ff_subtitles_read_packet(AVFormatContext *s, AVPacket *pkt)
Definition subtitles.c:331
int ff_subtitles_read_seek(AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags)
Definition subtitles.c:337
int ff_subtitles_read_close(AVFormatContext *s)
Definition subtitles.c:345

Definition at line 261 of file jacosubdec.c.