]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/ac3.c
Put halfpel_interpol under the same #ifdef as its usage, fixes the warning:
[ffmpeg] / libavcodec / ac3.c
index 3749d02f0115c18742af33b30363337d9fccbdaf..e33cbfe9da234667770d62a27172fc4d4f79bb0f 100644 (file)
 
 #include "avcodec.h"
 #include "ac3.h"
-#include "ac3tab.h"
 #include "bitstream.h"
 
+static uint8_t bndtab[51];
+static uint8_t masktab[253];
+
 static inline int calc_lowcomp1(int a, int b0, int b1, int c)
 {
     if ((b0 + 256) == b1) {
@@ -70,7 +72,7 @@ void ff_ac3_bit_alloc_calc_psd(int8_t *exp, int start, int end, int16_t *psd,
         for(i=j;i<end1;i++) {
             /* logadd */
             int adr = FFMIN(FFABS(v - psd[j]) >> 1, 255);
-            v = FFMAX(v, psd[j]) + latab[adr];
+            v = FFMAX(v, psd[j]) + ff_ac3_latab[adr];
             j++;
         }
         bndpsd[k]=v;
@@ -147,12 +149,12 @@ void ff_ac3_bit_alloc_calc_mask(AC3BitAllocParameters *s, int16_t *bndpsd,
         if (tmp > 0) {
             excite[bin] += tmp >> 2;
         }
-        mask[bin] = FFMAX(hth[bin >> s->halfratecod][s->fscod], excite[bin]);
+        mask[bin] = FFMAX(ff_ac3_hth[bin >> s->halfratecod][s->fscod], excite[bin]);
     }
 
     /* delta bit allocation */
 
-    if (deltbae == 0 || deltbae == 1) {
+    if (deltbae == DBA_REUSE || deltbae == DBA_NEW) {
         int band, seg, delta;
         band = 0;
         for (seg = 0; seg < deltnseg; seg++) {
@@ -185,10 +187,10 @@ void ff_ac3_bit_alloc_calc_bap(int16_t *mask, int16_t *psd, int start, int end,
     j = masktab[start];
     do {
         v = (FFMAX(mask[j] - snroffset - floor, 0) & 0x1FE0) + floor;
-        end1 = FFMIN(bndtab[j] + bndsz[j], end);
+        end1 = FFMIN(bndtab[j] + ff_ac3_bndsz[j], end);
         for (k = i; k < end1; k++) {
             address = av_clip((psd[i] - v) >> 5, 0, 63);
-            bap[i] = baptab[address];
+            bap[i] = ff_ac3_baptab[address];
             i++;
         }
     } while (end > bndtab[j++]);
@@ -229,59 +231,9 @@ void ac3_common_init(void)
     l = 0;
     for(i=0;i<50;i++) {
         bndtab[i] = l;
-        v = bndsz[i];
+        v = ff_ac3_bndsz[i];
         for(j=0;j<v;j++) masktab[k++]=i;
         l += v;
     }
     bndtab[50] = l;
 }
-
-int ff_ac3_parse_header(const uint8_t buf[7], AC3HeaderInfo *hdr)
-{
-    GetBitContext gbc;
-
-    memset(hdr, 0, sizeof(*hdr));
-
-    init_get_bits(&gbc, buf, 54);
-
-    hdr->sync_word = get_bits(&gbc, 16);
-    if(hdr->sync_word != 0x0B77)
-        return -1;
-
-    /* read ahead to bsid to make sure this is AC-3, not E-AC-3 */
-    hdr->bsid = show_bits_long(&gbc, 29) & 0x1F;
-    if(hdr->bsid > 10)
-        return -2;
-
-    hdr->crc1 = get_bits(&gbc, 16);
-    hdr->fscod = get_bits(&gbc, 2);
-    if(hdr->fscod == 3)
-        return -3;
-
-    hdr->frmsizecod = get_bits(&gbc, 6);
-    if(hdr->frmsizecod > 37)
-        return -4;
-
-    skip_bits(&gbc, 5); // skip bsid, already got it
-
-    hdr->bsmod = get_bits(&gbc, 3);
-    hdr->acmod = get_bits(&gbc, 3);
-    if((hdr->acmod & 1) && hdr->acmod != 1) {
-        hdr->cmixlev = get_bits(&gbc, 2);
-    }
-    if(hdr->acmod & 4) {
-        hdr->surmixlev = get_bits(&gbc, 2);
-    }
-    if(hdr->acmod == 2) {
-        hdr->dsurmod = get_bits(&gbc, 2);
-    }
-    hdr->lfeon = get_bits1(&gbc);
-
-    hdr->halfratecod = FFMAX(hdr->bsid, 8) - 8;
-    hdr->sample_rate = ff_ac3_freqs[hdr->fscod] >> hdr->halfratecod;
-    hdr->bit_rate = (ff_ac3_bitratetab[hdr->frmsizecod>>1] * 1000) >> hdr->halfratecod;
-    hdr->channels = ff_ac3_channels[hdr->acmod] + hdr->lfeon;
-    hdr->frame_size = ff_ac3_frame_sizes[hdr->frmsizecod][hdr->fscod] * 2;
-
-    return 0;
-}