#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 |
Definition in file cdgraphics.c.
#define CDG_BORDER_HEIGHT 12 |
#define CDG_BORDER_WIDTH 6 |
#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 |
#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 |
Definition at line 35 of file cdgraphics.c.
Referenced by cdg_border_preset(), cdg_decode_frame(), cdg_decode_init(), cdg_scroll(), and cdg_tile_block().
#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 |
#define CDG_INST_BORDER_PRESET 2 |
#define CDG_INST_LOAD_PAL_HIGH 31 |
#define CDG_INST_LOAD_PAL_LO 30 |
#define CDG_INST_MEMORY_PRESET 1 |
#define CDG_INST_SCROLL_COPY 24 |
#define CDG_INST_SCROLL_PRESET 20 |
#define CDG_INST_TILE_BLOCK 6 |
#define CDG_INST_TILE_BLOCK_XOR 38 |
#define CDG_MASK 0x3F |
#define CDG_MINIMUM_PKT_SIZE 6 |
#define CDG_MINIMUM_SCROLL_SIZE 3 |
#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 |
#define CDG_TILE_HEIGHT 12 |
#define CDG_TILE_WIDTH 6 |
#define DOWN 1 |
#define LEFT 2 |
Definition at line 170 of file cdgraphics.c.
Referenced by cdg_scroll(), ff_h264_decode_mb_cabac(), ff_h264_filter_mb(), and fill_decode_caches().
#define RIGHT 1 |
#define UP 2 |
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] |
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] |
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] |
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] |
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] |
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] |
Initial value:
{ .name = "cdgraphics", .type = AVMEDIA_TYPE_VIDEO, .id = 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.