FFmpeg
Loading...
Searching...
No Matches
sanm.c File Reference
#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.
 
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.
 
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 void old_codec45 (SANMVideoContext *ctx, GetByteContext *gb, int top, int left, int flag)
 
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
 

Macro Definition Documentation

◆ NGLYPHS

#define NGLYPHS   256

Definition at line 32 of file sanm.c.

Referenced by draw_glyph().

◆ GLYPH_COORD_VECT_SIZE

#define GLYPH_COORD_VECT_SIZE   16

Definition at line 33 of file sanm.c.

Referenced by make_glyphs().

◆ PALETTE_SIZE

#define PALETTE_SIZE   256

Definition at line 34 of file sanm.c.

Referenced by decode_anim(), decode_init(), process_xpal(), wc3_read_header(), and xan_decode_frame().

◆ PALETTE_DELTA

#define PALETTE_DELTA   768

Definition at line 35 of file sanm.c.

Referenced by process_xpal().

Enumeration Type Documentation

◆ GlyphEdge

enum GlyphEdge
Enumerator
LEFT_EDGE 
TOP_EDGE 
RIGHT_EDGE 
BOTTOM_EDGE 
NO_EDGE 

Definition at line 307 of file sanm.c.

◆ GlyphDir

enum GlyphDir
Enumerator
DIR_LEFT 
DIR_UP 
DIR_RIGHT 
DIR_DOWN 
NO_DIR 

Definition at line 315 of file sanm.c.

Function Documentation

◆ which_edge()

static enum GlyphEdge which_edge ( int x,
int y,
int edge_size )
static

Return enum GlyphEdge of box where point (x, y) lies.

Parameters
xx point coordinate
yy point coordinate
edge_sizebox width/height.

Definition at line 330 of file sanm.c.

Referenced by make_glyphs().

◆ which_direction()

static enum GlyphDir which_direction ( enum GlyphEdge edge0,
enum GlyphEdge edge1 )
static

Definition at line 346 of file sanm.c.

Referenced by make_glyphs().

◆ interp_point()

static void interp_point ( int8_t * points,
int x0,
int y0,
int x1,
int y1,
int pos,
int npoints )
static

Definition at line 369 of file sanm.c.

Referenced by make_glyphs().

◆ make_glyphs()

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 vector coordinates.

Parameters
pglyphspointer to table where glyphs are stored
xvecpointer to x component of vector coordinates
yvecpointer to y component of vector coordinates
side_lengthglyph width/height.

Definition at line 389 of file sanm.c.

Referenced by decode_init().

◆ init_sizes()

static void init_sizes ( SANMVideoContext * ctx,
int width,
int height )
static

Definition at line 441 of file sanm.c.

Referenced by decode_init(), destroy_buffers(), and process_frame_obj().

◆ destroy_buffers()

static void destroy_buffers ( SANMVideoContext * ctx)
static

Definition at line 454 of file sanm.c.

Referenced by decode_end(), and init_buffers().

◆ init_buffers()

static av_cold int init_buffers ( SANMVideoContext * ctx)
static

Definition at line 468 of file sanm.c.

Referenced by decode_init(), and process_frame_obj().

◆ codec33_gen_tiles()

static void codec33_gen_tiles ( SANMVideoContext * ctx,
int8_t param1 )
static

Definition at line 489 of file sanm.c.

Referenced by old_codec4().

◆ codec4_gen_tiles()

static void codec4_gen_tiles ( SANMVideoContext * ctx,
uint16_t param1 )
static

Definition at line 553 of file sanm.c.

Referenced by old_codec4().

◆ codec4_load_tiles()

static int codec4_load_tiles ( SANMVideoContext * ctx,
GetByteContext * gb,
uint16_t param2,
uint8_t clr )
static

Definition at line 602 of file sanm.c.

Referenced by old_codec4().

◆ rotate_bufs()

static void rotate_bufs ( SANMVideoContext * ctx,
int rotate_code )
static

Definition at line 620 of file sanm.c.

Referenced by decode_bl16(), and old_codec47().

◆ decode_init()

static av_cold int decode_init ( AVCodecContext * avctx)
static

Definition at line 627 of file sanm.c.

◆ decode_end()

