# HG changeset patch # User jbr # Date 1174193601 0 # Node ID acdd4b24f5c5dee253db501f71b1b24f544564ef # Parent ae5abc4dc946034936c9c863fbda0baa7a09d4a6 hardcode ff_ac3_frame_sizes table diff -r ae5abc4dc946 -r acdd4b24f5c5 ac3.c --- 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) diff -r ae5abc4dc946 -r acdd4b24f5c5 ac3.h --- 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]; diff -r ae5abc4dc946 -r acdd4b24f5c5 ac3tab.h --- 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. diff -r ae5abc4dc946 -r acdd4b24f5c5 parser.c --- 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