#include "avcodec.h"#include "bytestream.h"#include "libavutil/bswap.h"#include "libavcodec/dsputil.h"#include "sanm_data.h"Go to the source code of this file.
Data Structures | |
| struct | SANMVideoContext |
| struct | SANMFrameHeader |
Defines | |
| #define | NGLYPHS 256 |
Typedefs | |
| typedef int(* | frm_decoder )(SANMVideoContext *ctx) |
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. | |
| 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) |
| Interpolate two points. | |
| static void | make_glyphs (int8_t *pglyphs, const int8_t *xvec, const int8_t *yvec, const int side_length) |
| Construct glyphs by iterating through vectors coordinates. | |
| 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 | 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 | rle_decode (SANMVideoContext *ctx, uint8_t *dst, const int out_size) |
| static int | old_codec1 (SANMVideoContext *ctx, int top, int left, int width, int height) |
| 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, int top, int left, int width, int height) |
| static int | process_block (SANMVideoContext *ctx, uint8_t *dst, uint8_t *prev1, uint8_t *prev2, int stride, int tbl, int size) |
| static int | old_codec47 (SANMVideoContext *ctx, int top, int left, int width, int height) |
| static int | process_frame_obj (SANMVideoContext *ctx) |
| static int | decode_0 (SANMVideoContext *ctx) |
| static int | decode_nop (SANMVideoContext *ctx) |
| static void | copy_block (uint16_t *pdest, uint16_t *psrc, int block_size, int pitch) |
| static void | fill_block (uint16_t *pdest, uint16_t color, int block_size, int pitch) |
| static int | draw_glyph (SANMVideoContext *ctx, uint16_t *dst, int index, uint16_t fg_color, uint16_t bg_color, int block_size, int pitch) |
| static int | opcode_0xf7 (SANMVideoContext *ctx, int cx, int cy, int block_size, int pitch) |
| static int | opcode_0xf8 (SANMVideoContext *ctx, int cx, int cy, int block_size, int pitch) |
| static int | good_mvec (SANMVideoContext *ctx, int cx, int cy, int mx, int my, int block_size) |
| static int | codec2subblock (SANMVideoContext *ctx, int cx, int cy, int blk_size) |
| static int | decode_2 (SANMVideoContext *ctx) |
| static int | decode_3 (SANMVideoContext *ctx) |
| static int | decode_4 (SANMVideoContext *ctx) |
| static int | decode_5 (SANMVideoContext *ctx) |
| static int | decode_6 (SANMVideoContext *ctx) |
| static int | decode_8 (SANMVideoContext *ctx) |
| static int | read_frame_header (SANMVideoContext *ctx, SANMFrameHeader *hdr) |
| static void | fill_frame (uint16_t *pbuf, int buf_size, uint16_t color) |
| static int | copy_output (SANMVideoContext *ctx, SANMFrameHeader *hdr) |
| static int | decode_frame (AVCodecContext *avctx, void *data, int *got_frame_ptr, AVPacket *pkt) |
Variables | |
| static const frm_decoder | v1_decoders [] |
| AVCodec | ff_sanm_decoder |
| #define NGLYPHS 256 |
| typedef int(* frm_decoder)(SANMVideoContext *ctx) |
| enum GlyphDir |
| enum GlyphEdge |
| static int codec2subblock | ( | SANMVideoContext * | ctx, | |
| int | cx, | |||
| int | cy, | |||
| int | blk_size | |||
| ) | [static] |
| static int copy_output | ( | SANMVideoContext * | ctx, | |
| SANMFrameHeader * | hdr | |||
| ) | [static] |
| static int decode_0 | ( | SANMVideoContext * | ctx | ) | [static] |
| static int decode_2 | ( | SANMVideoContext * | ctx | ) | [static] |
| static int decode_3 | ( | SANMVideoContext * | ctx | ) | [static] |
| static int decode_4 | ( | SANMVideoContext * | ctx | ) | [static] |
| static int decode_5 | ( | SANMVideoContext * | ctx | ) | [static] |
| static int decode_6 | ( | SANMVideoContext * | ctx | ) | [static] |
| static int decode_8 | ( | SANMVideoContext * | ctx | ) | [static] |
| static av_cold int decode_end | ( | AVCodecContext * | avctx | ) | [static] |
| static int decode_frame | ( | AVCodecContext * | avctx, | |
| void * | data, | |||
| int * | got_frame_ptr, | |||
| AVPacket * | pkt | |||
| ) | [static] |
| static av_cold int decode_init | ( | AVCodecContext * | avctx | ) | [static] |
| static int decode_nop | ( | SANMVideoContext * | ctx | ) | [static] |
| static void destroy_buffers | ( | SANMVideoContext * | ctx | ) | [static] |
Definition at line 224 of file sanm.c.
Referenced by decode_end(), ff_vaapi_common_end_frame(), and init_buffers().
| static int draw_glyph | ( | SANMVideoContext * | ctx, | |
| uint16_t * | dst, | |||
| int | index, | |||
| uint16_t | fg_color, | |||
| uint16_t | bg_color, | |||
| int | block_size, | |||
| int | pitch | |||
| ) | [static] |
| static void fill_frame | ( | uint16_t * | pbuf, | |
| int | buf_size, | |||
| uint16_t | color | |||
| ) | [static] |
| static av_cold int init_buffers | ( | SANMVideoContext * | ctx | ) | [static] |
| static void init_sizes | ( | SANMVideoContext * | ctx, | |
| int | width, | |||
| int | height | |||
| ) | [static] |
| static void make_glyphs | ( | int8_t * | pglyphs, | |
| const int8_t * | xvec, | |||
| const int8_t * | yvec, | |||
| const int | side_length | |||
| ) | [static] |
Construct glyphs by iterating through vectors coordinates.
| pglyphs | pointer to table where glyphs are stored | |
| xvec | pointer to x component of vectors coordinates | |
| yvec | pointer to y component of vectors coordinates | |
| side_length | glyph width/height. |
Definition at line 159 of file sanm.c.
Referenced by decode_init().
| static int process_frame_obj | ( | SANMVideoContext * | ctx | ) | [static] |
| static int read_frame_header | ( | SANMVideoContext * | ctx, | |
| SANMFrameHeader * | hdr | |||
| ) | [static] |
| static int rle_decode | ( | SANMVideoContext * | ctx, | |
| uint8_t * | dst, | |||
| const int | out_size | |||
| ) | [static] |
Definition at line 307 of file sanm.c.
Referenced by decode_5(), decode_8(), old_codec37(), and old_codec47().
| static void rotate_bufs | ( | SANMVideoContext * | ctx, | |
| int | rotate_code | |||
| ) | [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 96 of file sanm.c.
Referenced by make_glyphs().
Initial value:
{
.name = "sanm",
.type = AVMEDIA_TYPE_VIDEO,
.id = AV_CODEC_ID_SANM,
.priv_data_size = sizeof(SANMVideoContext),
.init = decode_init,
.close = decode_end,
.decode = decode_frame,
.capabilities = CODEC_CAP_DR1,
.long_name = NULL_IF_CONFIG_SMALL("LucasArts SMUSH video"),
}
const frm_decoder v1_decoders[] [static] |
1.5.8