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 SMKTREE_BITS 9
#define SMK_NODE 0x80000000

Enumerations


Functions

static int smacker_decode_tree (GetBitContext *gb, HuffContext *hc, uint32_t prefix, int length)
Decode local frame tree.
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 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]

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,
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

AltStyle によって変換されたページ (->オリジナル) /