libavcodec/sanm.c File Reference

#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 Documentation

#define NGLYPHS   256

Definition at line 31 of file sanm.c.

Referenced by draw_glyph().


Typedef Documentation

typedef int(* frm_decoder)(SANMVideoContext *ctx)

Definition at line 1064 of file sanm.c.


Enumeration Type Documentation

enum GlyphDir

Enumerator:
DIR_LEFT 
DIR_UP 
DIR_RIGHT 
DIR_DOWN 
NO_DIR 

Definition at line 81 of file sanm.c.

enum GlyphEdge

Enumerator:
LEFT_EDGE 
TOP_EDGE 
RIGHT_EDGE 
BOTTOM_EDGE 
NO_EDGE 

Definition at line 73 of file sanm.c.


Function Documentation

static int codec2subblock ( SANMVideoContext ctx,
int  cx,
int  cy,
int  blk_size 
) [static]

Definition at line 894 of file sanm.c.

Referenced by decode_2().

static void codec37_mv ( uint8_t dst,
const uint8_t src,
int  height,
int  stride,
int  x,
int  y 
) [inline, static]

Definition at line 380 of file sanm.c.

Referenced by old_codec37().

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

Definition at line 769 of file sanm.c.

static int copy_output ( SANMVideoContext ctx,
SANMFrameHeader hdr 
) [static]

Definition at line 1118 of file sanm.c.

Referenced by decode_frame().

static int decode_0 ( SANMVideoContext ctx  )  [static]

Definition at line 746 of file sanm.c.

static int decode_2 ( SANMVideoContext ctx  )  [static]

Definition at line 980 of file sanm.c.

static int decode_3 ( SANMVideoContext ctx  )  [static]

Definition at line 994 of file sanm.c.

static int decode_4 ( SANMVideoContext ctx  )  [static]

Definition at line 1000 of file sanm.c.

static int decode_5 ( SANMVideoContext ctx  )  [static]

Definition at line 1006 of file sanm.c.

static int decode_6 ( SANMVideoContext ctx  )  [static]

Definition at line 1027 of file sanm.c.

static int decode_8 ( SANMVideoContext ctx  )  [static]

Definition at line 1042 of file sanm.c.

static av_cold int decode_end ( AVCodecContext avctx  )  [static]

Definition at line 293 of file sanm.c.

static int decode_frame ( AVCodecContext avctx,
void *  data,
int got_frame_ptr,
AVPacket pkt 
) [static]

Definition at line 1142 of file sanm.c.

static av_cold int decode_init ( AVCodecContext avctx  )  [static]

Definition at line 257 of file sanm.c.

static int decode_nop ( SANMVideoContext ctx  )  [static]

Definition at line 763 of file sanm.c.

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]

Definition at line 798 of file sanm.c.

Referenced by opcode_0xf7(), and opcode_0xf8().

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

Definition at line 788 of file sanm.c.

Referenced by codec2subblock().

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

Definition at line 1112 of file sanm.c.

Referenced by decode_frame().

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

Definition at line 878 of file sanm.c.

Referenced by codec2subblock().

static av_cold int init_buffers ( SANMVideoContext ctx  )  [static]

Definition at line 233 of file sanm.c.

Referenced by decode_init(), and process_frame_obj().

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

Definition at line 211 of file sanm.c.

Referenced by decode_init(), and process_frame_obj().

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

Interpolate two points.

Definition at line 139 of file sanm.c.

Referenced by 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 vectors coordinates.

Parameters:
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 old_codec1 ( SANMVideoContext ctx,
int  top,
int  left,
int  width,
int  height 
) [static]

Definition at line 333 of file sanm.c.

Referenced by process_frame_obj().

static int old_codec37 ( SANMVideoContext ctx,
int  top,
int  left,
int  width,
int  height 
) [static]

Definition at line 399 of file sanm.c.

Referenced by process_frame_obj().

static int old_codec47 ( SANMVideoContext ctx,
int  top,
int  left,
int  width,
int  height 
) [static]

Definition at line 621 of file sanm.c.

Referenced by process_frame_obj().

static int opcode_0xf7 ( SANMVideoContext ctx,
int  cx,
int  cy,
int  block_size,
int  pitch 
) [static]

Definition at line 819 of file sanm.c.

Referenced by codec2subblock().

static int opcode_0xf8 ( SANMVideoContext ctx,
int  cx,
int  cy,
int  block_size,
int  pitch 
) [static]

Definition at line 850 of file sanm.c.

Referenced by codec2subblock().

static int process_block ( SANMVideoContext ctx,
uint8_t dst,
uint8_t prev1,
uint8_t prev2,
int  stride,
int  tbl,
int  size 
) [static]

Definition at line 541 of file sanm.c.

Referenced by old_codec47().

static int process_frame_obj ( SANMVideoContext ctx  )  [static]

Definition at line 707 of file sanm.c.

Referenced by decode_frame().

static int read_frame_header ( SANMVideoContext ctx,
SANMFrameHeader hdr 
) [static]

Definition at line 1071 of file sanm.c.

Referenced by decode_frame().

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]

Definition at line 249 of file sanm.c.

Referenced by decode_frame(), and old_codec37().

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

Definition at line 113 of file sanm.c.

Referenced by make_glyphs().

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

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

Parameters:
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().


Variable Documentation

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"),
}

Definition at line 1272 of file sanm.c.

const frm_decoder v1_decoders[] [static]

Initial value:

Definition at line 1066 of file sanm.c.

Referenced by decode_frame().


Generated on Fri Oct 26 02:50:07 2012 for FFmpeg by  doxygen 1.5.8