static av_cold int decode_end ( AVCodecContext * avctx)
static

Definition at line 683 of file sanm.c.

◆ old_codec4()

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

Definition at line 692 of file sanm.c.

Referenced by process_frame_obj().

◆ rle_decode()

static int rle_decode ( SANMVideoContext * ctx,
GetByteContext * gb,
uint8_t * dst,
const int out_size )
static

Definition at line 759 of file sanm.c.

Referenced by bl16_decode_5(), bl16_decode_8(), old_codec37(), old_codec47(), and old_codec48().

◆ old_codec23()

static int old_codec23 ( SANMVideoContext * ctx,
GetByteContext * gb,
int top,
int left,
int width,
int height,
uint8_t param,
uint16_t param2 )
static

Definition at line 785 of file sanm.c.

Referenced by process_frame_obj().

◆ old_codec21()

static int old_codec21 ( SANMVideoContext * ctx,
GetByteContext * gb,
int top,
int left,
int width,
int height )
static

Definition at line 851 of file sanm.c.

Referenced by process_frame_obj().

◆ old_codec1()

static int old_codec1 ( SANMVideoContext * ctx,
GetByteContext * gb,
int top,
int left,
int width,
int height,
int opaque )
static

Definition at line 896 of file sanm.c.

Referenced by process_frame_obj().

◆ old_codec31()

static int old_codec31 ( SANMVideoContext * ctx,
GetByteContext * gb,
int top,
int left,
int width,
int height,
int p1,
int opaque )
static

Definition at line 963 of file sanm.c.

Referenced by process_frame_obj().

◆ old_codec2()

static int old_codec2 ( SANMVideoContext * ctx,
GetByteContext * gb,
int top,
int left,
int width,
int height )
static

Definition at line 1029 of file sanm.c.

Referenced by process_frame_obj().

◆ blt_solid()

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

Definition at line 1047 of file sanm.c.

Referenced by old_codec20(), old_codec37(), old_codec47(), and old_codec48().

◆ blt_mask()

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

Definition at line 1099 of file sanm.c.

Referenced by old_codec37(), and old_codec48().

◆ blt_ipol()

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

Definition at line 1151 of file sanm.c.

Referenced by old_codec48().

◆ old_codec20()

static int old_codec20 ( SANMVideoContext * ctx,
GetByteContext * gb,
int top,
int left,
const int w,
const int h )
static

Definition at line 1205 of file sanm.c.

Referenced by process_frame_obj().

◆ codec37_mv()

static void codec37_mv ( uint8_t * dst,
const uint8_t * src,
int height,
int stride,
int x,
int y )
inlinestatic

Definition at line 1214 of file sanm.c.

Referenced by old_codec37().

◆ old_codec37()

static int old_codec37 ( SANMVideoContext * ctx,
GetByteContext * gb,
int top,
int left,
int width,
int height )
static

Definition at line 1233 of file sanm.c.

Referenced by process_frame_obj().

◆ codec47_block()

static int codec47_block ( SANMVideoContext * ctx,
GetByteContext * gb,
uint8_t * dst,
uint8_t * prev1,
uint8_t * prev2,
int stride,
int size )
static

Definition at line 1420 of file sanm.c.

Referenced by codec47_block(), and old_codec47().

◆ codec47_read_interptable()

static void codec47_read_interptable ( GetByteContext * gb,
uint8_t * itbl )
static

Definition at line 1506 of file sanm.c.

Referenced by old_codec47(), and old_codec48().

◆ codec47_comp1()

static void codec47_comp1 ( GetByteContext * gb,
uint8_t * dst_in,
int width,
const int height,
const ptrdiff_t stride,
const uint8_t * itbl )
static

Definition at line 1522 of file sanm.c.

Referenced by old_codec47(), and old_codec48().

◆ old_codec47()

static int old_codec47 ( SANMVideoContext * ctx,
GetByteContext * gb,
int top,
int left,
int width,
int height )
static

Definition at line 1555 of file sanm.c.

Referenced by process_frame_obj().

◆ c48_4to8()

static void c48_4to8 ( uint8_t * dst,
const uint8_t * src,
const uint16_t w )
static

Definition at line 1654 of file sanm.c.

Referenced by codec48_block().

