[FFmpeg-cvslog] r25950 - in trunk/libavcodec: ac3.h ac3dec.h ac3enc.c

jbr subversion
Tue Dec 14 15:50:34 CET 2010


Author: jbr
Date: Tue Dec 14 15:50:34 2010
New Revision: 25950

Log:
cosmetics: use better (and shared) macro names for some constant values

Modified:
   trunk/libavcodec/ac3.h
   trunk/libavcodec/ac3dec.h
   trunk/libavcodec/ac3enc.c

Modified: trunk/libavcodec/ac3.h
==============================================================================
--- trunk/libavcodec/ac3.h	Tue Dec 14 15:50:30 2010	(r25949)
+++ trunk/libavcodec/ac3.h	Tue Dec 14 15:50:34 2010	(r25950)
@@ -32,8 +32,10 @@
 #define AC3_MAX_CODED_FRAME_SIZE 3840 /* in bytes */
 #define AC3_MAX_CHANNELS 6 /* including LFE channel */
 
-#define NB_BLOCKS 6 /* number of PCM blocks inside an AC-3 frame */
-#define AC3_FRAME_SIZE (NB_BLOCKS * 256)
+#define AC3_MAX_COEFS   256
+#define AC3_BLOCK_SIZE  256
+#define AC3_MAX_BLOCKS    6
+#define AC3_FRAME_SIZE (AC3_MAX_BLOCKS * 256)
 
 /* exponent encoding strategy */
 #define EXP_REUSE 0

Modified: trunk/libavcodec/ac3dec.h
==============================================================================
--- trunk/libavcodec/ac3dec.h	Tue Dec 14 15:50:30 2010	(r25949)
+++ trunk/libavcodec/ac3dec.h	Tue Dec 14 15:50:34 2010	(r25950)
@@ -63,9 +63,6 @@
 
 #define AC3_OUTPUT_LFEON  8
 
