dvbsubdec.c File Reference
#include "avcodec.h"
#include "dsputil.h"
#include "get_bits.h"
#include "bytestream.h"
#include "libavutil/colorspace.h"

Go to the source code of this file.

Data Structures

struct  DVBSubCLUT
struct  DVBSubObjectDisplay
struct  DVBSubObject
struct  DVBSubRegionDisplay
struct  DVBSubRegion
struct  DVBSubDisplayDefinition
struct  DVBSubContext

Macros

#define DVBSUB_PAGE_SEGMENT   0x10
#define DVBSUB_REGION_SEGMENT   0x11
#define DVBSUB_CLUT_SEGMENT   0x12
#define DVBSUB_OBJECT_SEGMENT   0x13
#define DVBSUB_DISPLAYDEFINITION_SEGMENT   0x14
#define DVBSUB_DISPLAY_SEGMENT   0x80
#define cm   (ff_cropTbl + MAX_NEG_CROP)
#define RGBA(r, g, b, a)   (((a) << 24) | ((r) << 16) | ((g) << 8) | (b))

Typedefs

typedef struct DVBSubCLUT DVBSubCLUT
typedef struct DVBSubObjectDisplay DVBSubObjectDisplay
typedef struct DVBSubObject DVBSubObject
typedef struct DVBSubRegionDisplay DVBSubRegionDisplay
typedef struct DVBSubRegion DVBSubRegion
typedef struct
DVBSubDisplayDefinition 
DVBSubDisplayDefinition
typedef struct DVBSubContext DVBSubContext

Functions

static DVBSubObjectget_object (DVBSubContext *ctx, int object_id)
static DVBSubCLUTget_clut (DVBSubContext *ctx, int clut_id)
static DVBSubRegionget_region (DVBSubContext *ctx, int region_id)
static void delete_region_display_list (DVBSubContext *ctx, DVBSubRegion *region)
static void delete_state (DVBSubContext *ctx)
static av_cold int dvbsub_init_decoder (AVCodecContext *avctx)
static av_cold int dvbsub_close_decoder (AVCodecContext *avctx)
static int dvbsub_read_2bit_string (uint8_t *destbuf, int dbuf_len, const uint8_t **srcbuf, int buf_size, int non_mod, uint8_t *map_table)
static int dvbsub_read_4bit_string (uint8_t *destbuf, int dbuf_len, const uint8_t **srcbuf, int buf_size, int non_mod, uint8_t *map_table)
static int dvbsub_read_8bit_string (uint8_t *destbuf, int dbuf_len, const uint8_t **srcbuf, int buf_size, int non_mod, uint8_t *map_table)
static void dvbsub_parse_pixel_data_block (AVCodecContext *avctx, DVBSubObjectDisplay *display, const uint8_t *buf, int buf_size, int top_bottom, int non_mod)
static void dvbsub_parse_object_segment (AVCodecContext *avctx, const uint8_t *buf, int buf_size)
static void dvbsub_parse_clut_segment (AVCodecContext *avctx, const uint8_t *buf, int buf_size)
static void dvbsub_parse_region_segment (AVCodecContext *avctx, const uint8_t *buf, int buf_size)
static void dvbsub_parse_page_segment (AVCodecContext *avctx, const uint8_t *buf, int buf_size)
static void dvbsub_parse_display_definition_segment (AVCodecContext *avctx, const uint8_t *buf, int buf_size)
static int dvbsub_display_end_segment (AVCodecContext *avctx, const uint8_t *buf, int buf_size, AVSubtitle *sub)
static int dvbsub_decode (AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)

Variables

static DVBSubCLUT default_clut
AVCodec ff_dvbsub_decoder

Macro Definition Documentation

#define DVBSUB_CLUT_SEGMENT   0x12

Definition at line 29 of file dvbsubdec.c.

Referenced by dvbsub_decode().

#define DVBSUB_DISPLAY_SEGMENT   0x80

Definition at line 32 of file dvbsubdec.c.

Referenced by dvbsub_decode().

#define DVBSUB_DISPLAYDEFINITION_SEGMENT   0x14

Definition at line 31 of file dvbsubdec.c.

Referenced by dvbsub_decode().

#define DVBSUB_OBJECT_SEGMENT   0x13

Definition at line 30 of file dvbsubdec.c.

Referenced by dvbsub_decode().

#define DVBSUB_PAGE_SEGMENT   0x10

Definition at line 27 of file dvbsubdec.c.

Referenced by dvbsub_decode().

#define DVBSUB_REGION_SEGMENT   0x11

Definition at line 28 of file dvbsubdec.c.

Referenced by dvbsub_decode().

#define RGBA (   r,
  g,
  b,
 
)    (((a) << 24) | ((r) << 16) | ((g) << 8) | (b))

Definition at line 153 of file dvbsubdec.c.

