changeset 4679:acdd4b24f5c5 libavcodec

hardcode ff_ac3_frame_sizes table
author jbr
date Sun, 18 Mar 2007 04:53:21 +0000
parents ae5abc4dc946
children 71c1e1171e83
files ac3.c ac3.h ac3tab.h parser.c
diffstat 4 files changed, 42 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/ac3.c	Sat Mar 17 14:59:58 2007 +0000
+++ b/ac3.c	Sun Mar 18 04:53:21 2007 +0000
@@ -200,14 +200,6 @@
         l += v;
     }
     bndtab[50] = l;
-
-    /* generate ff_ac3_frame_sizes table */
-    for(i=0; i<38; i++) {
-        int br = ff_ac3_bitratetab[i >> 1];
-        ff_ac3_frame_sizes[i][0] = (  2*br      );
-        ff_ac3_frame_sizes[i][1] = (320*br / 147) + (i & 1);
-        ff_ac3_frame_sizes[i][2] = (  3*br      );
-    }
 }
 
 int ff_ac3_parse_header(const uint8_t buf[7], AC3HeaderInfo *hdr)
--- a/ac3.h	Sat Mar 17 14:59:58 2007 +0000
+++ b/ac3.h	Sun Mar 18 04:53:21 2007 +0000
@@ -89,7 +89,7 @@
  */
 int ff_ac3_parse_header(const uint8_t buf[7], AC3HeaderInfo *hdr);
 
-extern uint16_t ff_ac3_frame_sizes[38][3];
+extern const uint16_t ff_ac3_frame_sizes[38][3];
 extern const uint8_t ff_ac3_channels[8];
 extern const uint16_t ff_ac3_freqs[3];
 extern const uint16_t ff_ac3_bitratetab[19];
--- a/ac3tab.h	Sat Mar 17 14:59:58 2007 +0000
+++ b/ac3tab.h	Sun Mar 18 04:53:21 2007 +0000
@@ -26,9 +26,48 @@
 
 /**
  * Possible frame sizes.
- * Generated at runtime to match ATSC A/52 Table 5.18 Frame Size Code Table.
+ * from ATSC A/52 Table 5.18 Frame Size Code Table.
  */
-uint16_t ff_ac3_frame_sizes[38][3];
+const uint16_t ff_ac3_frame_sizes[38][3] = {
+    { 64,   69,   96   },
+    { 64,   70,   96   },
+    { 80,   87,   120  },
+    { 80,   88,   120  },
+    { 96,   104,  144  },
+    { 96,   105,  144  },
+    { 112,  121,  168  },
+    { 112,  122,  168  },
+    { 128,  139,  192  },
+    { 128,  140,  192  },
+    { 160,  174,  240  },
+    { 160,  175,  240  },
+    { 192,  208,  288  },
+    { 192,  209,  288  },
+    { 224,  243,  336  },
+    { 224,  244,  336  },
+    { 256,  278,  384  },
+    { 256,  279,  384  },
+    { 320,  348,  480  },
+    { 320,  349,  480  },
+    { 384,  417,  576  },
+    { 384,  418,  576  },
+    { 448,  487,  672  },
+    { 448,  488,  672  },
+    { 512,  557,  768  },
+    { 512,  558,  768  },
+    { 640,  696,  960  },
+    { 640,  697,  960  },
+    { 768,  835,  1152 },
+    { 768,  836,  1152 },
+    { 896,  975,  1344 },
+    { 896,  976,  1344 },
+    { 1024, 1114, 1536 },
+    { 1024, 1115, 1536 },
+    { 1152, 1253, 1728 },
+    { 1152, 1254, 1728 },
+    { 1280, 1393, 1920 },
+    { 1280, 1394, 1920 },
+};
 
 /**
  * Maps audio coding mode (acmod) to number of full-bandwidth channels.
--- a/parser.c	Sat Mar 17 14:59:58 2007 +0000
+++ b/parser.c	Sun Mar 18 04:53:21 2007 +0000
@@ -710,7 +710,6 @@
     s->inbuf_ptr = s->inbuf;
     s->header_size = AC3_HEADER_SIZE;
     s->sync = ac3_sync;
-    ac3_common_init();
     return 0;
 }
 #endif