libavcodec/cdgraphics.c File Reference

CD Graphics Video Decoder. More...

#include "avcodec.h"
#include "bytestream.h"

Go to the source code of this file.

Data Structures

struct  CDGraphicsContext

Defines

#define CDG_FULL_WIDTH   300
 default screen sizes
#define CDG_FULL_HEIGHT   216
#define CDG_DISPLAY_WIDTH   294
#define CDG_DISPLAY_HEIGHT   204
#define CDG_BORDER_WIDTH   6
#define CDG_BORDER_HEIGHT   12
#define CDG_COMMAND   0x09
 masks
#define CDG_MASK   0x3F
#define CDG_INST_MEMORY_PRESET   1
 instruction codes
#define CDG_INST_BORDER_PRESET   2
#define CDG_INST_TILE_BLOCK   6
#define CDG_INST_SCROLL_PRESET   20
#define CDG_INST_SCROLL_COPY   24
#define CDG_INST_LOAD_PAL_LO   30
#define CDG_INST_LOAD_PAL_HIGH   31
#define CDG_INST_TILE_BLOCK_XOR   38
#define CDG_PACKET_SIZE   24
 data sizes
#define CDG_DATA_SIZE   16
#define CDG_TILE_HEIGHT   12
#define CDG_TILE_WIDTH   6
#define CDG_MINIMUM_PKT_SIZE   6
#define CDG_MINIMUM_SCROLL_SIZE   3
#define CDG_HEADER_SIZE   8
#define CDG_PALETTE_SIZE   16
#define UP   2
#define DOWN   1
#define LEFT   2
#define RIGHT   1

Functions

static void cdg_init_frame (AVFrame *frame)
static av_cold int cdg_decode_init (AVCodecContext *avctx)
static void cdg_border_preset (CDGraphicsContext *cc, uint8_t *data)
static void cdg_load_palette (CDGraphicsContext *cc, uint8_t *data, int low)
static int cdg_tile_block (CDGraphicsContext *cc, uint8_t *data, int b)
static void cdg_copy_rect_buf (int out_tl_x, int out_tl_y, uint8_t *out, int in_tl_x, int in_tl_y, uint8_t *in, int w, int h, int stride)
static void cdg_fill_rect_preset (int tl_x, int tl_y, uint8_t *out, int color, int w, int h, int stride)
static void cdg_fill_wrapper (int out_tl_x, int out_tl_y, uint8_t *out, int in_tl_x, int in_tl_y, uint8_t *in, int color, int w, int h, int stride, int roll)
static void cdg_scroll (CDGraphicsContext *cc, uint8_t *data, AVFrame *new_frame, int roll_over)
static int cdg_decode_frame (AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)
static av_cold int cdg_decode_end (AVCodecContext *avctx)

Variables

AVCodec ff_cdgraphics_decoder


Detailed Description

CD Graphics Video Decoder.

Author:
Michael Tison
See also:
http://wiki.multimedia.cx/index.php?title=CD_Graphics

http://www.ccs.neu.edu/home/bchafy/cdb/info/cdg

Definition in file cdgraphics.c.


Define Documentation

#define CDG_BORDER_HEIGHT   12

Definition at line 39 of file cdgraphics.c.

Referenced by cdg_border_preset(), and cdg_scroll().

#define CDG_BORDER_WIDTH   6

Definition at line 38 of file cdgraphics.c.

Referenced by cdg_border_preset(), and cdg_scroll().

#define CDG_COMMAND   0x09

masks

Definition at line 42 of file cdgraphics.c.

Referenced by cdg_decode_frame(), and read_packet().

#define CDG_DATA_SIZE   16

Definition at line 57 of file cdgraphics.c.

Referenced by cdg_decode_frame().

#define CDG_DISPLAY_HEIGHT   204

Definition at line 37 of file cdgraphics.c.

#define CDG_DISPLAY_WIDTH   294

Definition at line 36 of file cdgraphics.c.

#define CDG_FULL_HEIGHT   216

#define CDG_FULL_WIDTH   300

default screen sizes

Definition at line 34 of file cdgraphics.c.

Referenced by cdg_border_preset(), cdg_decode_init(), cdg_scroll(), and cdg_tile_block().

#define CDG_HEADER_SIZE   8

Definition at line 62 of file cdgraphics.c.

Referenced by cdg_decode_frame().

#define CDG_INST_BORDER_PRESET   2

Definition at line 47 of file cdgraphics.c.

Referenced by cdg_decode_frame().

#define CDG_INST_LOAD_PAL_HIGH   31

Definition at line 52 of file cdgraphics.c.

Referenced by cdg_decode_frame().

#define CDG_INST_LOAD_PAL_LO   30

Definition at line 51 of file cdgraphics.c.

Referenced by cdg_decode_frame().

#define CDG_INST_MEMORY_PRESET   1

instruction codes

Definition at line 46 of file cdgraphics.c.

Referenced by cdg_decode_frame().

#define CDG_INST_SCROLL_COPY   24

