FFmpeg  4.0
Data Structures | Macros | Functions | Variables
microdvddec.c File Reference

MicroDVD subtitle decoder. More...

#include "libavutil/avstring.h"
#include "libavutil/parseutils.h"
#include "libavutil/bprint.h"
#include "avcodec.h"
#include "ass.h"

Go to the source code of this file.

Data Structures

struct  microdvd_tag
 

Macros

#define MICRODVD_PERSISTENT_OFF   0
 
#define MICRODVD_PERSISTENT_ON   1
 
#define MICRODVD_PERSISTENT_OPENED   2
 
#define MICRODVD_TAGS   "cfshyYpo"
 
#define MICRODVD_STYLES   "ibus"
 

Functions

static int indexof (const char *s, int c)
 
static void microdvd_set_tag (struct microdvd_tag *tags, struct microdvd_tag tag)
 
static char * check_for_italic_slash_marker (struct microdvd_tag *tags, char *s)
 
static char * microdvd_load_tags (struct microdvd_tag *tags, char *s)
 
static void microdvd_open_tags (AVBPrint *new_line, struct microdvd_tag *tags)
 
static void microdvd_close_no_persistent_tags (AVBPrint *new_line, struct microdvd_tag *tags)
 
static int microdvd_decode_frame (AVCodecContext *avctx, void *data, int *got_sub_ptr, AVPacket *avpkt)
 
static int microdvd_init (AVCodecContext *avctx)
 

Variables

AVCodec ff_microdvd_decoder
 

Detailed Description

MicroDVD subtitle decoder.

Based on the specifications found here: https://trac.videolan.org/vlc/ticket/1825#comment:6

Definition in file microdvddec.c.

Macro Definition Documentation

◆ MICRODVD_PERSISTENT_OFF

#define MICRODVD_PERSISTENT_OFF   0

Definition at line 50 of file microdvddec.c.

Referenced by microdvd_close_no_persistent_tags().

◆ MICRODVD_PERSISTENT_ON

#define MICRODVD_PERSISTENT_ON   1

Definition at line 51 of file microdvddec.c.

Referenced by microdvd_load_tags(), and microdvd_open_tags().

◆ MICRODVD_PERSISTENT_OPENED

#define MICRODVD_PERSISTENT_OPENED   2

Definition at line 52 of file microdvddec.c.

Referenced by microdvd_open_tags().

◆ MICRODVD_TAGS

#define MICRODVD_TAGS   "cfshyYpo"

◆ MICRODVD_STYLES

#define MICRODVD_STYLES   "ibus"

Function Documentation

◆ indexof()

static int indexof ( const char *  s,
int  c 
)
static

◆ microdvd_set_tag()

static void microdvd_set_tag ( struct microdvd_tag tags,
struct microdvd_tag  tag 
)
static

Definition at line 57 of file microdvddec.c.

Referenced by check_for_italic_slash_marker(), and microdvd_load_tags().

◆ check_for_italic_slash_marker()

static char* check_for_italic_slash_marker ( struct microdvd_tag tags,
char *  s 
)
static

Definition at line 71 of file microdvddec.c.

Referenced by microdvd_load_tags().

◆ microdvd_load_tags()

static char* microdvd_load_tags ( struct microdvd_tag tags,
char *  s 
)
static

Definition at line 83 of file microdvddec.c.

Referenced by microdvd_decode_frame(), and microdvd_init().

◆ microdvd_open_tags()

static void microdvd_open_tags ( AVBPrint *  new_line,
struct microdvd_tag tags 
)
static

Definition at line 202 of file microdvddec.c.

Referenced by microdvd_decode_frame().

◆ microdvd_close_no_persistent_tags()

static void microdvd_close_no_persistent_tags ( AVBPrint *  new_line,
struct microdvd_tag tags 
)
static

Definition at line 244 of file microdvddec.c.

Referenced by microdvd_decode_frame().

◆ microdvd_decode_frame()

static int microdvd_decode_frame ( AVCodecContext avctx,
void data,
int got_sub_ptr,
AVPacket avpkt 
)
static

Definition at line 276 of file microdvddec.c.

◆ microdvd_init()

static int microdvd_init ( AVCodecContext avctx)
static

Definition at line 322 of file microdvddec.c.

Variable Documentation

◆ ff_microdvd_decoder

AVCodec ff_microdvd_decoder
Initial value:
= {
.name = "microdvd",
.long_name = NULL_IF_CONFIG_SMALL("MicroDVD subtitle"),
.init = microdvd_init,
.priv_data_size = sizeof(FFASSDecoderContext),
}
static int microdvd_decode_frame(AVCodecContext *avctx, void *data, int *got_sub_ptr, AVPacket *avpkt)
Definition: microdvddec.c:276
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:186
static int microdvd_init(AVCodecContext *avctx)
Definition: microdvddec.c:322
void ff_ass_decoder_flush(AVCodecContext *avctx)
Helper to flush a text subtitles decoder making use of the FFASSDecoderContext.
Definition: ass.c:124

Definition at line 371 of file microdvddec.c.