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)
 | 
			
		||||
 | 
			
		||||
typedef struct CoefVLCTable {
 | 
			
		||||
    int n; /* total number of codes */
 | 
			
		||||
    int n;                      ///< total number of codes
 | 
			
		||||
    int max_level;
 | 
			
		||||
    const uint32_t *huffcodes; /* VLC bit values */
 | 
			
		||||
    const uint8_t *huffbits;   /* VLC bit size */
 | 
			
		||||
    const uint16_t *levels; /* table to build run/level tables */
 | 
			
		||||
    const uint32_t *huffcodes;  ///< VLC bit values
 | 
			
		||||
    const uint8_t *huffbits;    ///< VLC bit size
 | 
			
		||||
    const uint16_t *levels;     ///< table to build run/level tables
 | 
			
		||||
} CoefVLCTable;
 | 
			
		||||
 | 
			
		||||
typedef struct WMADecodeContext {
 | 
			
		||||
@ -64,19 +64,19 @@ typedef struct WMADecodeContext {
 | 
			
		||||
    int sample_rate;
 | 
			
		||||
    int nb_channels;
 | 
			
		||||
    int bit_rate;
 | 
			
		||||
    int version; /* 1 = 0x160 (WMAV1), 2 = 0x161 (WMAV2) */
 | 
			
		||||
    int version;                            ///< 1 = 0x160 (WMAV1), 2 = 0x161 (WMAV2)
 | 
			
		||||
    int block_align;
 | 
			
		||||
    int use_bit_reservoir;
 | 
			
		||||
    int use_variable_block_len;
 | 
			
		||||
    int use_exp_vlc;  /* exponent coding: 0 = lsp, 1 = vlc + delta */
 | 
			
		||||
    int use_noise_coding; /* true if perceptual noise is added */
 | 
			
		||||
    int use_exp_vlc;                        ///< exponent coding: 0 = lsp, 1 = vlc + delta
 | 
			
		||||
    int use_noise_coding;                   ///< true if perceptual noise is added
 | 
			
		||||
    int byte_offset_bits;
 | 
			
		||||
    VLC exp_vlc;
 | 
			
		||||
    int exponent_sizes[BLOCK_NB_SIZES];
 | 
			
		||||
    uint16_t exponent_bands[BLOCK_NB_SIZES][25];
 | 
			
		||||
    int high_band_start[BLOCK_NB_SIZES]; /* index of first coef in high band */
 | 
			
		||||
    int coefs_start;               /* first coded coef */
 | 
			
		||||
    int coefs_end[BLOCK_NB_SIZES]; /* max number of coded coefficients */
 | 
			
		||||
    int high_band_start[BLOCK_NB_SIZES];    ///< index of first coef in high band
 | 
			
		||||
    int coefs_start;                        ///< first coded coef
 | 
			
		||||
    int coefs_end[BLOCK_NB_SIZES];          ///< max number of coded coefficients
 | 
			
		||||
    int exponent_high_sizes[BLOCK_NB_SIZES];
 | 
			
		||||
    int exponent_high_bands[BLOCK_NB_SIZES][HIGH_BAND_MAX_SIZE];
 | 
			
		||||
    VLC hgain_vlc;
 | 
			
		||||
@ -93,19 +93,19 @@ typedef struct WMADecodeContext {
 | 
			
		||||
    uint16_t *int_table[2];
 | 
			
		||||
    CoefVLCTable *coef_vlcs[2];
 | 
			
		||||
    /* frame info */
 | 
			
		||||
    int frame_len;       /* frame length in samples */
 | 
			
		||||
    int frame_len_bits;  /* frame_len = 1 << frame_len_bits */
 | 
			
		||||
    int nb_block_sizes;  /* number of block sizes */
 | 
			
		||||
    int frame_len;                          ///< frame length in samples
 | 
			
		||||
    int frame_len_bits;                     ///< frame_len = 1 << frame_len_bits
 | 
			
		||||
    int nb_block_sizes;                     ///< number of block sizes
 | 
			
		||||
    /* block info */
 | 
			
		||||
    int reset_block_lengths;
 | 
			
		||||
    int block_len_bits; /* log2 of current block length */
 | 
			
		||||
    int next_block_len_bits; /* log2 of next block length */
 | 
			
		||||
    int prev_block_len_bits; /* log2 of prev block length */
 | 
			
		||||
    int block_len; /* block length in samples */
 | 
			
		||||
    int block_num; /* block number in current frame */
 | 
			
		||||
    int block_pos; /* current position in frame */
 | 
			
		||||
    uint8_t ms_stereo; /* true if mid/side stereo mode */
 | 
			
		||||
    uint8_t channel_coded[MAX_CHANNELS]; /* true if channel is coded */
 | 
			
		||||
    int block_len_bits;                     ///< log2 of current block length
 | 
			
		||||
    int next_block_len_bits;                ///< log2 of next block length
 | 
			
		||||
    int prev_block_len_bits;                ///< log2 of prev block length
 | 
			
		||||
    int block_len;                          ///< block length in samples
 | 
			
		||||
    int block_num;                          ///< block number in current frame
 | 
			
		||||
    int block_pos;                          ///< current position in frame
 | 
			
		||||
    uint8_t ms_stereo;                      ///< true if mid/side stereo mode
 | 
			
		||||
    uint8_t channel_coded[MAX_CHANNELS];    ///< true if channel is coded
 | 
			
		||||
    DECLARE_ALIGNED_16(float, exponents[MAX_CHANNELS][BLOCK_MAX_SIZE]);
 | 
			
		||||
    float max_exponent[MAX_CHANNELS];
 | 
			
		||||
    int16_t coefs1[MAX_CHANNELS][BLOCK_MAX_SIZE];
 | 
			
		||||
@ -114,7 +114,7 @@ typedef struct WMADecodeContext {
 | 
			
		||||
    DECLARE_ALIGNED_16(float, window[BLOCK_MAX_SIZE * 2]);
 | 
			
		||||
    MDCTContext mdct_ctx[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 */
 | 
			
		||||
    DECLARE_ALIGNED_16(float, frame_out[MAX_CHANNELS][BLOCK_MAX_SIZE * 2]);
 | 
			
		||||
    /* last frame info */
 | 
			
		||||
 | 
			
		||||
@ -127,8 +127,10 @@ static int wma_decode_init(AVCodecContext * avctx)
 | 
			
		||||
    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)
 | 
			
		||||
{
 | 
			
		||||
    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
 | 
			
		||||
   expense (linear interpolation approximately doubles the number of
 | 
			
		||||
   bits of precision). */
 | 
			
		||||
/**
 | 
			
		||||
 * compute x^-0.25 with an exponent and mantissa table. We use linear
 | 
			
		||||
 * interpolation to reduce the mantissa table size at a small speed
 | 
			
		||||
 * expense (linear interpolation approximately doubles the number of
 | 
			
		||||
 * bits of precision).
 | 
			
		||||
 */
 | 
			
		||||
static inline float pow_m1_4(WMADecodeContext *s, float x)
 | 
			
		||||
{
 | 
			
		||||
    union {
 | 
			
		||||
@ -214,8 +218,10 @@ static void wma_lsp_to_curve_init(WMADecodeContext *s, int frame_len)
 | 
			
		||||
#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,
 | 
			
		||||
                             float *out, float *val_max_ptr,
 | 
			
		||||
                             int n, float *lsp)
 | 
			
		||||
@ -243,7 +249,9 @@ static void wma_lsp_to_curve(WMADecodeContext *s,
 | 
			
		||||
    *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)
 | 
			
		||||
{
 | 
			
		||||
    float lsp_coefs[NB_LSP_COEFS];
 | 
			
		||||
@ -261,7 +269,9 @@ static void decode_exp_lsp(WMADecodeContext *s, int ch)
 | 
			
		||||
                     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)
 | 
			
		||||
{
 | 
			
		||||
    int last_exp, n, code;
 | 
			
		||||
@ -304,8 +314,10 @@ static int decode_exp_vlc(WMADecodeContext *s, int ch)
 | 
			
		||||
    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)
 | 
			
		||||
{
 | 
			
		||||
    int n, v, a, ch, code, bsize;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user