Definition at line 50 of file cdgraphics.c.

Referenced by cdg_decode_frame().

#define CDG_INST_SCROLL_PRESET   20

Definition at line 49 of file cdgraphics.c.

Referenced by cdg_decode_frame().

#define CDG_INST_TILE_BLOCK   6

Definition at line 48 of file cdgraphics.c.

Referenced by cdg_decode_frame().

#define CDG_INST_TILE_BLOCK_XOR   38

Definition at line 53 of file cdgraphics.c.

Referenced by cdg_decode_frame().

#define CDG_MASK   0x3F

Definition at line 43 of file cdgraphics.c.

Referenced by cdg_decode_frame(), and read_packet().

#define CDG_MINIMUM_PKT_SIZE   6

Definition at line 60 of file cdgraphics.c.

Referenced by cdg_decode_frame().

#define CDG_MINIMUM_SCROLL_SIZE   3

Definition at line 61 of file cdgraphics.c.

Referenced by cdg_decode_frame().

#define CDG_PACKET_SIZE   24

data sizes

Definition at line 56 of file cdgraphics.c.

Referenced by read_header(), and read_packet().

#define CDG_PALETTE_SIZE   16

Definition at line 63 of file cdgraphics.c.

Referenced by cdg_scroll().

#define CDG_TILE_HEIGHT   12

Definition at line 58 of file cdgraphics.c.

Referenced by cdg_tile_block().

#define CDG_TILE_WIDTH   6

Definition at line 59 of file cdgraphics.c.

Referenced by cdg_tile_block().

#define DOWN   1

Definition at line 169 of file cdgraphics.c.

Referenced by cdg_scroll().

#define LEFT   2

#define RIGHT   1

Definition at line 171 of file cdgraphics.c.

Referenced by cdg_scroll().

#define UP   2

Definition at line 168 of file cdgraphics.c.

Referenced by cdg_scroll().


Function Documentation

static void cdg_border_preset ( CDGraphicsContext cc,
uint8_t data 
) [static]

fill the top and bottom borders

fill the side borders

Definition at line 94 of file cdgraphics.c.

Referenced by cdg_decode_frame().

static void cdg_copy_rect_buf ( int  out_tl_x,
int  out_tl_y,
uint8_t out,
int  in_tl_x,
int  in_tl_y,
uint8_t in,
int  w,
int  h,
int  stride 
) [static]

Definition at line 173 of file cdgraphics.c.

Referenced by cdg_fill_wrapper().

static av_cold int cdg_decode_end ( AVCodecContext avctx  )  [static]

Definition at line 364 of file cdgraphics.c.

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

skipping 2 unneeded bytes

Definition at line 268 of file cdgraphics.c.

static av_cold int cdg_decode_init ( AVCodecContext avctx  )  [static]

Definition at line 81 of file cdgraphics.c.

static void cdg_fill_rect_preset ( int  tl_x,
int  tl_y,
uint8_t out,
int  color,
int  w,
int  h,
int  stride 
) [static]

Definition at line 185 of file cdgraphics.c.

Referenced by cdg_fill_wrapper().

static void cdg_fill_wrapper ( int  out_tl_x,
int  out_tl_y,
uint8_t out,
int  in_tl_x,
int  in_tl_y,
uint8_t in,
int  color,
int  w,
int  h,
int  stride,
int  roll 
) [static]

Definition at line 194 of file cdgraphics.c.

Referenced by cdg_scroll().

static void cdg_init_frame ( AVFrame frame  )  [static]

Definition at line 71 of file cdgraphics.c.

Referenced by cdg_decode_frame(), and cdg_decode_init().

static void cdg_load_palette ( CDGraphicsContext cc,
uint8_t data,
int  low 
) [static]

Definition at line 116 of file cdgraphics.c.

Referenced by cdg_decode_frame().

static void cdg_scroll ( CDGraphicsContext cc,
uint8_t data,
AVFrame new_frame,
int  roll_over 
) [static]

find the difference and save the offset for cdg_tile_block usage

Definition at line 206 of file cdgraphics.c.

Referenced by cdg_decode_frame().

static int cdg_tile_block ( CDGraphicsContext cc,
uint8_t data,
int  b 
) [static]

Definition at line 134 of file cdgraphics.c.

Referenced by cdg_decode_frame().


Variable Documentation

Initial value:

 {
    .name           = "cdgraphics",
    .type           = AVMEDIA_TYPE_VIDEO,
    .id             = AV_CODEC_ID_CDGRAPHICS,
    .priv_data_size = sizeof(CDGraphicsContext),
    .init           = cdg_decode_init,
    .close          = cdg_decode_end,
    .decode         = cdg_decode_frame,
    .capabilities   = CODEC_CAP_DR1,
    .long_name      = NULL_IF_CONFIG_SMALL("CD Graphics video"),
}

Definition at line 374 of file cdgraphics.c.


Generated on Fri Oct 26 02:50:04 2012 for FFmpeg by  doxygen 1.5.8