apedec.c File Reference


Detailed Description

Monkey's Audio lossless audio decoder.

Definition in file apedec.c.

Go to the source code of this file.

Classes

struct  APEFilter
 Filters applied to the decoded data. More...
struct  APERice
struct  APERangecoder
struct  APEPredictor
 Filter histories. More...
struct  APEContext
 Decoder context. More...

Enumerations

enum  APECompressionLevel {
  COMPRESSION_LEVEL_FAST = 1000, COMPRESSION_LEVEL_NORMAL = 2000, COMPRESSION_LEVEL_HIGH = 3000, COMPRESSION_LEVEL_EXTRA_HIGH = 4000,
  COMPRESSION_LEVEL_INSANE = 5000
}
 Possible compression levels. More...

Functions

static void vector_add (int16_t *v1, int16_t *v2, int order)
static void vector_sub (int16_t *v1, int16_t *v2, int order)
static int32_t scalarproduct (int16_t *v1, int16_t *v2, int order)
static int ape_decode_init (AVCodecContext *avctx)
static int ape_decode_close (AVCodecContext *avctx)
static void range_start_decoding (APEContext *ctx)
 Start the decoder.
static void range_dec_normalize (APEContext *ctx)
 Perform normalization.
static int range_decode_culfreq (APEContext *ctx, int tot_f)
 Calculate culmulative frequency for next symbol.
static int range_decode_culshift (APEContext *ctx, int shift)
 Decode value with given size in bits.
static void range_decode_update (APEContext *ctx, int sy_f, int lt_f)
 Update decoding state.
static int range_decode_bits (APEContext *ctx, int n)
 Decode n bits (n <= 16) without modelling.
static int range_get_symbol (APEContext *ctx, const uint32_t counts[], const uint16_t counts_diff[])
 Decode symbol.
static void update_rice (APERice *rice, int x)
static int ape_decode_value (APEContext *ctx, APERice *rice)
static void entropy_decode (APEContext *ctx, int blockstodecode, int stereo)
static void init_entropy_decoder (APEContext *ctx)
static void init_predictor_decoder (APEContext *ctx)
static int APESIGN (int32_t x)
 Get inverse sign of integer (-1 for positive, 1 for negative and 0 for zero).
static int predictor_update_filter (APEPredictor *p, const int decoded, const int filter, const int delayA, const int delayB, const int adaptA, const int adaptB)
static void predictor_decode_stereo (APEContext *ctx, int count)
static void predictor_decode_mono (APEContext *ctx, int count)
static void do_init_filter (APEFilter *f, int16_t *buf, int order)
static void init_filter (APEContext *ctx, APEFilter *f, int16_t *buf, int order)
static void do_apply_filter (int version, APEFilter *f, int32_t *data, int count, int order, int fracbits)
static void apply_filter (APEContext *ctx, APEFilter *f, int32_t *data0, int32_t *data1, int count, int order, int fracbits)
static void ape_apply_filters (APEContext *ctx, int32_t *decoded0, int32_t *decoded1, int count)
static void init_frame_decoder (APEContext *ctx)
static void ape_unpack_mono (APEContext *ctx, int count)
static void ape_unpack_stereo (APEContext *ctx, int count)
static int ape_decode_frame (AVCodecContext *avctx, void *data, int *data_size, uint8_t *buf, int buf_size)

Variables

static const uint16_t ape_filter_orders [5][APE_FILTER_LEVELS]
 Filter orders depending on compression level.
static const uint16_t ape_filter_fracbits [5][APE_FILTER_LEVELS]
 Filter fraction bits depending on compression level.
static const uint32_t counts_3970 [65]
 Fixed probabilities for symbols in Monkey Audio version 3.97.
static const uint16_t counts_diff_3970 [64]
 Probability ranges for symbols in Monkey Audio version 3.97.
static const uint32_t counts_3980 [65]
 Fixed probabilities for symbols in Monkey Audio version 3.98.
static const uint16_t counts_diff_3980 [64]
 Probability ranges for symbols in Monkey Audio version 3.98.
static const int32_t initial_coeffs [4]
AVCodec ape_decoder


Enumeration Type Documentation

Possible compression levels.

Enumerator:
COMPRESSION_LEVEL_FAST 
COMPRESSION_LEVEL_NORMAL 
COMPRESSION_LEVEL_HIGH 
COMPRESSION_LEVEL_EXTRA_HIGH 
COMPRESSION_LEVEL_INSANE 

Definition at line 61 of file apedec.c.


Function Documentation

static void vector_add ( int16_t v1,
int16_t v2,
int  order 
) [inline, static]

Definition at line 162 of file apedec.c.

Referenced by do_apply_filter().

static void vector_sub ( int16_t v1,
int16_t v2,
int  order 
) [inline, static]

Definition at line 169 of file apedec.c.

Referenced by do_apply_filter().

