libavcodec/wma.h File Reference

#include "get_bits.h"
#include "put_bits.h"
#include "dsputil.h"
#include "fft.h"
#include "fmtconvert.h"

Go to the source code of this file.

Data Structures

struct  CoefVLCTable
struct  WMACodecContext

Defines

#define BLOCK_MIN_BITS   7
#define BLOCK_MAX_BITS   11
#define BLOCK_MAX_SIZE   (1 << BLOCK_MAX_BITS)
#define BLOCK_NB_SIZES   (BLOCK_MAX_BITS - BLOCK_MIN_BITS + 1)
#define HIGH_BAND_MAX_SIZE   16
#define NB_LSP_COEFS   10
#define MAX_CODED_SUPERFRAME_SIZE   16384
#define MAX_CHANNELS   2
#define NOISE_TAB_SIZE   8192
#define LSP_POW_BITS   7
#define VLCBITS   9
#define VLCMAX   ((22+VLCBITS-1)/VLCBITS)

Typedefs

typedef float WMACoef
 type for decoded coefficients, int16_t would be enough for wma 1/2

Functions

int av_cold ff_wma_get_frame_len_bits (int sample_rate, int version, unsigned int decode_flags)
 Get the samples per frame for this stream.
int ff_wma_init (AVCodecContext *avctx, int flags2)
int ff_wma_total_gain_to_bits (int total_gain)
int ff_wma_end (AVCodecContext *avctx)
unsigned int ff_wma_get_large_val (GetBitContext *gb)
 Decode an uncompressed coefficient.
int ff_wma_run_level_decode (AVCodecContext *avctx, GetBitContext *gb, VLC *vlc, const float *level_table, const uint16_t *run_table, int version, WMACoef *ptr, int offset, int num_coefs, int block_len, int frame_len_bits, int coef_nb_bits)
 Decode run level compressed coefficients.

Variables

const uint16_t ff_wma_critical_freqs [25]
const uint16_t ff_wma_hgain_huffcodes [37]
const uint8_t ff_wma_hgain_huffbits [37]
const float ff_wma_lsp_codebook [NB_LSP_COEFS][16]
const uint32_t ff_aac_scalefactor_code [121]
const uint8_t ff_aac_scalefactor_bits [121]


Define Documentation

#define BLOCK_MAX_BITS   11

Definition at line 33 of file wma.h.

#define BLOCK_MAX_SIZE   (1 << BLOCK_MAX_BITS)

Definition at line 34 of file wma.h.

#define BLOCK_MIN_BITS   7

Definition at line 32 of file wma.h.

Referenced by ff_wma_init().

#define BLOCK_NB_SIZES   (BLOCK_MAX_BITS - BLOCK_MIN_BITS + 1)

Definition at line 36 of file wma.h.

#define HIGH_BAND_MAX_SIZE   16

Definition at line 39 of file wma.h.

Referenced by wma_decode_block().

#define LSP_POW_BITS   7

Definition at line 50 of file wma.h.

Referenced by pow_m1_4(), and wma_lsp_to_curve_init().

#define MAX_CHANNELS   2

Definition at line 46 of file wma.h.

#define MAX_CODED_SUPERFRAME_SIZE   16384

Definition at line 44 of file wma.h.

Referenced by encode_init(), encode_superframe(), and wma_decode_superframe().

#define NB_LSP_COEFS   10

Definition at line 41 of file wma.h.

Referenced by decode_exp_lsp(), and wma_lsp_to_curve().

#define NOISE_TAB_SIZE   8192

Definition at line 48 of file wma.h.

Referenced by ff_wma_init(), and wma_decode_block().

#define VLCBITS   9

#define VLCMAX   ((22+VLCBITS-1)/VLCBITS)

Definition at line 54 of file wma.h.

Referenced by ff_wma_run_level_decode().


Typedef Documentation

typedef float WMACoef

type for decoded coefficients, int16_t would be enough for wma 1/2

Definition at line 56 of file wma.h.


Function Documentation

int ff_wma_end ( AVCodecContext avctx  ) 

Definition at line 411 of file wma.c.

int av_cold ff_wma_get_frame_len_bits ( int  sample_rate,
int  version,
unsigned int  decode_flags 
)

Get the samples per frame for this stream.

Parameters:
sample_rate output sample_rate
version wma version
decode_flags codec compression features
Returns:
log2 of the number of output samples per frame

Definition at line 77 of file wma.c.

Referenced by decode_init(), and ff_wma_init().

unsigned int ff_wma_get_large_val ( GetBitContext gb  ) 

Decode an uncompressed coefficient.

Parameters:
gb GetBitContext
Returns:
the decoded coefficient

consumes up to 34 bits

decode length

Definition at line 440 of file wma.c.

Referenced by decode_coeffs(), and ff_wma_run_level_decode().

int ff_wma_init ( AVCodecContext avctx,
int  flags2 
)

Definition at line 110 of file wma.c.

Referenced by encode_init(), and wma_decode_init().

int ff_wma_run_level_decode ( AVCodecContext avctx,
GetBitContext gb,
VLC vlc,
const float *  level_table,
const uint16_t *  run_table,
int  version,
WMACoef ptr,
int  offset,
int  num_coefs,
int  block_len,
int  frame_len_bits,
int  coef_nb_bits 
)

Decode run level compressed coefficients.

Parameters:
avctx codec context
gb bitstream reader context
vlc vlc table for get_vlc2
level_table level codes
run_table run codes
version 0 for wma1,2 1 for wmapro
ptr output buffer
offset offset in the output buffer
num_coefs number of input coefficents
block_len input buffer length (2^n)
frame_len_bits number of bits for escaped run codes
coef_nb_bits number of bits for escaped level codes
Returns:
0 on success, -1 otherwise

normal code

EOB

escape

NOTE: this is rather suboptimal. reading block_len_bits would be better

escape decode

NOTE: EOB can be omitted

Definition at line 473 of file wma.c.

Referenced by decode_coeffs(), and wma_decode_block().

int ff_wma_total_gain_to_bits ( int  total_gain  ) 

Definition at line 402 of file wma.c.

Referenced by encode_block(), and wma_decode_block().


Variable Documentation

const uint8_t ff_aac_scalefactor_bits[121]

const uint32_t ff_aac_scalefactor_code[121]

Definition at line 51 of file aactab.c.

Referenced by aac_decode_init(), encode_exp_vlc(), encode_scale_factors(), and wma_decode_init().

const uint16_t ff_wma_critical_freqs[25]

Definition at line 33 of file wmadata.h.

const uint8_t ff_wma_hgain_huffbits[37]

Definition at line 67 of file wmadata.h.

Referenced by wma_decode_init().

const uint16_t ff_wma_hgain_huffcodes[37]

Definition at line 59 of file wmadata.h.

Referenced by wma_decode_init().

const float ff_wma_lsp_codebook[NB_LSP_COEFS][16]

Definition at line 75 of file wmadata.h.

Referenced by decode_exp_lsp().


Generated on Fri Oct 26 02:46:11 2012 for FFmpeg by  doxygen 1.5.8