FFmpeg
|
#include "libavutil/avassert.h"
#include "libavutil/mem.h"
#include "avcodec.h"
#include "bytestream.h"
#include "copy_block.h"
#include "codec_internal.h"
#include "decode.h"
Go to the source code of this file.
Data Structures | |
struct | SANMVideoContext |
Macros | |
#define | NGLYPHS 256 |
#define | GLYPH_COORD_VECT_SIZE 16 |
#define | PALETTE_SIZE 256 |
#define | PALETTE_DELTA 768 |
Enumerations | |
enum | GlyphEdge { LEFT_EDGE, TOP_EDGE, RIGHT_EDGE, BOTTOM_EDGE, NO_EDGE } |
enum | GlyphDir { DIR_LEFT, DIR_UP, DIR_RIGHT, DIR_DOWN, NO_DIR } |
Functions | |
static enum GlyphEdge | which_edge (int x, int y, int edge_size) |
Return enum GlyphEdge of box where point (x, y) lies. More... | |
static enum GlyphDir | which_direction (enum GlyphEdge edge0, enum GlyphEdge edge1) |
static void | interp_point (int8_t *points, int x0, int y0, int x1, int y1, int pos, int npoints) |
static void | make_glyphs (int8_t *pglyphs, const int8_t *xvec, const int8_t *yvec, const int side_length) |
Construct glyphs by iterating through vector coordinates. More... | |
static void | init_sizes (SANMVideoContext *ctx, int width, int height) |
static void | destroy_buffers (SANMVideoContext *ctx) |
static av_cold int | init_buffers (SANMVideoContext *ctx) |
static void | codec33_gen_tiles (SANMVideoContext *ctx, int8_t param1) |
static void | codec4_gen_tiles (SANMVideoContext *ctx, uint16_t param1) |
static int | codec4_load_tiles (SANMVideoContext *ctx, GetByteContext *gb, uint16_t param2, uint8_t clr) |
static void | rotate_bufs (SANMVideoContext *ctx, int rotate_code) |
static av_cold int | decode_init (AVCodecContext *avctx) |
static av_cold int | decode_end (AVCodecContext *avctx) |
static int | old_codec4 (SANMVideoContext *ctx, GetByteContext *gb, int top, int left, int w, int h, uint8_t param, uint16_t param2, int codec) |
static int | rle_decode (SANMVideoContext *ctx, GetByteContext *gb, uint8_t *dst, const int out_size) |
static int | old_codec23 (SANMVideoContext *ctx, GetByteContext *gb, int top, int left, int width, int height, uint8_t param, uint16_t param2) |
static int | old_codec21 (SANMVideoContext *ctx, GetByteContext *gb, int top, int left, int width, int height) |
static int | old_codec1 (SANMVideoContext *ctx, GetByteContext *gb, int top, int left, int width, int height, int opaque) |
static int | old_codec31 (SANMVideoContext *ctx, GetByteContext *gb, int top, int left, int width, int height, int p1, int opaque) |
static int | old_codec2 (SANMVideoContext *ctx, GetByteContext *gb, int top, int left, int width, int height) |
static void | blt_solid (uint8_t *dst, const uint8_t *src, int16_t left, int16_t top, uint16_t srcxoff, uint16_t srcyoff, uint16_t srcwidth, uint16_t srcheight, const uint16_t srcpitch, const uint16_t dstpitch, const uint16_t dstheight, int32_t size) |
static void | blt_mask (uint8_t *dst, const uint8_t *src, int16_t left, int16_t top, uint16_t srcxoff, uint16_t srcyoff, uint16_t srcwidth, uint16_t srcheight, const uint16_t srcpitch, const uint16_t dstpitch, const uint16_t dstheight, int32_t size, const uint8_t skipcolor) |
static void | blt_ipol (uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int16_t left, int16_t top, uint16_t srcxoff, uint16_t srcyoff, uint16_t srcwidth, uint16_t srcheight, const uint16_t srcpitch, const uint16_t dstpitch, const uint16_t dstheight, int32_t size, const uint8_t *itbl) |
static int | old_codec20 (SANMVideoContext *ctx, GetByteContext *gb, int top, int left, const int w, const int h) |
static void | codec37_mv (uint8_t *dst, const uint8_t *src, int height, int stride, int x, int y) |
static int | old_codec37 (SANMVideoContext *ctx, GetByteContext *gb, int top, int left, int width, int height) |
static int | codec47_block (SANMVideoContext *ctx, GetByteContext *gb, uint8_t *dst, uint8_t *prev1, uint8_t *prev2, int stride, int size) |
static void | codec47_read_interptable (GetByteContext *gb, uint8_t *itbl) |
static void | codec47_comp1 (GetByteContext *gb, uint8_t *dst_in, int width, const int height, const ptrdiff_t stride, const uint8_t *itbl) |
static int | old_codec47 (SANMVideoContext *ctx, GetByteContext *gb, int top, int left, int width, int height) |
static void | c48_4to8 (uint8_t *dst, const uint8_t *src, const uint16_t w) |
static int | c48_invalid_mv (int x, int y, const uint16_t w, int h, int blocksize, int mvofs) |
static int | codec48_block (GetByteContext *gb, uint8_t *dst, uint8_t *db, int x, int y, const uint16_t w, const int aligned_height, const uint8_t *itbl) |
static int | old_codec48 (SANMVideoContext *ctx, GetByteContext *gb, int top, int left, int width, int height) |
static int | process_frame_obj (SANMVideoContext *ctx, GetByteContext *gb, int xoff, int yoff) |
static int | process_ftch (SANMVideoContext *ctx, int size) |
static int | process_xpal (SANMVideoContext *ctx, int size) |
static int | bl16_decode_0 (SANMVideoContext *ctx) |
static uint16_t | bl16_c1_avg_col (uint16_t c1, uint16_t c2) |
static int | bl16_decode_1 (SANMVideoContext *ctx) |
static void | copy_block (uint16_t *pdest, uint16_t *psrc, int block_size, ptrdiff_t pitch) |
static void | fill_block (uint16_t *pdest, uint16_t color, int block_size, ptrdiff_t pitch) |
static int | draw_glyph (SANMVideoContext *ctx, uint16_t *dst, int index, uint16_t fg_color, uint16_t bg_color, int block_size, ptrdiff_t pitch) |
static int | opcode_0xf7 (SANMVideoContext *ctx, int cx, int cy, int block_size, ptrdiff_t pitch) |
static int | opcode_0xf8 (SANMVideoContext *ctx, int cx, int cy, int block_size, ptrdiff_t pitch) |
static int | good_mvec (SANMVideoContext *ctx, int cx, int cy, int mx, int my, int block_size) |
static int | bl16_block (SANMVideoContext *ctx, int cx, int cy, int blk_size) |
static int | bl16_decode_2 (SANMVideoContext *ctx) |
static int | bl16_decode_5 (SANMVideoContext *ctx, int rle_size) |
static int | bl16_decode_6 (SANMVideoContext *ctx) |
static int | bl16_decode_7 (SANMVideoContext *ctx) |
static int | bl16_decode_8 (SANMVideoContext *ctx) |
static void | fill_frame (uint16_t *pbuf, int buf_size, uint16_t color) |
static int | copy_output (SANMVideoContext *ctx, int sanm) |
static int | decode_bl16 (AVCodecContext *avctx, int *got_frame_ptr) |
static int | decode_anim (AVCodecContext *avctx, int *got_frame_ptr) |
static int | decode_frame (AVCodecContext *avctx, AVFrame *frame, int *got_frame_ptr, AVPacket *pkt) |
Variables | |
static const int8_t | glyph4_x [GLYPH_COORD_VECT_SIZE] |
static const int8_t | glyph4_y [GLYPH_COORD_VECT_SIZE] |
static const int8_t | glyph8_x [GLYPH_COORD_VECT_SIZE] |
static const int8_t | glyph8_y [GLYPH_COORD_VECT_SIZE] |
static const int8_t | c47_mv [256][2] |
static const int8_t | c37_mv [] |
const FFCodec | ff_sanm_decoder |
enum GlyphEdge |
enum GlyphDir |
|
static |
Return enum GlyphEdge of box where point (x, y) lies.
x | x point coordinate |
y | y point coordinate |
edge_size | box width/height. |
Definition at line 325 of file sanm.c.
Referenced by make_glyphs().
Definition at line 341 of file sanm.c.
Referenced by make_glyphs().
|
static |
Definition at line 364 of file sanm.c.
Referenced by make_glyphs().
|
static |
Construct glyphs by iterating through vector coordinates.
pglyphs | pointer to table where glyphs are stored |
xvec | pointer to x component of vector coordinates |
yvec | pointer to y component of vector coordinates |
side_length | glyph width/height. |
Definition at line 384 of file sanm.c.
Referenced by decode_init().
|
static |
Definition at line 436 of file sanm.c.
Referenced by decode_init(), destroy_buffers(), and process_frame_obj().
|
static |
Definition at line 449 of file sanm.c.
Referenced by decode_end(), and init_buffers().
|
static |
Definition at line 463 of file sanm.c.
Referenced by decode_init(), and process_frame_obj().
|
static |
Definition at line 484 of file sanm.c.
Referenced by old_codec4().
|
static |
Definition at line 548 of file sanm.c.
Referenced by old_codec4().
|
static |
Definition at line 597 of file sanm.c.
Referenced by old_codec4().
|
static |
Definition at line 615 of file sanm.c.
Referenced by decode_bl16(), and old_codec47().
|
static |
|
static |
|
static |
Definition at line 677 of file sanm.c.
Referenced by process_frame_obj().
|
static |
Definition at line 744 of file sanm.c.
Referenced by bl16_decode_5(), bl16_decode_8(), old_codec37(), old_codec47(), and old_codec48().
|
static |
Definition at line 770 of file sanm.c.
Referenced by process_frame_obj().
|
static |
Definition at line 836 of file sanm.c.
Referenced by process_frame_obj().
|
static |
Definition at line 881 of file sanm.c.
Referenced by process_frame_obj().
|
static |
Definition at line 948 of file sanm.c.
Referenced by process_frame_obj().
|
static |
Definition at line 1014 of file sanm.c.
Referenced by process_frame_obj().
|
static |
Definition at line 1032 of file sanm.c.
Referenced by old_codec20(), old_codec37(), old_codec47(), and old_codec48().
|
static |
Definition at line 1084 of file sanm.c.
Referenced by old_codec37(), and old_codec48().
|
static |
Definition at line 1136 of file sanm.c.
Referenced by old_codec48().
|
static |
Definition at line 1190 of file sanm.c.
Referenced by process_frame_obj().
|
inlinestatic |
Definition at line 1199 of file sanm.c.
Referenced by old_codec37().
|
static |
Definition at line 1218 of file sanm.c.
Referenced by process_frame_obj().
|
static |
Definition at line 1403 of file sanm.c.
Referenced by old_codec47().
|
static |
Definition at line 1489 of file sanm.c.
Referenced by old_codec47(), and old_codec48().
|
static |
Definition at line 1505 of file sanm.c.
Referenced by old_codec47(), and old_codec48().
|
static |
Definition at line 1538 of file sanm.c.
Referenced by process_frame_obj().
|
static |
Definition at line 1634 of file sanm.c.
Referenced by codec48_block().
|
static |
Definition at line 1649 of file sanm.c.
Referenced by codec48_block().
|
static |
Definition at line 1659 of file sanm.c.
Referenced by old_codec48().
|
static |
Definition at line 1838 of file sanm.c.
Referenced by process_frame_obj().
|
static |
Definition at line 1949 of file sanm.c.
Referenced by decode_anim(), and process_ftch().
|
static |
Definition at line 2089 of file sanm.c.
Referenced by decode_anim().
|
static |
Definition at line 2129 of file sanm.c.
Referenced by decode_anim().
|
static |
Definition at line 2176 of file sanm.c.
Referenced by decode_bl16().
|
inlinestatic |
Definition at line 2194 of file sanm.c.
Referenced by bl16_decode_1(), and bl16_decode_7().
|
static |
Definition at line 2205 of file sanm.c.
Referenced by decode_bl16().
|
static |
Definition at line 2249 of file sanm.c.
Referenced by bl16_block().
|
static |
Definition at line 2268 of file sanm.c.
Referenced by bl16_block().
|
static |
Definition at line 2278 of file sanm.c.
Referenced by opcode_0xf7(), and opcode_0xf8().
|
static |
Definition at line 2300 of file sanm.c.
Referenced by bl16_block().
|
static |
Definition at line 2334 of file sanm.c.
Referenced by bl16_block().
|
static |
Definition at line 2362 of file sanm.c.
Referenced by bl16_block().
|
static |
Definition at line 2378 of file sanm.c.
Referenced by bl16_decode_2().
|
static |
Definition at line 2477 of file sanm.c.
Referenced by decode_bl16().
|
static |
Definition at line 2489 of file sanm.c.
Referenced by decode_bl16().
|
static |
Definition at line 2512 of file sanm.c.
Referenced by decode_bl16().
|
static |
Definition at line 2532 of file sanm.c.
Referenced by decode_bl16().
|
static |
Definition at line 2576 of file sanm.c.
Referenced by decode_bl16().
|
static |
Definition at line 2598 of file sanm.c.
Referenced by decode_bl16().
|
static |
Definition at line 2606 of file sanm.c.
Referenced by decode_anim(), and decode_bl16().
|
static |
Definition at line 2628 of file sanm.c.
Referenced by decode_frame().
|
static |
Definition at line 2714 of file sanm.c.
Referenced by decode_frame().
|
static |
|
static |
Definition at line 37 of file sanm.c.
Referenced by decode_init().
|
static |
Definition at line 41 of file sanm.c.
Referenced by decode_init().
|
static |
Definition at line 45 of file sanm.c.
Referenced by decode_init().
|
static |
Definition at line 49 of file sanm.c.
Referenced by decode_init().
|
static |
Definition at line 54 of file sanm.c.
Referenced by bl16_block(), and codec47_block().
|
static |
Definition at line 109 of file sanm.c.
Referenced by codec48_block(), and old_codec37().
const FFCodec ff_sanm_decoder |