imc.c File Reference


Detailed Description

IMC - Intel Music Coder A mdct based codec using a 256 points large transform divied into 32 bands with some mix of scale factors.

Only mono is supported.

Definition in file imc.c.

Go to the source code of this file.

Classes

struct  IMCContext

Functions

static int imc_decode_init (AVCodecContext *avctx)
static void imc_calculate_coeffs (IMCContext *q, float *flcoeffs1, float *flcoeffs2, int *bandWidthT, float *flcoeffs3, float *flcoeffs5)
static void imc_read_level_coeffs (IMCContext *q, int stream_format_code, int *levlCoeffs)
static void imc_decode_level_coefficients (IMCContext *q, int *levlCoeffBuf, float *flcoeffs1, float *flcoeffs2)
static void imc_decode_level_coefficients2 (IMCContext *q, int *levlCoeffBuf, float *old_floor, float *flcoeffs1, float *flcoeffs2)
static int bit_allocation (IMCContext *q, int stream_format_code, int freebits, int flag)
 Perform bit allocation depending on bits available.
static void imc_get_skip_coeff (IMCContext *q)
static void imc_adjust_bit_allocation (IMCContext *q, int summer)
 Increase highest' band coefficient sizes as some bits won't be used.
static void imc_imdct256 (IMCContext *q)
static int inverse_quant_coeff (IMCContext *q, int stream_format_code)
static int imc_get_coeffs (IMCContext *q)
static int imc_decode_frame (AVCodecContext *avctx, void *data, int *data_size, uint8_t *buf, int buf_size)
static int imc_decode_close (AVCodecContext *avctx)

Variables

AVCodec imc_decoder


Function Documentation

static int imc_decode_init ( AVCodecContext avctx  )  [static]

Definition at line 92 of file imc.c.

static void imc_calculate_coeffs ( IMCContext q,
float *  flcoeffs1,
float *  flcoeffs2,
int *  bandWidthT,
float *  flcoeffs3,
float *  flcoeffs5 
) [static]

Definition at line 148 of file imc.c.

Referenced by imc_decode_frame().

static void imc_read_level_coeffs ( IMCContext q,
int  stream_format_code,
int *  levlCoeffs 
) [static]

Definition at line 202 of file imc.c.

Referenced by imc_decode_frame().

static void imc_decode_level_coefficients ( IMCContext q,
int *  levlCoeffBuf,
float *  flcoeffs1,
float *  flcoeffs2 
) [static]

Definition at line 228 of file imc.c.

Referenced by imc_decode_frame().

static void imc_decode_level_coefficients2 ( IMCContext q,
int *  levlCoeffBuf,
float *  old_floor,
float *  flcoeffs1,
float *  flcoeffs2 
) [static]

Definition at line 262 of file imc.c.

Referenced by imc_decode_frame().

static int bit_allocation ( IMCContext q,
int  stream_format_code,
int  freebits,
int  flag 
) [static]

Perform bit allocation depending on bits available.

Definition at line 282 of file imc.c.

Referenced by imc_decode_frame().

static void imc_get_skip_coeff ( IMCContext q  )  [static]

Definition at line 444 of file imc.c.

Referenced by imc_decode_frame().

static void imc_adjust_bit_allocation ( IMCContext q,
int  summer 
) [static]

Increase highest' band coefficient sizes as some bits won't be used.

Definition at line 498 of file imc.c.

Referenced by imc_decode_frame().

static void imc_imdct256 ( IMCContext q  )  [static]

Definition at line 537 of file imc.c.

Referenced by imc_decode_frame().

static int inverse_quant_coeff ( IMCContext q,
int  stream_format_code 
) [static]

Definition at line 563 of file imc.c.

Referenced by imc_decode_frame().

static int imc_get_coeffs ( IMCContext q  )  [static]

Definition at line 601 of file imc.c.

Referenced by imc_decode_frame().

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

Definition at line 626 of file imc.c.

static int imc_decode_close ( AVCodecContext avctx  )  [static]

Definition at line 795 of file imc.c.


Variable Documentation

Initial value:

 {
    .name = "imc",
    .type = CODEC_TYPE_AUDIO,
    .id = CODEC_ID_IMC,
    .priv_data_size = sizeof(IMCContext),
    .init = imc_decode_init,
    .close = imc_decode_close,
    .decode = imc_decode_frame,
}

Definition at line 804 of file imc.c.


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