libavcodec/smacker.c File Reference

Smacker decoder. More...

#include <stdio.h>
#include <stdlib.h>
#include "avcodec.h"
#include "bitstream.h"
#include "bytestream.h"

Go to the source code of this file.

Data Structures

struct  SmackVContext
struct  HuffContext
 Context used for code reconstructing. More...
struct  DBCtx

Defines

#define ALT_BITSTREAM_READER_LE
#define SMKTREE_BITS   9
#define SMK_NODE   0x80000000

Enumerations

enum  SmkBlockTypes { SMK_BLK_MONO = 0, SMK_BLK_FULL = 1, SMK_BLK_SKIP = 2, SMK_BLK_FILL = 3 }

Functions

static int smacker_decode_tree (GetBitContext *gb, HuffContext *hc, uint32_t prefix, int length)
 Decode local frame tree.
static int smacker_decode_bigtree (GetBitContext *gb, HuffContext *hc, DBCtx *ctx)
 Decode header tree.
static int smacker_decode_header_tree (SmackVContext *smk, GetBitContext *gb, int **recodes, int *last, int size)
 Store large tree as FFmpeg's vlc codes.
static int decode_header_trees (SmackVContext *smk)
static av_always_inline void last_reset (int *recode, int *last)
static av_always_inline int smk_get_code (GetBitContext *gb, int *recode, int *last)
static int decode_frame (AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size)
static av_cold int decode_init (AVCodecContext *avctx)
static av_cold int decode_end (AVCodecContext *avctx)
static av_cold int smka_decode_init (AVCodecContext *avctx)
static int smka_decode_frame (AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size)
 Decode Smacker audio data.

Variables

static const int block_runs [64]
AVCodec smacker_decoder
AVCodec smackaud_decoder


Detailed Description

Smacker decoder.

Definition in file smacker.c.


Define Documentation

#define ALT_BITSTREAM_READER_LE

Definition at line 36 of file smacker.c.

#define SMK_NODE   0x80000000

Definition at line 41 of file smacker.c.

Referenced by smacker_decode_bigtree(), and smk_get_code().

#define SMKTREE_BITS   9

Definition at line 40 of file smacker.c.

Referenced by smacker_decode_bigtree(), smacker_decode_header_tree(), and smka_decode_frame().


Enumeration Type Documentation

Enumerator:
SMK_BLK_MONO 
SMK_BLK_FULL 
SMK_BLK_SKIP 
SMK_BLK_FILL 

Definition at line 86 of file smacker.c.


Function Documentation

static av_cold int decode_end ( AVCodecContext avctx  )  [static]

Definition at line 549 of file smacker.c.

static int decode_frame ( AVCodecContext avctx,
void *  data,
int *  data_size,
const uint8_t *  buf,
int  buf_size 
) [static]

Definition at line 354 of file smacker.c.

static int decode_header_trees ( SmackVContext smk  )  [static]

Definition at line 277 of file smacker.c.

Referenced by decode_init().

static av_cold int decode_init ( AVCodecContext avctx  )  [static]

Definition at line 515 of file smacker.c.

static av_always_inline void last_reset ( int *  recode,
int *  last 
) [static]

Definition at line 328 of file smacker.c.

Referenced by decode_frame().

static int smacker_decode_bigtree ( GetBitContext gb,
HuffContext hc,
DBCtx ctx 
) [static]

Decode header tree.

Definition at line 127 of file smacker.c.

Referenced by smacker_decode_header_tree().

static int smacker_decode_header_tree ( SmackVContext smk,
GetBitContext gb,
int **  recodes,
int *  last,
int  size 
) [static]

Store large tree as FFmpeg's vlc codes.

Definition at line 174 of file smacker.c.

Referenced by decode_header_trees().

static int smacker_decode_tree ( GetBitContext gb,
HuffContext hc,
uint32_t  prefix,
int  length 
) [static]

Decode local frame tree.

Definition at line 95 of file smacker.c.

Referenced by smacker_decode_header_tree(), and smka_decode_frame().

static av_always_inline int smk_get_code ( GetBitContext gb,
int *  recode,
int *  last 
) [static]

Definition at line 333 of file smacker.c.

Referenced by decode_frame().

static int smka_decode_frame ( AVCodecContext avctx,
void *  data,
int *  data_size,
const uint8_t *  buf,
int  buf_size 
) [static]

Decode Smacker audio data.

Definition at line 575 of file smacker.c.

static av_cold int smka_decode_init ( AVCodecContext avctx  )  [static]

Definition at line 565 of file smacker.c.


Variable Documentation

const int block_runs[64] [static]

Initial value:

 {
      1,    2,    3,    4,    5,    6,    7,    8,
      9,   10,   11,   12,   13,   14,   15,   16,
     17,   18,   19,   20,   21,   22,   23,   24,
     25,   26,   27,   28,   29,   30,   31,   32,
     33,   34,   35,   36,   37,   38,   39,   40,
     41,   42,   43,   44,   45,   46,   47,   48,
     49,   50,   51,   52,   53,   54,   55,   56,
     57,   58,   59,  128,  256,  512, 1024, 2048 }

Definition at line 76 of file smacker.c.

Referenced by decode_frame().

Initial value:

 {
    "smackaud",
    CODEC_TYPE_AUDIO,
    CODEC_ID_SMACKAUDIO,
    0,
    smka_decode_init,
    NULL,
    NULL,
    smka_decode_frame,
    .long_name = NULL_IF_CONFIG_SMALL("Smacker audio"),
}

Definition at line 714 of file smacker.c.

Initial value:

 {
    "smackvid",
    CODEC_TYPE_VIDEO,
    CODEC_ID_SMACKVIDEO,
    sizeof(SmackVContext),
    decode_init,
    NULL,
    decode_end,
    decode_frame,
    .long_name = NULL_IF_CONFIG_SMALL("Smacker video"),
}

Definition at line 702 of file smacker.c.


Generated on Fri Oct 26 02:35:44 2012 for FFmpeg by  doxygen 1.5.8