提交 6836af52 编写于 作者: M Michael Niedermayer

doxygenize

Originally committed as revision 7872 to svn://svn.ffmpeg.org/ffmpeg/trunk
上级 013591c5
...@@ -51,11 +51,11 @@ ...@@ -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 { ...@@ -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 { ...@@ -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 { ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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, ...@@ -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) ...@@ -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) ...@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册