mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-13 21:28:01 +02:00
doxygenize
Originally committed as revision 7872 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
013591c5f2
commit
6836af5250
@ -51,11 +51,11 @@
|
|||||||
#define VLCMAX ((22+VLCBITS-1)/VLCBITS)
|
#define VLCMAX ((22+VLCBITS-1)/VLCBITS)
|
||||||
|
|
||||||
typedef struct CoefVLCTable {
|
typedef struct CoefVLCTable {
|
||||||
int n; /* total number of codes */
|
int n; ///< total number of codes
|
||||||
int max_level;
|
int max_level;
|
||||||
const uint32_t *huffcodes; /* VLC bit values */
|
const uint32_t *huffcodes; ///< VLC bit values
|
||||||
const uint8_t *huffbits; /* VLC bit size */
|
const uint8_t *huffbits; ///< VLC bit size
|
||||||
const uint16_t *levels; /* table to build run/level tables */
|
const uint16_t *levels; ///< table to build run/level tables
|
||||||
} CoefVLCTable;
|
} CoefVLCTable;
|
||||||
|
|
||||||
typedef struct WMADecodeContext {
|
typedef struct WMADecodeContext {
|
||||||
@ -64,19 +64,19 @@ typedef struct WMADecodeContext {
|
|||||||
int sample_rate;
|
int sample_rate;
|
||||||
int nb_channels;
|
int nb_channels;
|
||||||
int bit_rate;
|
int bit_rate;
|
||||||
int version; /* 1 = 0x160 (WMAV1), 2 = 0x161 (WMAV2) */
|
int version; ///< 1 = 0x160 (WMAV1), 2 = 0x161 (WMAV2)
|
||||||
int block_align;
|
int block_align;
|
||||||
int use_bit_reservoir;
|
int use_bit_reservoir;
|
||||||
int use_variable_block_len;
|
int use_variable_block_len;
|
||||||
int use_exp_vlc; /* exponent coding: 0 = lsp, 1 = vlc + delta */
|
int use_exp_vlc; ///< exponent coding: 0 = lsp, 1 = vlc + delta
|
||||||
int use_noise_coding; /* true if perceptual noise is added */
|
int use_noise_coding; ///< true if perceptual noise is added
|
||||||
int byte_offset_bits;
|
int byte_offset_bits;
|
||||||
VLC exp_vlc;
|
VLC exp_vlc;
|
||||||
int exponent_sizes[BLOCK_NB_SIZES];
|
int exponent_sizes[BLOCK_NB_SIZES];
|
||||||
uint16_t exponent_bands[BLOCK_NB_SIZES][25];
|
uint16_t exponent_bands[BLOCK_NB_SIZES][25];
|
||||||
int high_band_start[BLOCK_NB_SIZES]; /* index of first coef in high band */
|
int high_band_start[BLOCK_NB_SIZES]; ///< index of first coef in high band
|
||||||
int coefs_start; /* first coded coef */
|
int coefs_start; ///< first coded coef
|
||||||
int coefs_end[BLOCK_NB_SIZES]; /* max number of coded coefficients */
|
int coefs_end[BLOCK_NB_SIZES]; ///< max number of coded coefficients
|
||||||
int exponent_high_sizes[BLOCK_NB_SIZES];
|
int exponent_high_sizes[BLOCK_NB_SIZES];
|
||||||
int exponent_high_bands[BLOCK_NB_SIZES][HIGH_BAND_MAX_SIZE];
|
int exponent_high_bands[BLOCK_NB_SIZES][HIGH_BAND_MAX_SIZE];
|
||||||
VLC hgain_vlc;
|
VLC hgain_vlc;
|
||||||
@ -93,19 +93,19 @@ typedef struct WMADecodeContext {
|
|||||||
uint16_t *int_table[2];
|
uint16_t *int_table[2];
|
||||||
CoefVLCTable *coef_vlcs[2];
|
CoefVLCTable *coef_vlcs[2];
|
||||||
/* frame info */
|
/* frame info */
|
||||||
int frame_len; /* frame length in samples */
|
int frame_len; ///< frame length in samples
|
||||||
int frame_len_bits; /* frame_len = 1 << frame_len_bits */
|
int frame_len_bits; ///< frame_len = 1 << frame_len_bits
|
||||||
int nb_block_sizes; /* number of block sizes */
|
int nb_block_sizes; ///< number of block sizes
|
||||||
/* block info */
|
/* block info */
|
||||||
int reset_block_lengths;
|
int reset_block_lengths;
|
||||||
int block_len_bits; /* log2 of current block length */
|
int block_len_bits; ///< log2 of current block length
|
||||||
int next_block_len_bits; /* log2 of next block length */
|
int next_block_len_bits; ///< log2 of next block length
|
||||||
int prev_block_len_bits; /* log2 of prev block length */
|
int prev_block_len_bits; ///< log2 of prev block length
|
||||||
int block_len; /* block length in samples */
|
int block_len; ///< block length in samples
|
||||||
int block_num; /* block number in current frame */
|
int block_num; ///< block number in current frame
|
||||||
int block_pos; /* current position in frame */
|
int block_pos; ///< current position in frame
|
||||||
uint8_t ms_stereo; /* true if mid/side stereo mode */
|
uint8_t ms_stereo; ///< true if mid/side stereo mode
|
||||||
uint8_t channel_coded[MAX_CHANNELS]; /* true if channel is coded */
|
uint8_t channel_coded[MAX_CHANNELS]; ///< true if channel is coded
|
||||||
DECLARE_ALIGNED_16(float, exponents[MAX_CHANNELS][BLOCK_MAX_SIZE]);
|
DECLARE_ALIGNED_16(float, exponents[MAX_CHANNELS][BLOCK_MAX_SIZE]);
|
||||||
float max_exponent[MAX_CHANNELS];
|
float max_exponent[MAX_CHANNELS];
|
||||||
int16_t coefs1[MAX_CHANNELS][BLOCK_MAX_SIZE];
|
int16_t coefs1[MAX_CHANNELS][BLOCK_MAX_SIZE];
|
||||||
@ -114,7 +114,7 @@ typedef struct WMADecodeContext {
|
|||||||
DECLARE_ALIGNED_16(float, window[BLOCK_MAX_SIZE * 2]);
|
DECLARE_ALIGNED_16(float, window[BLOCK_MAX_SIZE * 2]);
|
||||||
MDCTContext mdct_ctx[BLOCK_NB_SIZES];
|
MDCTContext mdct_ctx[BLOCK_NB_SIZES];
|
||||||
float *windows[BLOCK_NB_SIZES];
|
float *windows[BLOCK_NB_SIZES];
|
||||||
DECLARE_ALIGNED_16(FFTSample, mdct_tmp[BLOCK_MAX_SIZE]); /* temporary storage for imdct */
|
DECLARE_ALIGNED_16(FFTSample, mdct_tmp[BLOCK_MAX_SIZE]); ///< temporary storage for imdct
|
||||||
/* output buffer for one frame and the last for IMDCT windowing */
|
/* output buffer for one frame and the last for IMDCT windowing */
|
||||||
DECLARE_ALIGNED_16(float, frame_out[MAX_CHANNELS][BLOCK_MAX_SIZE * 2]);
|
DECLARE_ALIGNED_16(float, frame_out[MAX_CHANNELS][BLOCK_MAX_SIZE * 2]);
|
||||||
/* last frame info */
|
/* last frame info */
|
||||||
|
@ -127,8 +127,10 @@ static int wma_decode_init(AVCodecContext * avctx)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* interpolate values for a bigger or smaller block. The block must
|
/**
|
||||||
have multiple sizes */
|
* interpolate values for a bigger or smaller block. The block must
|
||||||
|
* have multiple sizes
|
||||||
|
*/
|
||||||
static void interpolate_array(float *scale, int old_size, int new_size)
|
static void interpolate_array(float *scale, int old_size, int new_size)
|
||||||
{
|
{
|
||||||
int i, j, jincr, k;
|
int i, j, jincr, k;
|
||||||
@ -154,10 +156,12 @@ static void interpolate_array(float *scale, int old_size, int new_size)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* compute x^-0.25 with an exponent and mantissa table. We use linear
|
/**
|
||||||
interpolation to reduce the mantissa table size at a small speed
|
* compute x^-0.25 with an exponent and mantissa table. We use linear
|
||||||
expense (linear interpolation approximately doubles the number of
|
* interpolation to reduce the mantissa table size at a small speed
|
||||||
bits of precision). */
|
* expense (linear interpolation approximately doubles the number of
|
||||||
|
* bits of precision).
|
||||||
|
*/
|
||||||
static inline float pow_m1_4(WMADecodeContext *s, float x)
|
static inline float pow_m1_4(WMADecodeContext *s, float x)
|
||||||
{
|
{
|
||||||
union {
|
union {
|
||||||
@ -214,8 +218,10 @@ static void wma_lsp_to_curve_init(WMADecodeContext *s, int frame_len)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* NOTE: We use the same code as Vorbis here */
|
/**
|
||||||
/* XXX: optimize it further with SSE/3Dnow */
|
* NOTE: We use the same code as Vorbis here
|
||||||
|
* @todo optimize it further with SSE/3Dnow
|
||||||
|
*/
|
||||||
static void wma_lsp_to_curve(WMADecodeContext *s,
|
static void wma_lsp_to_curve(WMADecodeContext *s,
|
||||||
float *out, float *val_max_ptr,
|
float *out, float *val_max_ptr,
|
||||||
int n, float *lsp)
|
int n, float *lsp)
|
||||||
@ -243,7 +249,9 @@ static void wma_lsp_to_curve(WMADecodeContext *s,
|
|||||||
*val_max_ptr = val_max;
|
*val_max_ptr = val_max;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* decode exponents coded with LSP coefficients (same idea as Vorbis) */
|
/**
|
||||||
|
* decode exponents coded with LSP coefficients (same idea as Vorbis)
|
||||||
|
*/
|
||||||
static void decode_exp_lsp(WMADecodeContext *s, int ch)
|
static void decode_exp_lsp(WMADecodeContext *s, int ch)
|
||||||
{
|
{
|
||||||
float lsp_coefs[NB_LSP_COEFS];
|
float lsp_coefs[NB_LSP_COEFS];
|
||||||
@ -261,7 +269,9 @@ static void decode_exp_lsp(WMADecodeContext *s, int ch)
|
|||||||
s->block_len, lsp_coefs);
|
s->block_len, lsp_coefs);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* decode exponents coded with VLC codes */
|
/**
|
||||||
|
* decode exponents coded with VLC codes
|
||||||
|
*/
|
||||||
static int decode_exp_vlc(WMADecodeContext *s, int ch)
|
static int decode_exp_vlc(WMADecodeContext *s, int ch)
|
||||||
{
|
{
|
||||||
int last_exp, n, code;
|
int last_exp, n, code;
|
||||||
@ -304,8 +314,10 @@ static int decode_exp_vlc(WMADecodeContext *s, int ch)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* return 0 if OK. return 1 if last block of frame. return -1 if
|
/**
|
||||||
unrecorrable error. */
|
* @return 0 if OK. 1 if last block of frame. return -1 if
|
||||||
|
* unrecorrable error.
|
||||||
|
*/
|
||||||
static int wma_decode_block(WMADecodeContext *s)
|
static int wma_decode_block(WMADecodeContext *s)
|
||||||
{
|
{
|
||||||
int n, v, a, ch, code, bsize;
|
int n, v, a, ch, code, bsize;
|
||||||
|
Loading…
Reference in New Issue
Block a user