static int32_t scalarproduct ( int16_t v1,
int16_t v2,
int  order 
) [inline, static]

Definition at line 176 of file apedec.c.

Referenced by do_apply_filter().

static int ape_decode_init ( AVCodecContext avctx  )  [static]

Definition at line 186 of file apedec.c.

static int ape_decode_close ( AVCodecContext avctx  )  [static]

Definition at line 225 of file apedec.c.

static void update_rice ( APERice rice,
int  x 
) [inline, static]

Definition at line 391 of file apedec.c.

Referenced by ape_decode_value().

static int ape_decode_value ( APEContext ctx,
APERice rice 
) [inline, static]

Definition at line 403 of file apedec.c.

Referenced by entropy_decode().

static void entropy_decode ( APEContext ctx,
int  blockstodecode,
int  stereo 
) [static]

Definition at line 454 of file apedec.c.

Referenced by ape_unpack_mono(), and ape_unpack_stereo().

static void init_entropy_decoder ( APEContext ctx  )  [static]

Definition at line 477 of file apedec.c.

Referenced by init_frame_decoder().

static void init_predictor_decoder ( APEContext ctx  )  [static]

Definition at line 509 of file apedec.c.

Referenced by init_frame_decoder().

static int APESIGN ( int32_t  x  )  [inline, static]

Get inverse sign of integer (-1 for positive, 1 for negative and 0 for zero).

Definition at line 528 of file apedec.c.

Referenced by predictor_decode_mono(), and predictor_update_filter().

static int predictor_update_filter ( APEPredictor p,
const int  decoded,
const int  filter,
const int  delayA,
const int  delayB,
const int  adaptA,
const int  adaptB 
) [static]

Definition at line 532 of file apedec.c.

Referenced by predictor_decode_stereo().

static void predictor_decode_stereo ( APEContext ctx,
int  count 
) [static]

Definition at line 591 of file apedec.c.

Referenced by ape_unpack_stereo().

static void predictor_decode_mono ( APEContext ctx,
int  count 
) [static]

Definition at line 616 of file apedec.c.

Referenced by ape_unpack_mono().

static void do_init_filter ( APEFilter f,
int16_t buf,
int  order 
) [static]

Definition at line 667 of file apedec.c.

Referenced by init_filter().

static void init_filter ( APEContext ctx,
APEFilter f,
int16_t buf,
int  order 
) [static]

Definition at line 679 of file apedec.c.

Referenced by init_frame_decoder().

static void do_apply_filter ( int  version,
APEFilter f,
int32_t data,
int  count,
int  order,
int  fracbits 
) [inline, static]

Definition at line 685 of file apedec.c.

Referenced by apply_filter().

static void apply_filter ( APEContext ctx,
APEFilter f,
int32_t data0,
int32_t data1,
int  count,
int  order,
int  fracbits 
) [static]

Definition at line 745 of file apedec.c.

Referenced by ape_apply_filters().

static void ape_apply_filters ( APEContext ctx,
int32_t decoded0,
int32_t decoded1,
int  count 
) [static]

Definition at line 754 of file apedec.c.

Referenced by ape_unpack_mono(), and ape_unpack_stereo().

static void init_frame_decoder ( APEContext ctx  )  [static]

Definition at line 766 of file apedec.c.

Referenced by ape_decode_frame().

static void ape_unpack_mono ( APEContext ctx,
int  count 
) [static]

Definition at line 779 of file apedec.c.

Referenced by ape_decode_frame().

static void ape_unpack_stereo ( APEContext ctx,
int  count 
) [static]

Definition at line 807 of file apedec.c.

Referenced by ape_decode_frame().

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

Definition at line 835 of file apedec.c.


Variable Documentation

const uint16_t ape_filter_orders[5][APE_FILTER_LEVELS] [static]

Initial value:

 {
    {  0,   0,    0 },
    { 16,   0,    0 },
    { 64,   0,    0 },
    { 32, 256,    0 },
    { 16, 256, 1280 }
}
Filter orders depending on compression level.

Definition at line 73 of file apedec.c.

Referenced by ape_apply_filters(), ape_decode_init(), and init_frame_decoder().

const uint16_t ape_filter_fracbits[5][APE_FILTER_LEVELS] [static]

Initial value:

 {
    {  0,  0,  0 },
    { 11,  0,  0 },
    { 11,  0,  0 },
    { 10, 13,  0 },
    { 11, 13, 15 }
}
Filter fraction bits depending on compression level.

Definition at line 82 of file apedec.c.

Referenced by ape_apply_filters().

const int32_t initial_coeffs[4] [static]

Initial value:

 {
    360, 317, -109, 98
}

Definition at line 505 of file apedec.c.

Referenced by init_predictor_decoder().

Initial value:

Definition at line 913 of file apedec.c.


Generated on Sat Dec 18 05:15:50 2010 for MythTV by  doxygen 1.5.5