changeset 5391:6c1633a8dbc3 libavcodec

set bit allocation parameters directly instead of copying
author jbr
date Tue, 24 Jul 2007 01:35:25 +0000
parents 479d93117d3c
children 1f48e25e8d1e
files ac3dec.c
diffstat 1 files changed, 7 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/ac3dec.c	Mon Jul 23 22:47:49 2007 +0000
+++ b/ac3dec.c	Tue Jul 24 01:35:25 2007 +0000
@@ -107,11 +107,6 @@
     uint8_t  cplexpstr;
     uint8_t  lfeexpstr;
     uint8_t  chexpstr[5];
-    uint8_t  sdcycod;
-    uint8_t  fdcycod;
-    uint8_t  sgaincod;
-    uint8_t  dbpbcod;
-    uint8_t  floorcod;
     uint8_t  csnroffst;
     uint8_t  cplfsnroffst;
     uint8_t  cplfgaincod;
@@ -119,8 +114,6 @@
     uint8_t  fgaincod[5];
     uint8_t  lfefsnroffst;
     uint8_t  lfefgaincod;
-    uint8_t  cplfleak;
-    uint8_t  cplsleak;
     uint8_t  cpldeltbae;
     uint8_t  deltbae[5];
     uint8_t  cpldeltnseg;
@@ -1462,11 +1455,11 @@
 
     if (get_bits1(gb)) { /* bit allocation information */
         bit_alloc_flags = 127;
-        ctx->sdcycod = get_bits(gb, 2);
-        ctx->fdcycod = get_bits(gb, 2);
-        ctx->sgaincod = get_bits(gb, 2);
-        ctx->dbpbcod = get_bits(gb, 2);
-        ctx->floorcod = get_bits(gb, 3);
+        ctx->bit_alloc_params.sdecay = ff_sdecaytab[get_bits(gb, 2)];
+        ctx->bit_alloc_params.fdecay = ff_fdecaytab[get_bits(gb, 2)];
+        ctx->bit_alloc_params.sgain  = ff_sgaintab[get_bits(gb, 2)];
+        ctx->bit_alloc_params.dbknee = ff_dbkneetab[get_bits(gb, 2)];
+        ctx->bit_alloc_params.floor  = ff_floortab[get_bits(gb, 3)];
     }
 
     if (get_bits1(gb)) { /* snroffset */
@@ -1488,8 +1481,8 @@
 
     if (ctx->cplinu && get_bits1(gb)) { /* coupling leak information */
         bit_alloc_flags |= 64;
-        ctx->cplfleak = get_bits(gb, 3);
-        ctx->cplsleak = get_bits(gb, 3);
+        ctx->bit_alloc_params.cplfleak = get_bits(gb, 3);
+        ctx->bit_alloc_params.cplsleak = get_bits(gb, 3);
     }
 
     if (get_bits1(gb)) { /* delta bit allocation information */
@@ -1539,15 +1532,6 @@
     }
 
     if (bit_alloc_flags) {
-        /* set bit allocation parameters */
-        ctx->bit_alloc_params.sdecay = ff_sdecaytab[ctx->sdcycod];
-        ctx->bit_alloc_params.fdecay = ff_fdecaytab[ctx->fdcycod];
-        ctx->bit_alloc_params.sgain = ff_sgaintab[ctx->sgaincod];
-        ctx->bit_alloc_params.dbknee = ff_dbkneetab[ctx->dbpbcod];
-        ctx->bit_alloc_params.floor = ff_floortab[ctx->floorcod];
-        ctx->bit_alloc_params.cplfleak = ctx->cplfleak;
-        ctx->bit_alloc_params.cplsleak = ctx->cplsleak;
-
         if (ctx->cplinu && (bit_alloc_flags & 64))
             do_bit_allocation(ctx, 5);
         for (i = 0; i < nfchans; i++)