◆ c48_invalid_mv()

static int c48_invalid_mv ( int x,
int y,
const uint16_t w,
int h,
int blocksize,
int mvofs )
static

Definition at line 1669 of file sanm.c.

Referenced by codec48_block().

◆ codec48_block()

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

Definition at line 1679 of file sanm.c.

Referenced by old_codec48().

◆ old_codec48()

static int old_codec48 ( SANMVideoContext * ctx,
GetByteContext * gb,
int top,
int left,
int width,
int height )
static

Definition at line 1856 of file sanm.c.

Referenced by process_frame_obj().

◆ old_codec45()

static void old_codec45 ( SANMVideoContext * ctx,
GetByteContext * gb,
int top,
int left,
int flag )
static

Definition at line 1967 of file sanm.c.

Referenced by process_frame_obj().

◆ process_frame_obj()

static int process_frame_obj ( SANMVideoContext * ctx,
GetByteContext * gb,
int xoff,
int yoff )
static

Definition at line 2027 of file sanm.c.

Referenced by decode_anim(), and process_ftch().

◆ process_ftch()

static int process_ftch ( SANMVideoContext * ctx,
int size )
static

Definition at line 2165 of file sanm.c.

Referenced by decode_anim().

◆ process_xpal()

static int process_xpal ( SANMVideoContext * ctx,
int size )
static

Definition at line 2205 of file sanm.c.

Referenced by decode_anim().

◆ bl16_decode_0()

static int bl16_decode_0 ( SANMVideoContext * ctx)
static

Definition at line 2252 of file sanm.c.

Referenced by decode_bl16().

◆ bl16_c1_avg_col()

static uint16_t bl16_c1_avg_col ( uint16_t c1,
uint16_t c2 )
inlinestatic

Definition at line 2270 of file sanm.c.

Referenced by bl16_decode_1(), and bl16_decode_7().

◆ bl16_decode_1()

static int bl16_decode_1 ( SANMVideoContext * ctx)
static

Definition at line 2281 of file sanm.c.

Referenced by decode_bl16().

◆ copy_block()

static void copy_block ( uint16_t * pdest,
uint16_t * psrc,
int block_size,
ptrdiff_t pitch )
static

Definition at line 2325 of file sanm.c.

Referenced by bl16_block().

◆ fill_block()

static void fill_block ( uint16_t * pdest,
uint16_t color,
int block_size,
ptrdiff_t pitch )
static

Definition at line 2344 of file sanm.c.

Referenced by bl16_block().

◆ draw_glyph()

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

Definition at line 2354 of file sanm.c.

Referenced by opcode_0xf7(), and opcode_0xf8().

◆ opcode_0xf7()

static int opcode_0xf7 ( SANMVideoContext * ctx,
int cx,
int cy,
int block_size,
ptrdiff_t pitch )
static

Definition at line 2376 of file sanm.c.

Referenced by bl16_block().

◆ opcode_0xf8()

static int opcode_0xf8 ( SANMVideoContext * ctx,
int cx,
int cy,
int block_size,
ptrdiff_t pitch )
static

Definition at line 2410 of file sanm.c.

Referenced by bl16_block().

◆ good_mvec()

static int good_mvec ( SANMVideoContext * ctx,
int cx,
int cy,
int mx,
int my,
int block_size )
static

Definition at line 2438 of file sanm.c.

Referenced by bl16_block().

◆ bl16_block()

static int bl16_block ( SANMVideoContext * ctx,
int cx,
int cy,
int blk_size )
static

Definition at line 2454 of file sanm.c.

Referenced by bl16_block(), and bl16_decode_2().

◆ bl16_decode_2()

static int bl16_decode_2 ( SANMVideoContext * ctx)
static

Definition at line 2553 of file sanm.c.

Referenced by decode_bl16().

◆ bl16_decode_5()

static int bl16_decode_5 ( SANMVideoContext * ctx,
int rle_size )
static

Definition at line 2565 of file sanm.c.

Referenced by decode_bl16().

◆ bl16_decode_6()

static int bl16_decode_6 ( SANMVideoContext * ctx)
static

Definition at line 2588 of file sanm.c.

Referenced by decode_bl16().

◆ bl16_decode_7()

