FFmpeg
Functions
wma.c File Reference
#include "libavutil/attributes.h"
#include "libavutil/mem.h"
#include "avcodec.h"
#include "sinewin.h"
#include "wma.h"
#include "wma_common.h"
#include "wma_freqs.h"
#include "wmadata.h"

Go to the source code of this file.

Functions

static av_cold int init_coef_vlc (VLC *vlc, uint16_t **prun_table, float **plevel_table, uint16_t **pint_table, const CoefVLCTable *vlc_table)
 
av_cold 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. More...
 
int ff_wma_run_level_decode (AVCodecContext *avctx, GetBitContext *gb, const VLCElem *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. More...
 

Function Documentation

◆ init_coef_vlc()

static av_cold int init_coef_vlc ( VLC vlc,
uint16_t **  prun_table,
float **  plevel_table,
uint16_t **  pint_table,
const CoefVLCTable vlc_table 
)
static

Definition at line 34 of file wma.c.

◆ ff_wma_init()

av_cold int ff_wma_init ( AVCodecContext avctx,
int  flags2 
)

Definition at line 79 of file wma.c.

Referenced by encode_init(), and wma_decode_init().

◆ ff_wma_total_gain_to_bits()

int ff_wma_total_gain_to_bits ( int  total_gain)

Definition at line 353 of file wma.c.

Referenced by encode_block(), and wma_decode_block().

◆ ff_wma_end()

int ff_wma_end ( AVCodecContext avctx)

Definition at line 367 of file wma.c.

◆ ff_wma_get_large_val()

unsigned int ff_wma_get_large_val ( GetBitContext gb)

Decode an uncompressed coefficient.

Parameters
gbGetBitContext
Returns
the decoded coefficient

consumes up to 34 bits

decode length

Definition at line 395 of file wma.c.

Referenced by decode_coeffs(), and ff_wma_run_level_decode().

◆ ff_wma_run_level_decode()

int ff_wma_run_level_decode ( AVCodecContext avctx,
GetBitContext gb,
const VLCElem 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
avctxcodec context
gbbitstream reader context
vlcvlc table for get_vlc2
level_tablelevel codes
run_tablerun codes
version0 for wma1,2 1 for wmapro
ptroutput buffer
offsetoffset in the output buffer
num_coefsnumber of input coefficients
block_leninput buffer length (2^n)
frame_len_bitsnumber of bits for escaped run codes
coef_nb_bitsnumber 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 427 of file wma.c.

Referenced by decode_coeffs(), and wma_decode_block().