FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
dvdsubdec.c File Reference
#include "avcodec.h"
#include "get_bits.h"
#include "dsputil.h"
#include "internal.h"
#include "libavutil/attributes.h"
#include "libavutil/colorspace.h"
#include "libavutil/opt.h"
#include "libavutil/imgutils.h"
#include "libavutil/avstring.h"

Go to the source code of this file.

Data Structures

struct  DVDSubContext
 

Macros

#define READ_OFFSET(a)   (big_offsets ? AV_RB32(a) : AV_RB16(a))
 
#define OFFSET(field)   offsetof(DVDSubContext, field)
 
#define VD   AV_OPT_FLAG_SUBTITLE_PARAM | AV_OPT_FLAG_DECODING_PARAM
 

Functions

static void yuv_a_to_rgba (const uint8_t *ycbcr, const uint8_t *alpha, uint32_t *rgba, int num_values)
 
static int decode_run_2bit (GetBitContext *gb, int *color)
 
static int decode_run_8bit (GetBitContext *gb, int *color)
 
static int decode_rle (uint8_t *bitmap, int linesize, int w, int h, const uint8_t *buf, int start, int buf_size, int is_8bit)
 
static void guess_palette (DVDSubContext *ctx, uint32_t *rgba_palette, uint32_t subtitle_color)
 
static void reset_rects (AVSubtitle *sub_header)
 
static int decode_dvd_subtitles (DVDSubContext *ctx, AVSubtitle *sub_header, const uint8_t *buf, int buf_size)
 
static int is_transp (const uint8_t *buf, int pitch, int n, const uint8_t *transp_color)
 
static int find_smallest_bounding_rectangle (AVSubtitle *s)
 
static int append_to_cached_buf (AVCodecContext *avctx, const uint8_t *buf, int buf_size)
 
static int dvdsub_decode (AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)
 
static void parse_palette (DVDSubContext *ctx, char *p)
 
static int dvdsub_parse_extradata (AVCodecContext *avctx)
 
static av_cold int dvdsub_init (AVCodecContext *avctx)
 
static av_cold int dvdsub_close (AVCodecContext *avctx)
 

Variables

static const AVOption options []
 
static const AVClass dvdsub_class
 
AVCodec ff_dvdsub_decoder
 

Macro Definition Documentation

#define READ_OFFSET (   a)    (big_offsets ? AV_RB32(a) : AV_RB16(a))

Definition at line 209 of file dvdsubdec.c.

Referenced by decode_dvd_subtitles().

#define OFFSET (   field)    offsetof(DVDSubContext, field)

Definition at line 646 of file dvdsubdec.c.

Definition at line 647 of file dvdsubdec.c.

Function Documentation

static void yuv_a_to_rgba ( const uint8_t ycbcr,
const uint8_t alpha,
uint32_t *  rgba,
int  num_values 
)
static

Definition at line 47 of file dvdsubdec.c.

Referenced by decode_dvd_subtitles().

static int decode_run_2bit ( GetBitContext gb,
int *  color 
)
static

Definition at line 64 of file dvdsubdec.c.

Referenced by decode_rle().

static int decode_run_8bit ( GetBitContext gb,
int *  color 
)
static

Definition at line 78 of file dvdsubdec.c.

Referenced by decode_rle().

static int decode_rle ( uint8_t bitmap,
int  linesize,
int  w,
int  h,
const uint8_t buf,
int  start,
int  buf_size,
int  is_8bit 
)
static

Definition at line 100 of file dvdsubdec.c.

Referenced by decode_dvd_subtitles().

static void guess_palette ( DVDSubContext ctx,
uint32_t *  rgba_palette,
uint32_t  subtitle_color 
)
static

Definition at line 137 of file dvdsubdec.c.

Referenced by decode_dvd_subtitles().

static void reset_rects ( AVSubtitle sub_header)
static

Definition at line 194 of file dvdsubdec.c.

Referenced by decode_dvd_subtitles().

static int decode_dvd_subtitles ( DVDSubContext ctx,
AVSubtitle sub_header,
const uint8_t buf,
int  buf_size 
)
static

Definition at line 211 of file dvdsubdec.c.

Referenced by dvdsub_decode().

static int is_transp ( const uint8_t buf,
int  pitch,
int  n,
const uint8_t transp_color 
)
static

Definition at line 398 of file dvdsubdec.c.

Referenced by find_smallest_bounding_rectangle().

static int find_smallest_bounding_rectangle ( AVSubtitle s)
static

Definition at line 411 of file dvdsubdec.c.

Referenced by dvdsub_decode().

static int append_to_cached_buf ( AVCodecContext avctx,
const uint8_t buf,
int  buf_size 
)
static

Definition at line 492 of file dvdsubdec.c.

Referenced by dvdsub_decode().

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

Definition at line 511 of file dvdsubdec.c.

static void parse_palette ( DVDSubContext ctx,
char *  p 
)
static

Definition at line 565 of file dvdsubdec.c.

Referenced by dvdsub_init(), and dvdsub_parse_extradata().

static int dvdsub_parse_extradata ( AVCodecContext avctx)
static

Definition at line 577 of file dvdsubdec.c.

Referenced by dvdsub_init().

static av_cold int dvdsub_init ( AVCodecContext avctx)
static

Definition at line 617 of file dvdsubdec.c.

static av_cold int dvdsub_close ( AVCodecContext avctx)
static

Definition at line 638 of file dvdsubdec.c.

Variable Documentation

const AVOption options[]
static
Initial value:
= {
{ "palette", "set the global palette", OFFSET(palette_str), AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, VD },
{ NULL }
}

Definition at line 648 of file dvdsubdec.c.

const AVClass dvdsub_class
static
Initial value:
= {
.class_name = "dvdsubdec",
.item_name = av_default_item_name,
.option = options,
}

Definition at line 652 of file dvdsubdec.c.

AVCodec ff_dvdsub_decoder
Initial value:
= {
.name = "dvdsub",
.long_name = NULL_IF_CONFIG_SMALL("DVD subtitles"),
.priv_data_size = sizeof(DVDSubContext),
.priv_class = &dvdsub_class,
}

Definition at line 659 of file dvdsubdec.c.