Data Structures | Defines | Typedefs | Functions | Variables

libavcodec/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

Defines

#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_cluts (DVBSubContext *ctx)
static void delete_objects (DVBSubContext *ctx)
static void delete_regions (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

Define Documentation

#define cm   (ff_cropTbl + MAX_NEG_CROP)
#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 
)    (((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 rgbToRgbWrapper().


Typedef Documentation

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

Function Documentation

static void delete_cluts ( DVBSubContext ctx  )  [static]

Definition at line 321 of file dvbsubdec.c.

Referenced by dvbsub_close_decoder(), and dvbsub_parse_page_segment().

static void delete_objects ( DVBSubContext ctx  )  [static]

Definition at line 334 of file dvbsubdec.c.

Referenced by dvbsub_close_decoder(), and dvbsub_parse_page_segment().

static void delete_region_display_list ( DVBSubContext ctx,
DVBSubRegion region 
) [static]

Definition at line 275 of file dvbsubdec.c.

Referenced by delete_regions(), and dvbsub_parse_region_segment().

static void delete_regions ( DVBSubContext ctx  )  [static]

Definition at line 347 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 440 of file dvbsubdec.c.

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

Definition at line 1403 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 1321 of file dvbsubdec.c.

Referenced by dvbsub_decode().

static av_cold int dvbsub_init_decoder ( AVCodecContext avctx  )  [static]

Definition at line 363 of file dvbsubdec.c.

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

Definition at line 921 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 1281 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 862 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 1115 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 748 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 1004 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 463 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 568 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 689 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

Definition at line 165 of file dvbsubdec.c.

Initial value:
 {
    "dvbsub",
    AVMEDIA_TYPE_SUBTITLE,
    CODEC_ID_DVB_SUBTITLE,
    sizeof(DVBSubContext),
    dvbsub_init_decoder,
    NULL,
    dvbsub_close_decoder,
    dvbsub_decode,
    .long_name = NULL_IF_CONFIG_SMALL("DVB subtitles"),
}

Definition at line 1483 of file dvbsubdec.c.