-#define AC3_MAX_COEFS   256
-#define AC3_BLOCK_SIZE  256
-#define MAX_BLOCKS        6
 #define SPX_MAX_BANDS    17
 
 typedef struct {
@@ -101,8 +98,8 @@ typedef struct {
  ///@}
 
 ///@defgroup cpl standard coupling
-    int cpl_in_use[MAX_BLOCKS];             ///< coupling in use                        (cplinu)
-    int cpl_strategy_exists[MAX_BLOCKS];    ///< coupling strategy exists               (cplstre)
+    int cpl_in_use[AC3_MAX_BLOCKS];         ///< coupling in use                        (cplinu)
+    int cpl_strategy_exists[AC3_MAX_BLOCKS];///< coupling strategy exists               (cplstre)
     int channel_in_cpl[AC3_MAX_CHANNELS];   ///< channel in coupling                    (chincpl)
     int phase_flags_in_use;                 ///< phase flags in use                     (phsflginu)
     int phase_flags[18];                    ///< phase flags                            (phsflg)
@@ -131,7 +128,7 @@ typedef struct {
 
 ///@defgroup aht adaptive hybrid transform
     int channel_uses_aht[AC3_MAX_CHANNELS];                         ///< channel AHT in use (chahtinu)
-    int pre_mantissa[AC3_MAX_CHANNELS][AC3_MAX_COEFS][MAX_BLOCKS];  ///< pre-IDCT mantissas
+    int pre_mantissa[AC3_MAX_CHANNELS][AC3_MAX_COEFS][AC3_MAX_BLOCKS];  ///< pre-IDCT mantissas
 ///@}
 
 ///@defgroup channel channel
@@ -161,7 +158,7 @@ typedef struct {
 ///@defgroup exponents exponents
     int num_exp_groups[AC3_MAX_CHANNELS];           ///< Number of exponent groups      (nexpgrp)
     int8_t dexps[AC3_MAX_CHANNELS][AC3_MAX_COEFS];  ///< decoded exponents
-    int exp_strategy[MAX_BLOCKS][AC3_MAX_CHANNELS]; ///< exponent strategies            (expstr)
+    int exp_strategy[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS]; ///< exponent strategies        (expstr)
 ///@}
 
 ///@defgroup bitalloc bit allocation

Modified: trunk/libavcodec/ac3enc.c
==============================================================================
--- trunk/libavcodec/ac3enc.c	Tue Dec 14 15:50:30 2010	(r25949)
+++ trunk/libavcodec/ac3enc.c	Tue Dec 14 15:50:34 2010	(r25950)
@@ -68,7 +68,7 @@ typedef struct AC3EncodeContext {
     /* mantissa encoding */
     int mant1_cnt, mant2_cnt, mant4_cnt;
 
-    int16_t last_samples[AC3_MAX_CHANNELS][256];
+    int16_t last_samples[AC3_MAX_CHANNELS][AC3_BLOCK_SIZE];
 } AC3EncodeContext;
 
 static int16_t costab[64];
@@ -77,7 +77,7 @@ static int16_t xcos1[128];
 static int16_t xsin1[128];
 
 #define MDCT_NBITS 9
-#define N         (1 << MDCT_NBITS)
+#define MDCT_SAMPLES (1 << MDCT_NBITS)
 
 /* new exponents are sent if their Norm 1 exceed this number */
 #define EXP_DIFF_THRESHOLD 1000
@@ -205,31 +205,31 @@ static void fft(IComplex *z, int ln)
 static void mdct512(int32_t *out, int16_t *in)
 {
     int i, re, im, re1, im1;
-    int16_t rot[N];
-    IComplex x[N/4];
+    int16_t rot[MDCT_SAMPLES];
+    IComplex x[MDCT_SAMPLES/4];
 
     /* shift to simplify computations */
-    for(i=0;i<N/4;i++)
-        rot[i] = -in[i + 3*N/4];
-    for(i=N/4;i<N;i++)
-        rot[i] = in[i - N/4];
+    for(i=0;i<MDCT_SAMPLES/4;i++)
+        rot[i] = -in[i + 3*MDCT_SAMPLES/4];
+    for(i=MDCT_SAMPLES/4;i<MDCT_SAMPLES;i++)
+        rot[i] = in[i - MDCT_SAMPLES/4];
 
     /* pre rotation */
-    for(i=0;i<N/4;i++) {
-        re = ((int)rot[2*i] - (int)rot[N-1-2*i]) >> 1;
-        im = -((int)rot[N/2+2*i] - (int)rot[N/2-1-2*i]) >> 1;
+    for(i=0;i<MDCT_SAMPLES/4;i++) {
+        re = ((int)rot[2*i] - (int)rot[MDCT_SAMPLES-1-2*i]) >> 1;
+        im = -((int)rot[MDCT_SAMPLES/2+2*i] - (int)rot[MDCT_SAMPLES/2-1-2*i]) >> 1;
         CMUL(x[i].re, x[i].im, re, im, -xcos1[i], xsin1[i]);
     }
 
     fft(x, MDCT_NBITS - 2);
 
     /* post rotation */
-    for(i=0;i<N/4;i++) {
+    for(i=0;i<MDCT_SAMPLES/4;i++) {
         re = x[i].re;
         im = x[i].im;
         CMUL(re1, im1, re, im, xsin1[i], xcos1[i]);
         out[2*i] = im1;
-        out[N/2-1-2*i] = re1;
+        out[MDCT_SAMPLES/2-1-2*i] = re1;
     }
 }
 
@@ -244,8 +244,8 @@ static int calc_exp_diff(uint8_t *exp1, 
     return sum;
 }
 
-static void compute_exp_strategy(uint8_t exp_strategy[NB_BLOCKS][AC3_MAX_CHANNELS],
-                                 uint8_t exp[NB_BLOCKS][AC3_MAX_CHANNELS][N/2],
+static void compute_exp_strategy(uint8_t exp_strategy[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS],
+                                 uint8_t exp[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS][AC3_MAX_COEFS],
                                  int ch, int is_lfe)
 {
     int i, j;
@@ -254,8 +254,8 @@ static void compute_exp_strategy(uint8_t
     /* estimate if the exponent variation & decide if they should be
        reused in the next frame */
     exp_strategy[0][ch] = EXP_NEW;
-    for(i=1;i<NB_BLOCKS;i++) {
-        exp_diff = calc_exp_diff(exp[i][ch], exp[i-1][ch], N/2);
+    for(i=1;i<AC3_MAX_BLOCKS;i++) {
+        exp_diff = calc_exp_diff(exp[i][ch], exp[i-1][ch], AC3_MAX_COEFS);
         dprintf(NULL, "exp_diff=%d\n", exp_diff);
         if (exp_diff > EXP_DIFF_THRESHOLD)
             exp_strategy[i][ch] = EXP_NEW;
@@ -268,9 +268,9 @@ static void compute_exp_strategy(uint8_t
     /* now select the encoding strategy type : if exponents are often
        recoded, we use a coarse encoding */
     i = 0;
-    while (i < NB_BLOCKS) {
+    while (i < AC3_MAX_BLOCKS) {
         j = i + 1;
-        while (j < NB_BLOCKS && exp_strategy[j][ch] == EXP_REUSE)
+        while (j < AC3_MAX_BLOCKS && exp_strategy[j][ch] == EXP_REUSE)
             j++;
         switch(j - i) {
         case 1:
@@ -289,7 +289,7 @@ static void compute_exp_strategy(uint8_t
 }
 
 /* set exp[i] to min(exp[i], exp1[i]) */
-static void exponent_min(uint8_t exp[N/2], uint8_t exp1[N/2], int n)
+static void exponent_min(uint8_t exp[AC3_MAX_COEFS], uint8_t exp1[AC3_MAX_COEFS], int n)
 {
     int i;
 
@@ -301,13 +301,13 @@ static void exponent_min(uint8_t exp[N/2
 
 /* update the exponents so that they are the ones the decoder will
    decode. Return the number of bits used to code the exponents */
-static int encode_exp(uint8_t encoded_exp[N/2],
-                      uint8_t exp[N/2],
+static int encode_exp(uint8_t encoded_exp[AC3_MAX_COEFS],
+                      uint8_t exp[AC3_MAX_COEFS],
                       int nb_exps,
                       int exp_strategy)
 {
     int group_size, nb_groups, i, j, k, exp_min;
-    uint8_t exp1[N/2];
+    uint8_t exp1[AC3_MAX_COEFS];
 
     switch(exp_strategy) {
     case EXP_D15:
@@ -421,18 +421,18 @@ static int compute_mantissa_size(AC3Enco
 
 
 static void bit_alloc_masking(AC3EncodeContext *s,
-                              uint8_t encoded_exp[NB_BLOCKS][AC3_MAX_CHANNELS][N/2],
-                              uint8_t exp_strategy[NB_BLOCKS][AC3_MAX_CHANNELS],
-                              int16_t psd[NB_BLOCKS][AC3_MAX_CHANNELS][N/2],
-                              int16_t mask[NB_BLOCKS][AC3_MAX_CHANNELS][50])
+                              uint8_t encoded_exp[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS][AC3_MAX_COEFS],
+                              uint8_t exp_strategy[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS],
+                              int16_t psd[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS][AC3_MAX_COEFS],
+                              int16_t mask[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS][50])
 {
     int blk, ch;
-    int16_t band_psd[NB_BLOCKS][AC3_MAX_CHANNELS][50];
+    int16_t band_psd[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS][50];
 
-    for(blk=0; blk<NB_BLOCKS; blk++) {
+    for(blk=0; blk<AC3_MAX_BLOCKS; blk++) {
         for(ch=0;ch<s->channels;ch++) {
             if(exp_strategy[blk][ch] == EXP_REUSE) {
-                memcpy(psd[blk][ch], psd[blk-1][ch], (N/2)*sizeof(int16_t));
+                memcpy(psd[blk][ch], psd[blk-1][ch], AC3_MAX_COEFS*sizeof(int16_t));
                 memcpy(mask[blk][ch], mask[blk-1][ch], 50*sizeof(int16_t));
             } else {
                 ff_ac3_bit_alloc_calc_psd(encoded_exp[blk][ch], 0,
@@ -450,9 +450,9 @@ static void bit_alloc_masking(AC3EncodeC
 }
 
 static int bit_alloc(AC3EncodeContext *s,
-                     int16_t mask[NB_BLOCKS][AC3_MAX_CHANNELS][50],
-                     int16_t psd[NB_BLOCKS][AC3_MAX_CHANNELS][N/2],
-                     uint8_t bap[NB_BLOCKS][AC3_MAX_CHANNELS][N/2],
+                     int16_t mask[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS][50],
+                     int16_t psd[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS][AC3_MAX_COEFS],
+                     uint8_t bap[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS][AC3_MAX_COEFS],
                      int frame_bits, int coarse_snr_offset, int fine_snr_offset)
 {
     int i, ch;
@@ -461,7 +461,7 @@ static int bit_alloc(AC3EncodeContext *s
     snr_offset = (((coarse_snr_offset - 15) << 4) + fine_snr_offset) << 2;
 
     /* compute size */
-    for(i=0;i<NB_BLOCKS;i++) {
+    for(i=0;i<AC3_MAX_BLOCKS;i++) {
         s->mant1_cnt = 0;
         s->mant2_cnt = 0;
         s->mant4_cnt = 0;
@@ -485,16 +485,16 @@ static int bit_alloc(AC3EncodeContext *s
 #define SNR_INC1 4
 
 static int compute_bit_allocation(AC3EncodeContext *s,
-                                  uint8_t bap[NB_BLOCKS][AC3_MAX_CHANNELS][N/2],
-                                  uint8_t encoded_exp[NB_BLOCKS][AC3_MAX_CHANNELS][N/2],
-                                  uint8_t exp_strategy[NB_BLOCKS][AC3_MAX_CHANNELS],
+                                  uint8_t bap[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS][AC3_MAX_COEFS],
+                                  uint8_t encoded_exp[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS][AC3_MAX_COEFS],
+                                  uint8_t exp_strategy[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS],
                                   int frame_bits)
 {
     int i, ch;
     int coarse_snr_offset, fine_snr_offset;
-    uint8_t bap1[NB_BLOCKS][AC3_MAX_CHANNELS][N/2];
-    int16_t psd[NB_BLOCKS][AC3_MAX_CHANNELS][N/2];
-    int16_t mask[NB_BLOCKS][AC3_MAX_CHANNELS][50];
+    uint8_t bap1[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS][AC3_MAX_COEFS];
+    int16_t psd[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS][AC3_MAX_COEFS];
+    int16_t mask[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS][50];
     static const int frame_bits_inc[8] = { 0, 0, 2, 2, 2, 4, 2, 4 };
 
     /* init default parameters */
@@ -520,7 +520,7 @@ static int compute_bit_allocation(AC3Enc
     frame_bits += frame_bits_inc[s->channel_mode];
 
     /* audio blocks */
-    for(i=0;i<NB_BLOCKS;i++) {
+    for(i=0;i<AC3_MAX_BLOCKS;i++) {
         frame_bits += s->fbw_channels * 2 + 2; /* blksw * c, dithflag * c, dynrnge, cplstre */
         if (s->channel_mode == AC3_CHMODE_STEREO) {
             frame_bits++; /* rematstr */
@@ -711,7 +711,7 @@ static av_cold int AC3_encode_init(AVCod
     if(avctx->cutoff) {
         /* calculate bandwidth based on user-specified cutoff frequency */
         int cutoff = av_clip(avctx->cutoff, 1, s->sample_rate >> 1);
-        int fbw_coeffs = cutoff * 512 / s->sample_rate;
+        int fbw_coeffs = cutoff * 2 * AC3_MAX_COEFS / s->sample_rate;
         bw_code = av_clip((fbw_coeffs - 73) / 3, 0, 60);
     } else {
         /* use default bandwidth setting */
@@ -732,8 +732,8 @@ static av_cold int AC3_encode_init(AVCod
 
     /* mdct init */
     fft_init(MDCT_NBITS - 2);
-    for(i=0;i<N/4;i++) {
-        alpha = 2 * M_PI * (i + 1.0 / 8.0) / (float)N;
+    for(i=0;i<MDCT_SAMPLES/4;i++) {
+        alpha = 2 * M_PI * (i + 1.0 / 8.0) / (float)MDCT_SAMPLES;
         xcos1[i] = fix15(-cos(alpha));
         xsin1[i] = fix15(-sin(alpha));
     }
@@ -811,19 +811,19 @@ static inline int asym_quant(int c, int 
     return v & ((1 << qbits)-1);
 }
 
-/* Output one audio block. There are NB_BLOCKS audio blocks in one AC-3
+/* Output one audio block. There are AC3_MAX_BLOCKS audio blocks in one AC-3
    frame */
 static void output_audio_block(AC3EncodeContext *s,
                                uint8_t exp_strategy[AC3_MAX_CHANNELS],
-                               uint8_t encoded_exp[AC3_MAX_CHANNELS][N/2],
-                               uint8_t bap[AC3_MAX_CHANNELS][N/2],
-                               int32_t mdct_coefs[AC3_MAX_CHANNELS][N/2],
+                               uint8_t encoded_exp[AC3_MAX_CHANNELS][AC3_MAX_COEFS],
+                               uint8_t bap[AC3_MAX_CHANNELS][AC3_MAX_COEFS],
+                               int32_t mdct_coefs[AC3_MAX_CHANNELS][AC3_MAX_COEFS],
                                int8_t global_exp[AC3_MAX_CHANNELS],
                                int block_num)
 {
     int ch, nb_groups, group_size, i, baie, rbnd;
     uint8_t *p;
-    uint16_t qmant[AC3_MAX_CHANNELS][N/2];
+    uint16_t qmant[AC3_MAX_CHANNELS][AC3_MAX_COEFS];
     int exp0, exp1;
     int mant1_cnt, mant2_cnt, mant4_cnt;
     uint16_t *qmant1_ptr, *qmant2_ptr, *qmant4_ptr;
@@ -1187,56 +1187,56 @@ static int AC3_encode_frame(AVCodecConte
     AC3EncodeContext *s = avctx->priv_data;
     const int16_t *samples = data;
     int i, j, k, v, ch;
-    int16_t input_samples[N];
-    int32_t mdct_coef[NB_BLOCKS][AC3_MAX_CHANNELS][N/2];
-    uint8_t exp[NB_BLOCKS][AC3_MAX_CHANNELS][N/2];
-    uint8_t exp_strategy[NB_BLOCKS][AC3_MAX_CHANNELS];
-    uint8_t encoded_exp[NB_BLOCKS][AC3_MAX_CHANNELS][N/2];
-    uint8_t bap[NB_BLOCKS][AC3_MAX_CHANNELS][N/2];
-    int8_t exp_samples[NB_BLOCKS][AC3_MAX_CHANNELS];
+    int16_t input_samples[AC3_BLOCK_SIZE*2];
+    int32_t mdct_coef[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS][AC3_MAX_COEFS];
+    uint8_t exp[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS][AC3_MAX_COEFS];
+    uint8_t exp_strategy[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS];
+    uint8_t encoded_exp[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS][AC3_MAX_COEFS];
+    uint8_t bap[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS][AC3_MAX_COEFS];
+    int8_t exp_samples[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS];
     int frame_bits;
 
     frame_bits = 0;
     for(ch=0;ch<s->channels;ch++) {
         int ich = s->channel_map[ch];
         /* fixed mdct to the six sub blocks & exponent computation */
-        for(i=0;i<NB_BLOCKS;i++) {
+        for(i=0;i<AC3_MAX_BLOCKS;i++) {
             const int16_t *sptr;
             int sinc;
 
             /* compute input samples */
-            memcpy(input_samples, s->last_samples[ich], N/2 * sizeof(int16_t));
+            memcpy(input_samples, s->last_samples[ich], AC3_BLOCK_SIZE * sizeof(int16_t));
             sinc = s->channels;
-            sptr = samples + (sinc * (N/2) * i) + ich;
-            for(j=0;j<N/2;j++) {
+            sptr = samples + (sinc * AC3_BLOCK_SIZE * i) + ich;
+            for(j=0;j<AC3_BLOCK_SIZE;j++) {
                 v = *sptr;
-                input_samples[j + N/2] = v;
+                input_samples[j + AC3_BLOCK_SIZE] = v;
                 s->last_samples[ich][j] = v;
                 sptr += sinc;
             }
 
             /* apply the MDCT window */
-            for(j=0;j<N/2;j++) {
+            for(j=0;j<AC3_BLOCK_SIZE;j++) {
                 input_samples[j] = MUL16(input_samples[j],
                                          ff_ac3_window[j]) >> 15;
-                input_samples[N-j-1] = MUL16(input_samples[N-j-1],
+                input_samples[AC3_BLOCK_SIZE*2-j-1] = MUL16(input_samples[AC3_BLOCK_SIZE*2-j-1],
                                              ff_ac3_window[j]) >> 15;
             }
 
             /* Normalize the samples to use the maximum available
                precision */
-            v = 14 - log2_tab(input_samples, N);
+            v = 14 - log2_tab(input_samples, AC3_BLOCK_SIZE*2);
             if (v < 0)
                 v = 0;
             exp_samples[i][ch] = v - 9;
-            lshift_tab(input_samples, N, v);
+            lshift_tab(input_samples, AC3_BLOCK_SIZE*2, v);
 
             /* do the MDCT */
             mdct512(mdct_coef[i][ch], input_samples);
 
             /* compute "exponents". We take into account the
                normalization there */
-            for(j=0;j<N/2;j++) {
+            for(j=0;j<AC3_MAX_COEFS;j++) {
                 int e;
                 v = abs(mdct_coef[i][ch][j]);
                 if (v == 0)
@@ -1258,9 +1258,9 @@ static int AC3_encode_frame(AVCodecConte
            EXP_REUSE case must be handled carefully : we select the
            min of the exponents */
         i = 0;
-        while (i < NB_BLOCKS) {
+        while (i < AC3_MAX_BLOCKS) {
             j = i + 1;
-            while (j < NB_BLOCKS && exp_strategy[j][ch] == EXP_REUSE) {
+            while (j < AC3_MAX_BLOCKS && exp_strategy[j][ch] == EXP_REUSE) {
                 exponent_min(exp[i][ch], exp[j][ch], s->nb_coefs[ch]);
                 j++;
             }
@@ -1289,7 +1289,7 @@ static int AC3_encode_frame(AVCodecConte
     /* everything is known... let's output the frame */
     output_frame_header(s, frame);
 
-    for(i=0;i<NB_BLOCKS;i++) {
+    for(i=0;i<AC3_MAX_BLOCKS;i++) {
         output_audio_block(s, exp_strategy[i], encoded_exp[i],
                            bap[i], mdct_coef[i], exp_samples[i], i);
     }



More information about the ffmpeg-cvslog mailing list