Referenced by dvbsub_init_decoder(), dvbsub_parse_clut_segment(), and findRgbConvFn().

Typedef Documentation

typedef struct DVBSubCLUT DVBSubCLUT
typedef struct DVBSubContext DVBSubContext
typedef struct DVBSubObject DVBSubObject
typedef struct DVBSubRegion DVBSubRegion

Function Documentation

static void delete_region_display_list ( DVBSubContext ctx,
DVBSubRegion region 
)
static

Definition at line 275 of file dvbsubdec.c.

Referenced by delete_state(), and dvbsub_parse_region_segment().

static void delete_state ( DVBSubContext ctx)
static

Definition at line 321 of file dvbsubdec.c.

Referenced by dvbsub_close_decoder(), and dvbsub_parse_page_segment().

static av_cold int dvbsub_close_decoder ( AVCodecContext avctx)
static

Definition at line 428 of file dvbsubdec.c.

static int dvbsub_decode ( AVCodecContext avctx,
void data,
int *  data_size,
AVPacket avpkt 
)
static

Definition at line 1386 of file dvbsubdec.c.

static int dvbsub_display_end_segment ( AVCodecContext avctx,
const uint8_t *  buf,
int  buf_size,
AVSubtitle sub 
)
static

Definition at line 1301 of file dvbsubdec.c.

Referenced by dvbsub_decode().

static av_cold int dvbsub_init_decoder ( AVCodecContext avctx)
static

Definition at line 351 of file dvbsubdec.c.

static void dvbsub_parse_clut_segment ( AVCodecContext avctx,
const uint8_t *  buf,
int  buf_size 
)
static

Definition at line 903 of file dvbsubdec.c.

Referenced by dvbsub_decode().

static void dvbsub_parse_display_definition_segment ( AVCodecContext avctx,
const uint8_t *  buf,
int  buf_size 
)
static

Definition at line 1261 of file dvbsubdec.c.

Referenced by dvbsub_decode().

static void dvbsub_parse_object_segment ( AVCodecContext avctx,
const uint8_t *  buf,
int  buf_size 
)
static

Definition at line 844 of file dvbsubdec.c.

Referenced by dvbsub_decode().

static void dvbsub_parse_page_segment ( AVCodecContext avctx,
const uint8_t *  buf,
int  buf_size 
)
static

Definition at line 1097 of file dvbsubdec.c.

Referenced by dvbsub_decode().

static void dvbsub_parse_pixel_data_block ( AVCodecContext avctx,
DVBSubObjectDisplay display,
const uint8_t *  buf,
int  buf_size,
int  top_bottom,
int  non_mod 
)
static

Definition at line 730 of file dvbsubdec.c.

Referenced by dvbsub_parse_object_segment().

static void dvbsub_parse_region_segment ( AVCodecContext avctx,
const uint8_t *  buf,
int  buf_size 
)
static

Definition at line 986 of file dvbsubdec.c.

Referenced by dvbsub_decode().

static int dvbsub_read_2bit_string ( uint8_t *  destbuf,
int  dbuf_len,
const uint8_t **  srcbuf,
int  buf_size,
int  non_mod,
uint8_t *  map_table 
)
static

Definition at line 445 of file dvbsubdec.c.

Referenced by dvbsub_parse_pixel_data_block().

static int dvbsub_read_4bit_string ( uint8_t *  destbuf,
int  dbuf_len,
const uint8_t **  srcbuf,
int  buf_size,
int  non_mod,
uint8_t *  map_table 
)
static

Definition at line 550 of file dvbsubdec.c.

Referenced by dvbsub_parse_pixel_data_block().

static int dvbsub_read_8bit_string ( uint8_t *  destbuf,
int  dbuf_len,
const uint8_t **  srcbuf,
int  buf_size,
int  non_mod,
uint8_t *  map_table 
)
static

Definition at line 671 of file dvbsubdec.c.

Referenced by dvbsub_parse_pixel_data_block().

static DVBSubCLUT* get_clut ( DVBSubContext ctx,
int  clut_id 
)
static

Definition at line 253 of file dvbsubdec.c.

Referenced by dvbsub_display_end_segment(), and dvbsub_parse_clut_segment().

static DVBSubObject* get_object ( DVBSubContext ctx,
int  object_id 
)
static
static DVBSubRegion* get_region ( DVBSubContext ctx,
int  region_id 
)
static

Variable Documentation

DVBSubCLUT default_clut
static

Definition at line 165 of file dvbsubdec.c.

Referenced by dvbsub_display_end_segment().

AVCodec ff_dvbsub_decoder
Initial value:
{
.name = "dvbsub",
.priv_data_size = sizeof(DVBSubContext),
.long_name = NULL_IF_CONFIG_SMALL("DVB subtitles"),
}

Definition at line 1466 of file dvbsubdec.c.