static int bl16_decode_7 ( SANMVideoContext * ctx)
static

Definition at line 2608 of file sanm.c.

Referenced by decode_bl16().

◆ bl16_decode_8()

static int bl16_decode_8 ( SANMVideoContext * ctx)
static

Definition at line 2652 of file sanm.c.

Referenced by decode_bl16().

◆ fill_frame()

static void fill_frame ( uint16_t * pbuf,
int buf_size,
uint16_t color )
static

Definition at line 2674 of file sanm.c.

Referenced by decode_bl16(), and fill_frame().

◆ copy_output()

static int copy_output ( SANMVideoContext * ctx,
int sanm )
static

Definition at line 2682 of file sanm.c.

Referenced by decode_anim(), and decode_bl16().

◆ decode_bl16()

static int decode_bl16 ( AVCodecContext * avctx,
int * got_frame_ptr )
static

Definition at line 2704 of file sanm.c.

Referenced by decode_frame().

◆ decode_anim()

static int decode_anim ( AVCodecContext * avctx,
int * got_frame_ptr )
static

Definition at line 2790 of file sanm.c.

Referenced by decode_frame().

◆ decode_frame()

static int decode_frame ( AVCodecContext * avctx,
AVFrame * frame,
int * got_frame_ptr,
AVPacket * pkt )
static

Definition at line 2900 of file sanm.c.

Variable Documentation

◆ glyph4_x

const int8_t glyph4_x[GLYPH_COORD_VECT_SIZE]
static
Initial value:
= {
0, 1, 2, 3, 3, 3, 3, 2, 1, 0, 0, 0, 1, 2, 2, 1
}

Definition at line 37 of file sanm.c.

Referenced by decode_init().

◆ glyph4_y

const int8_t glyph4_y[GLYPH_COORD_VECT_SIZE]
static
Initial value:
= {
0, 0, 0, 0, 1, 2, 3, 3, 3, 3, 2, 1, 1, 1, 2, 2
}

Definition at line 41 of file sanm.c.

Referenced by decode_init().

◆ glyph8_x

const int8_t glyph8_x[GLYPH_COORD_VECT_SIZE]
static
Initial value:
= {
0, 2, 5, 7, 7, 7, 7, 7, 7, 5, 2, 0, 0, 0, 0, 0
}

Definition at line 45 of file sanm.c.

Referenced by decode_init().

◆ glyph8_y

const int8_t glyph8_y[GLYPH_COORD_VECT_SIZE]
static
Initial value:
= {
0, 0, 0, 0, 1, 3, 4, 6, 7, 7, 7, 7, 6, 4, 3, 1
}

Definition at line 49 of file sanm.c.

Referenced by decode_init().

◆ c47_mv

const int8_t c47_mv[256][2]
static

Definition at line 54 of file sanm.c.

Referenced by bl16_block(), and codec47_block().

◆ c37_mv

const int8_t c37_mv[]
static

Definition at line 109 of file sanm.c.

Referenced by codec48_block(), and old_codec37().

◆ ff_sanm_decoder

const FFCodec ff_sanm_decoder
Initial value:
= {
.p.name = "sanm",
CODEC_LONG_NAME("LucasArts SANM/Smush video"),
.p.type = AVMEDIA_TYPE_VIDEO,
.priv_data_size = sizeof(SANMVideoContext),
.p.capabilities = AV_CODEC_CAP_DR1,
}
static av_cold void close(AVCodecParserContext *s)
Definition apv_parser.c:197
#define FF_CODEC_DECODE_CB(func)
#define CODEC_LONG_NAME(str)
int(* init)(AVBSFContext *ctx)
Definition dts2pts.c:608
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
Definition codec.h:49
@ AV_CODEC_ID_SANM
Definition codec_id.h:231
@ AVMEDIA_TYPE_VIDEO
Definition avutil.h:200
static av_cold int decode_init(AVCodecContext *avctx)
Definition 4xm.c:998
static av_cold int decode_end(AVCodecContext *avctx)
Definition 4xm.c:980
static int decode_frame(AVCodecContext *avctx, AVFrame *picture, int *got_frame, AVPacket *avpkt)
Definition 4xm.c:837

Definition at line 2919 of file sanm.c.