FFmpeg
Data Structures | Macros | Enumerations | Functions | Variables
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. 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
 

Macro Definition Documentation

◆ NGLYPHS

#define NGLYPHS   256

Definition at line 32 of file sanm.c.

◆ GLYPH_COORD_VECT_SIZE

#define GLYPH_COORD_VECT_SIZE   16

Definition at line 33 of file sanm.c.

◆ PALETTE_SIZE

#define PALETTE_SIZE   256

Definition at line 34 of file sanm.c.

◆ PALETTE_DELTA

#define PALETTE_DELTA   768

Definition at line 35 of file sanm.c.

Enumeration Type Documentation

◆ GlyphEdge

enum GlyphEdge
Enumerator
LEFT_EDGE 
TOP_EDGE 
RIGHT_EDGE 
BOTTOM_EDGE 
NO_EDGE 

Definition at line 302 of file sanm.c.

◆ GlyphDir

enum GlyphDir
Enumerator
DIR_LEFT 
DIR_UP 
DIR_RIGHT 
DIR_DOWN 
NO_DIR 

Definition at line 310 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 325 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 341 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 364 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 384 of file sanm.c.

Referenced by decode_init().

◆ init_sizes()

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

Definition at line 436 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 449 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 463 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 484 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 548 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 597 of file sanm.c.

Referenced by old_codec4().

◆ rotate_bufs()

static void rotate_bufs ( SANMVideoContext ctx,
int  rotate_code 
)
static

Definition at line 615 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 622 of file sanm.c.

◆ decode_end()

static av_cold int decode_end ( AVCodecContext avctx)
static

Definition at line 668 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 677 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 744 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 770 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 836 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 881 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 948 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 1014 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 1032 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 1084 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 1136 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 1190 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 1199 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 1218 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 1403 of file sanm.c.

Referenced by old_codec47().

◆ codec47_read_interptable()

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

Definition at line 1489 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 1505 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 1538 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 1634 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 1649 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 1659 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 1838 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 1949 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 2089 of file sanm.c.

Referenced by decode_anim().

◆ process_xpal()

static int process_xpal ( SANMVideoContext ctx,
int  size 
)
static

Definition at line 2129 of file sanm.c.

Referenced by decode_anim().

◆ bl16_decode_0()

static int bl16_decode_0 ( SANMVideoContext ctx)
static

Definition at line 2176 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 2194 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 2205 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 2249 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 2268 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 2278 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 2300 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 2334 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 2362 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 2378 of file sanm.c.

Referenced by bl16_decode_2().

◆ bl16_decode_2()

static int bl16_decode_2 ( SANMVideoContext ctx)
static

Definition at line 2477 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 2489 of file sanm.c.

Referenced by decode_bl16().

◆ bl16_decode_6()

static int bl16_decode_6 ( SANMVideoContext ctx)
static

Definition at line 2512 of file sanm.c.

Referenced by decode_bl16().

◆ bl16_decode_7()

static int bl16_decode_7 ( SANMVideoContext ctx)
static

Definition at line 2532 of file sanm.c.

Referenced by decode_bl16().

◆ bl16_decode_8()

static int bl16_decode_8 ( SANMVideoContext ctx)
static

Definition at line 2576 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 2598 of file sanm.c.

Referenced by decode_bl16().

◆ copy_output()

static int copy_output ( SANMVideoContext ctx,
int  sanm 
)
static

Definition at line 2606 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 2628 of file sanm.c.

Referenced by decode_frame().

◆ decode_anim()

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

Definition at line 2714 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 2824 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,
}

Definition at line 2843 of file sanm.c.

AV_CODEC_ID_SANM
@ AV_CODEC_ID_SANM
Definition: codec_id.h:236
decode_end
static av_cold int decode_end(AVCodecContext *avctx)
Definition: sanm.c:668
close
static av_cold void close(AVCodecParserContext *s)
Definition: apv_parser.c:135
FF_CODEC_DECODE_CB
#define FF_CODEC_DECODE_CB(func)
Definition: codec_internal.h:346
CODEC_LONG_NAME
#define CODEC_LONG_NAME(str)
Definition: codec_internal.h:331
init
int(* init)(AVBSFContext *ctx)
Definition: dts2pts.c:368
AV_CODEC_CAP_DR1
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
Definition: codec.h:52
SANMVideoContext
Definition: sanm.c:265
decode_init
static av_cold int decode_init(AVCodecContext *avctx)
Definition: sanm.c:622
AVMEDIA_TYPE_VIDEO
@ AVMEDIA_TYPE_VIDEO
Definition: avutil.h:200
decode_frame
static int decode_frame(AVCodecContext *avctx, AVFrame *frame, int *got_frame_ptr, AVPacket *pkt)
Definition: sanm.c:2824