1*8f5875f3SDavid du Colombier /* 2*8f5875f3SDavid du Colombier * MPEG layer 3 tables source file 3*8f5875f3SDavid du Colombier * 4*8f5875f3SDavid du Colombier * Copyright (c) 1999 Albert L Faber 5*8f5875f3SDavid du Colombier * 6*8f5875f3SDavid du Colombier * This library is free software; you can redistribute it and/or 7*8f5875f3SDavid du Colombier * modify it under the terms of the GNU Library General Public 8*8f5875f3SDavid du Colombier * License as published by the Free Software Foundation; either 9*8f5875f3SDavid du Colombier * version 2 of the License, or (at your option) any later version. 10*8f5875f3SDavid du Colombier * 11*8f5875f3SDavid du Colombier * This library is distributed in the hope that it will be useful, 12*8f5875f3SDavid du Colombier * but WITHOUT ANY WARRANTY; without even the implied warranty of 13*8f5875f3SDavid du Colombier * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14*8f5875f3SDavid du Colombier * Library General Public License for more details. 15*8f5875f3SDavid du Colombier * 16*8f5875f3SDavid du Colombier * You should have received a copy of the GNU Library General Public 17*8f5875f3SDavid du Colombier * License along with this library; if not, write to the 18*8f5875f3SDavid du Colombier * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 19*8f5875f3SDavid du Colombier * Boston, MA 02111-1307, USA. 20*8f5875f3SDavid du Colombier */ 21*8f5875f3SDavid du Colombier 22*8f5875f3SDavid du Colombier /* $Id: tables.c,v 1.17 2001/03/12 20:40:36 markt Exp $ */ 23*8f5875f3SDavid du Colombier 24*8f5875f3SDavid du Colombier #ifdef HAVE_CONFIG_H 25*8f5875f3SDavid du Colombier # include <config.h> 26*8f5875f3SDavid du Colombier #endif 27*8f5875f3SDavid du Colombier 28*8f5875f3SDavid du Colombier #include "util.h" 29*8f5875f3SDavid du Colombier #include "tables.h" 30*8f5875f3SDavid du Colombier 31*8f5875f3SDavid du Colombier #ifdef WITH_DMALLOC 32*8f5875f3SDavid du Colombier #include <dmalloc.h> 33*8f5875f3SDavid du Colombier #endif 34*8f5875f3SDavid du Colombier 35*8f5875f3SDavid du Colombier static const short t1HB[] = { 36*8f5875f3SDavid du Colombier 1, 1, 37*8f5875f3SDavid du Colombier 1, 0}; 38*8f5875f3SDavid du Colombier 39*8f5875f3SDavid du Colombier static const short t2HB[] = { 40*8f5875f3SDavid du Colombier 1, 2, 1, 41*8f5875f3SDavid du Colombier 3, 1, 1, 42*8f5875f3SDavid du Colombier 3, 2, 0}; 43*8f5875f3SDavid du Colombier 44*8f5875f3SDavid du Colombier static const short t3HB[] = { 45*8f5875f3SDavid du Colombier 3, 2, 1, 46*8f5875f3SDavid du Colombier 1, 1, 1, 47*8f5875f3SDavid du Colombier 3, 2, 0}; 48*8f5875f3SDavid du Colombier 49*8f5875f3SDavid du Colombier static const short t5HB[] = { 50*8f5875f3SDavid du Colombier 1, 2, 6, 5, 51*8f5875f3SDavid du Colombier 3, 1, 4, 4, 52*8f5875f3SDavid du Colombier 7, 5, 7, 1, 53*8f5875f3SDavid du Colombier 6, 1, 1, 0}; 54*8f5875f3SDavid du Colombier 55*8f5875f3SDavid du Colombier static const short t6HB[] = { 56*8f5875f3SDavid du Colombier 7, 3, 5, 1, 57*8f5875f3SDavid du Colombier 6, 2, 3, 2, 58*8f5875f3SDavid du Colombier 5, 4, 4, 1, 59*8f5875f3SDavid du Colombier 3, 3, 2, 0}; 60*8f5875f3SDavid du Colombier 61*8f5875f3SDavid du Colombier static const short t7HB[] = { 62*8f5875f3SDavid du Colombier 1, 2,10,19,16,10, 63*8f5875f3SDavid du Colombier 3, 3, 7,10, 5, 3, 64*8f5875f3SDavid du Colombier 11, 4,13,17, 8, 4, 65*8f5875f3SDavid du Colombier 12,11,18,15,11, 2, 66*8f5875f3SDavid du Colombier 7, 6, 9,14, 3, 1, 67*8f5875f3SDavid du Colombier 6, 4, 5, 3, 2, 0}; 68*8f5875f3SDavid du Colombier 69*8f5875f3SDavid du Colombier static const short t8HB[] = { 70*8f5875f3SDavid du Colombier 3, 4, 6, 18,12, 5, 71*8f5875f3SDavid du Colombier 5, 1, 2, 16, 9, 3, 72*8f5875f3SDavid du Colombier 7, 3, 5, 14, 7, 3, 73*8f5875f3SDavid du Colombier 19,17,15, 13,10, 4, 74*8f5875f3SDavid du Colombier 13, 5, 8, 11, 5, 1, 75*8f5875f3SDavid du Colombier 12, 4, 4, 1, 1, 0}; 76*8f5875f3SDavid du Colombier 77*8f5875f3SDavid du Colombier static const short t9HB[] = { 78*8f5875f3SDavid du Colombier 7, 5, 9, 14, 15, 7, 79*8f5875f3SDavid du Colombier 6, 4, 5, 5, 6, 7, 80*8f5875f3SDavid du Colombier 7, 6, 8, 8, 8, 5, 81*8f5875f3SDavid du Colombier 15, 6, 9, 10, 5, 1, 82*8f5875f3SDavid du Colombier 11, 7, 9, 6, 4, 1, 83*8f5875f3SDavid du Colombier 14, 4, 6, 2, 6, 0}; 84*8f5875f3SDavid du Colombier 85*8f5875f3SDavid du Colombier static const short t10HB[] = { 86*8f5875f3SDavid du Colombier 1, 2, 10, 23, 35, 30, 12, 17, 87*8f5875f3SDavid du Colombier 3, 3, 8, 12, 18, 21, 12, 7, 88*8f5875f3SDavid du Colombier 11, 9, 15, 21, 32, 40, 19, 6, 89*8f5875f3SDavid du Colombier 14,13, 22, 34, 46, 23, 18, 7, 90*8f5875f3SDavid du Colombier 20,19, 33, 47, 27, 22, 9, 3, 91*8f5875f3SDavid du Colombier 31,22, 41, 26, 21, 20, 5, 3, 92*8f5875f3SDavid du Colombier 14,13, 10, 11, 16, 6, 5, 1, 93*8f5875f3SDavid du Colombier 9, 8, 7, 8, 4, 4, 2, 0}; 94*8f5875f3SDavid du Colombier 95*8f5875f3SDavid du Colombier static const short t11HB[] = { 96*8f5875f3SDavid du Colombier 3, 4, 10, 24, 34, 33, 21, 15, 97*8f5875f3SDavid du Colombier 5, 3, 4, 10, 32, 17, 11, 10, 98*8f5875f3SDavid du Colombier 11, 7, 13, 18, 30, 31, 20, 5, 99*8f5875f3SDavid du Colombier 25,11, 19, 59, 27, 18, 12, 5, 100*8f5875f3SDavid du Colombier 35,33, 31, 58, 30, 16, 7, 5, 101*8f5875f3SDavid du Colombier 28,26, 32, 19, 17, 15, 8, 14, 102*8f5875f3SDavid du Colombier 14,12, 9, 13, 14, 9, 4, 1, 103*8f5875f3SDavid du Colombier 11, 4, 6, 6, 6, 3, 2, 0}; 104*8f5875f3SDavid du Colombier 105*8f5875f3SDavid du Colombier static const short t12HB[] = { 106*8f5875f3SDavid du Colombier 9, 6, 16, 33, 41, 39, 38,26, 107*8f5875f3SDavid du Colombier 7, 5, 6, 9, 23, 16, 26,11, 108*8f5875f3SDavid du Colombier 17, 7, 11, 14, 21, 30, 10, 7, 109*8f5875f3SDavid du Colombier 17, 10, 15, 12, 18, 28, 14, 5, 110*8f5875f3SDavid du Colombier 32, 13, 22, 19, 18, 16, 9, 5, 111*8f5875f3SDavid du Colombier 40, 17, 31, 29, 17, 13, 4, 2, 112*8f5875f3SDavid du Colombier 27, 12, 11, 15, 10, 7, 4, 1, 113*8f5875f3SDavid du Colombier 27, 12, 8, 12, 6, 3, 1, 0}; 114*8f5875f3SDavid du Colombier 115*8f5875f3SDavid du Colombier static const short t13HB[] = { 116*8f5875f3SDavid du Colombier 1, 5, 14, 21, 34, 51, 46, 71, 42, 52, 68, 52, 67, 44, 43, 19, 117*8f5875f3SDavid du Colombier 3, 4, 12, 19, 31, 26, 44, 33, 31, 24, 32, 24, 31, 35, 22, 14, 118*8f5875f3SDavid du Colombier 15, 13, 23, 36, 59, 49, 77, 65, 29, 40, 30, 40, 27, 33, 42, 16, 119*8f5875f3SDavid du Colombier 22, 20, 37, 61, 56, 79, 73, 64, 43, 76, 56, 37, 26, 31, 25, 14, 120*8f5875f3SDavid du Colombier 35, 16, 60, 57, 97, 75,114, 91, 54, 73, 55, 41, 48, 53, 23, 24, 121*8f5875f3SDavid du Colombier 58, 27, 50, 96, 76, 70, 93, 84, 77, 58, 79, 29, 74, 49, 41, 17, 122*8f5875f3SDavid du Colombier 47, 45, 78, 74,115, 94, 90, 79, 69, 83, 71, 50, 59, 38, 36, 15, 123*8f5875f3SDavid du Colombier 72, 34, 56, 95, 92, 85, 91, 90, 86, 73, 77, 65, 51, 44, 43, 42, 124*8f5875f3SDavid du Colombier 43, 20, 30, 44, 55, 78, 72, 87, 78, 61, 46, 54, 37, 30, 20, 16, 125*8f5875f3SDavid du Colombier 53, 25, 41, 37, 44, 59, 54, 81, 66, 76, 57, 54, 37, 18, 39, 11, 126*8f5875f3SDavid du Colombier 35, 33, 31, 57, 42, 82, 72, 80, 47, 58, 55, 21, 22, 26, 38, 22, 127*8f5875f3SDavid du Colombier 53, 25, 23, 38, 70, 60, 51, 36, 55, 26, 34, 23, 27, 14, 9, 7, 128*8f5875f3SDavid du Colombier 34, 32, 28, 39, 49, 75, 30, 52, 48, 40, 52, 28, 18, 17, 9, 5, 129*8f5875f3SDavid du Colombier 45, 21, 34, 64, 56, 50, 49, 45, 31, 19, 12, 15, 10, 7, 6, 3, 130*8f5875f3SDavid du Colombier 48, 23, 20, 39, 36, 35, 53, 21, 16, 23, 13, 10, 6, 1, 4, 2, 131*8f5875f3SDavid du Colombier 16, 15, 17, 27, 25, 20, 29, 11, 17, 12, 16, 8, 1, 1, 0, 1}; 132*8f5875f3SDavid du Colombier 133*8f5875f3SDavid du Colombier static const short t15HB[] = { 134*8f5875f3SDavid du Colombier 7, 12, 18, 53, 47, 76,124,108, 89,123,108,119,107, 81,122, 63, 135*8f5875f3SDavid du Colombier 13, 5, 16, 27, 46, 36, 61, 51, 42, 70, 52, 83, 65, 41, 59, 36, 136*8f5875f3SDavid du Colombier 19, 17, 15, 24, 41, 34, 59, 48, 40, 64, 50, 78, 62, 80, 56, 33, 137*8f5875f3SDavid du Colombier 29, 28, 25, 43, 39, 63, 55, 93, 76, 59, 93, 72, 54, 75, 50, 29, 138*8f5875f3SDavid du Colombier 52, 22, 42, 40, 67, 57, 95, 79, 72, 57, 89, 69, 49, 66, 46, 27, 139*8f5875f3SDavid du Colombier 77, 37, 35, 66, 58, 52, 91, 74, 62, 48, 79, 63, 90, 62, 40, 38, 140*8f5875f3SDavid du Colombier 125, 32, 60, 56, 50, 92, 78, 65, 55, 87, 71, 51, 73, 51, 70, 30, 141*8f5875f3SDavid du Colombier 109, 53, 49, 94, 88, 75, 66,122, 91, 73, 56, 42, 64, 44, 21, 25, 142*8f5875f3SDavid du Colombier 90, 43, 41, 77, 73, 63, 56, 92, 77, 66, 47, 67, 48, 53, 36, 20, 143*8f5875f3SDavid du Colombier 71, 34, 67, 60, 58, 49, 88, 76, 67,106, 71, 54, 38, 39, 23, 15, 144*8f5875f3SDavid du Colombier 109, 53, 51, 47, 90, 82, 58, 57, 48, 72, 57, 41, 23, 27, 62, 9, 145*8f5875f3SDavid du Colombier 86, 42, 40, 37, 70, 64, 52, 43, 70, 55, 42, 25, 29, 18, 11, 11, 146*8f5875f3SDavid du Colombier 118, 68, 30, 55, 50, 46, 74, 65, 49, 39, 24, 16, 22, 13, 14, 7, 147*8f5875f3SDavid du Colombier 91, 44, 39, 38, 34, 63, 52, 45, 31, 52, 28, 19, 14, 8, 9, 3, 148*8f5875f3SDavid du Colombier 123, 60, 58, 53, 47, 43, 32, 22, 37, 24, 17, 12, 15, 10, 2, 1, 149*8f5875f3SDavid du Colombier 71, 37, 34, 30, 28, 20, 17, 26, 21, 16, 10, 6, 8, 6, 2, 0}; 150*8f5875f3SDavid du Colombier 151*8f5875f3SDavid du Colombier static const short t16HB[] = { 152*8f5875f3SDavid du Colombier 1, 5, 14, 44, 74, 63, 110, 93, 172, 149, 138, 242, 225, 195, 376, 17, 153*8f5875f3SDavid du Colombier 3, 4, 12, 20, 35, 62, 53, 47, 83, 75, 68, 119, 201, 107, 207, 9, 154*8f5875f3SDavid du Colombier 15, 13, 23, 38, 67, 58, 103, 90, 161, 72, 127, 117, 110, 209, 206, 16, 155*8f5875f3SDavid du Colombier 45, 21, 39, 69, 64,114, 99, 87, 158, 140, 252, 212, 199, 387, 365, 26, 156*8f5875f3SDavid du Colombier 75, 36, 68, 65,115,101, 179,164, 155, 264, 246, 226, 395, 382, 362, 9, 157*8f5875f3SDavid du Colombier 66, 30, 59, 56,102,185, 173,265, 142, 253, 232, 400, 388, 378, 445, 16, 158*8f5875f3SDavid du Colombier 111, 54, 52,100,184,178, 160,133, 257, 244, 228, 217, 385, 366, 715, 10, 159*8f5875f3SDavid du Colombier 98, 48, 91, 88,165,157, 148,261, 248, 407, 397, 372, 380, 889, 884, 8, 160*8f5875f3SDavid du Colombier 85, 84, 81,159,156,143, 260,249, 427, 401, 392, 383, 727, 713, 708, 7, 161*8f5875f3SDavid du Colombier 154, 76, 73,141,131,256, 245,426, 406, 394, 384, 735, 359, 710, 352, 11, 162*8f5875f3SDavid du Colombier 139, 129, 67,125,247,233, 229,219, 393, 743, 737, 720, 885, 882, 439, 4, 163*8f5875f3SDavid du Colombier 243, 120,118,115,227,223, 396,746, 742, 736, 721, 712, 706, 223, 436, 6, 164*8f5875f3SDavid du Colombier 202, 224,222,218,216,389, 386,381, 364, 888, 443, 707, 440, 437,1728, 4, 165*8f5875f3SDavid du Colombier 747, 211,210,208,370,379, 734,723, 714,1735, 883, 877, 876,3459, 865, 2, 166*8f5875f3SDavid du Colombier 377, 369,102,187,726,722, 358,711, 709, 866,1734, 871,3458, 870, 434, 0, 167*8f5875f3SDavid du Colombier 12, 10, 7, 11, 10, 17, 11, 9, 13, 12, 10, 7, 5, 3, 1, 3}; 168*8f5875f3SDavid du Colombier 169*8f5875f3SDavid du Colombier static const short t24HB[] = { 170*8f5875f3SDavid du Colombier 15, 13, 46, 80, 146, 262, 248, 434, 426, 669, 653, 649, 621, 517, 1032, 88, 171*8f5875f3SDavid du Colombier 14, 12, 21, 38, 71, 130, 122, 216, 209, 198, 327, 345, 319, 297, 279, 42, 172*8f5875f3SDavid du Colombier 47, 22, 41, 74, 68, 128, 120, 221, 207, 194, 182, 340, 315, 295, 541, 18, 173*8f5875f3SDavid du Colombier 81, 39, 75, 70, 134, 125, 116, 220, 204, 190, 178, 325, 311, 293, 271, 16, 174*8f5875f3SDavid du Colombier 147, 72, 69,135, 127, 118, 112, 210, 200, 188, 352, 323, 306, 285, 540, 14, 175*8f5875f3SDavid du Colombier 263, 66,129,126, 119, 114, 214, 202, 192, 180, 341, 317, 301, 281, 262, 12, 176*8f5875f3SDavid du Colombier 249,123,121,117, 113, 215, 206, 195, 185, 347, 330, 308, 291, 272, 520, 10, 177*8f5875f3SDavid du Colombier 435,115,111,109, 211, 203, 196, 187, 353, 332, 313, 298, 283, 531, 381, 17, 178*8f5875f3SDavid du Colombier 427,212,208,205, 201, 193, 186, 177, 169, 320, 303, 286, 268, 514, 377, 16, 179*8f5875f3SDavid du Colombier 335,199,197,191, 189, 181, 174, 333, 321, 305, 289, 275, 521, 379, 371, 11, 180*8f5875f3SDavid du Colombier 668,184,183,179, 175, 344, 331, 314, 304, 290, 277, 530, 383, 373, 366, 10, 181*8f5875f3SDavid du Colombier 652,346,171,168, 164, 318, 309, 299, 287, 276, 263, 513, 375, 368, 362, 6, 182*8f5875f3SDavid du Colombier 648,322,316,312, 307, 302, 292, 284, 269, 261, 512, 376, 370, 364, 359, 4, 183*8f5875f3SDavid du Colombier 620,300,296,294, 288, 282, 273, 266, 515, 380, 374, 369, 365, 361, 357, 2, 184*8f5875f3SDavid du Colombier 1033,280,278,274, 267, 264, 259, 382, 378, 372, 367, 363, 360, 358, 356, 0, 185*8f5875f3SDavid du Colombier 43, 20, 19, 17, 15, 13, 11, 9, 7, 6, 4, 7, 5, 3, 1, 3}; 186*8f5875f3SDavid du Colombier 187*8f5875f3SDavid du Colombier static const short t32HB[] = { 188*8f5875f3SDavid du Colombier 1 << 0, 5 << 1, 4 << 1, 5 << 2, 6 << 1, 5 << 2, 4 << 2, 4 << 3, 189*8f5875f3SDavid du Colombier 7 << 1, 3 << 2, 6 << 2, 0 << 3, 7 << 2, 2 << 3, 3 << 3, 1 << 4}; 190*8f5875f3SDavid du Colombier 191*8f5875f3SDavid du Colombier static const short t33HB[] = { 192*8f5875f3SDavid du Colombier 15 << 0, 14 << 1, 13 << 1, 12 << 2, 11 << 1, 10 << 2, 9 << 2, 8 << 3, 193*8f5875f3SDavid du Colombier 7 << 1, 6 << 2, 5 << 2, 4 << 3, 3 << 2, 2 << 3, 1 << 3, 0 << 4}; 194*8f5875f3SDavid du Colombier 195*8f5875f3SDavid du Colombier 196*8f5875f3SDavid du Colombier const char t1l[] = { 197*8f5875f3SDavid du Colombier 1, 4, 198*8f5875f3SDavid du Colombier 3, 5}; 199*8f5875f3SDavid du Colombier 200*8f5875f3SDavid du Colombier const char t2l[] = { 201*8f5875f3SDavid du Colombier 1, 4, 7, 202*8f5875f3SDavid du Colombier 4, 5, 7, 203*8f5875f3SDavid du Colombier 6, 7, 8}; 204*8f5875f3SDavid du Colombier 205*8f5875f3SDavid du Colombier const char t3l[] = { 206*8f5875f3SDavid du Colombier 2, 3, 7, 207*8f5875f3SDavid du Colombier 4, 4, 7, 208*8f5875f3SDavid du Colombier 6, 7, 8}; 209*8f5875f3SDavid du Colombier 210*8f5875f3SDavid du Colombier const char t5l[] = { 211*8f5875f3SDavid du Colombier 1, 4, 7, 8, 212*8f5875f3SDavid du Colombier 4, 5, 8, 9, 213*8f5875f3SDavid du Colombier 7, 8, 9, 10, 214*8f5875f3SDavid du Colombier 8, 8, 9, 10}; 215*8f5875f3SDavid du Colombier 216*8f5875f3SDavid du Colombier const char t6l[] = { 217*8f5875f3SDavid du Colombier 3, 4, 6, 8, 218*8f5875f3SDavid du Colombier 4, 4, 6, 7, 219*8f5875f3SDavid du Colombier 5, 6, 7, 8, 220*8f5875f3SDavid du Colombier 7, 7, 8, 9}; 221*8f5875f3SDavid du Colombier 222*8f5875f3SDavid du Colombier const char t7l[] = { 223*8f5875f3SDavid du Colombier 1, 4, 7, 9, 9, 10, 224*8f5875f3SDavid du Colombier 4, 6, 8, 9, 9, 10, 225*8f5875f3SDavid du Colombier 7, 7, 9, 10, 10, 11, 226*8f5875f3SDavid du Colombier 8, 9, 10, 11, 11, 11, 227*8f5875f3SDavid du Colombier 8, 9, 10, 11, 11, 12, 228*8f5875f3SDavid du Colombier 9, 10, 11, 12, 12, 12}; 229*8f5875f3SDavid du Colombier 230*8f5875f3SDavid du Colombier const char t8l[] = { 231*8f5875f3SDavid du Colombier 2, 4, 7, 9, 9, 10, 232*8f5875f3SDavid du Colombier 4, 4, 6, 10, 10, 10, 233*8f5875f3SDavid du Colombier 7, 6, 8, 10, 10, 11, 234*8f5875f3SDavid du Colombier 9, 10, 10, 11, 11, 12, 235*8f5875f3SDavid du Colombier 9, 9, 10, 11, 12, 12, 236*8f5875f3SDavid du Colombier 10, 10, 11, 11, 13, 13}; 237*8f5875f3SDavid du Colombier 238*8f5875f3SDavid du Colombier const char t9l[] = { 239*8f5875f3SDavid du Colombier 3, 4, 6, 7, 9, 10, 240*8f5875f3SDavid du Colombier 4, 5, 6, 7, 8, 10, 241*8f5875f3SDavid du Colombier 5, 6, 7, 8, 9, 10, 242*8f5875f3SDavid du Colombier 7, 7, 8, 9, 9, 10, 243*8f5875f3SDavid du Colombier 8, 8, 9, 9, 10, 11, 244*8f5875f3SDavid du Colombier 9, 9, 10, 10, 11, 11}; 245*8f5875f3SDavid du Colombier 246*8f5875f3SDavid du Colombier const char t10l[] = { 247*8f5875f3SDavid du Colombier 1, 4, 7, 9, 10, 10, 10, 11, 248*8f5875f3SDavid du Colombier 4, 6, 8, 9, 10, 11, 10, 10, 249*8f5875f3SDavid du Colombier 7, 8, 9, 10, 11, 12, 11, 11, 250*8f5875f3SDavid du Colombier 8, 9, 10, 11, 12, 12, 11, 12, 251*8f5875f3SDavid du Colombier 9, 10, 11, 12, 12, 12, 12, 12, 252*8f5875f3SDavid du Colombier 10, 11, 12, 12, 13, 13, 12, 13, 253*8f5875f3SDavid du Colombier 9, 10, 11, 12, 12, 12, 13, 13, 254*8f5875f3SDavid du Colombier 10, 10, 11, 12, 12, 13, 13, 13}; 255*8f5875f3SDavid du Colombier 256*8f5875f3SDavid du Colombier const char t11l[] = { 257*8f5875f3SDavid du Colombier 2, 4, 6, 8, 9, 10, 9, 10, 258*8f5875f3SDavid du Colombier 4, 5, 6, 8, 10, 10, 9, 10, 259*8f5875f3SDavid du Colombier 6, 7, 8, 9, 10, 11, 10, 10, 260*8f5875f3SDavid du Colombier 8, 8, 9, 11, 10, 12, 10, 11, 261*8f5875f3SDavid du Colombier 9, 10, 10, 11, 11, 12, 11, 12, 262*8f5875f3SDavid du Colombier 9, 10, 11, 12, 12, 13, 12, 13, 263*8f5875f3SDavid du Colombier 9, 9, 9, 10, 11, 12, 12, 12, 264*8f5875f3SDavid du Colombier 9, 9, 10, 11, 12, 12, 12, 12}; 265*8f5875f3SDavid du Colombier 266*8f5875f3SDavid du Colombier const char t12l[] = { 267*8f5875f3SDavid du Colombier 4, 4, 6, 8, 9, 10, 10, 10, 268*8f5875f3SDavid du Colombier 4, 5, 6, 7, 9, 9, 10, 10, 269*8f5875f3SDavid du Colombier 6, 6, 7, 8, 9, 10, 9, 10, 270*8f5875f3SDavid du Colombier 7, 7, 8, 8, 9, 10, 10, 10, 271*8f5875f3SDavid du Colombier 8, 8, 9, 9, 10, 10, 10, 11, 272*8f5875f3SDavid du Colombier 9, 9, 10, 10, 10, 11, 10, 11, 273*8f5875f3SDavid du Colombier 9, 9, 9, 10, 10, 11, 11, 12, 274*8f5875f3SDavid du Colombier 10, 10, 10, 11, 11, 11, 11, 12}; 275*8f5875f3SDavid du Colombier 276*8f5875f3SDavid du Colombier const char t13l[] = { 277*8f5875f3SDavid du Colombier 1, 5, 7, 8, 9, 10, 10, 11, 10, 11, 12, 12, 13, 13, 14, 14, 278*8f5875f3SDavid du Colombier 4, 6, 8, 9, 10, 10, 11, 11, 11, 11, 12, 12, 13, 14, 14, 14, 279*8f5875f3SDavid du Colombier 7, 8, 9, 10, 11, 11, 12, 12, 11, 12, 12, 13, 13, 14, 15, 15, 280*8f5875f3SDavid du Colombier 8, 9, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 15, 281*8f5875f3SDavid du Colombier 9, 9, 11, 11, 12, 12, 13, 13, 12, 13, 13, 14, 14, 15, 15, 16, 282*8f5875f3SDavid du Colombier 10, 10, 11, 12, 12, 12, 13, 13, 13, 13, 14, 13, 15, 15, 16, 16, 283*8f5875f3SDavid du Colombier 10, 11, 12, 12, 13, 13, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 284*8f5875f3SDavid du Colombier 11, 11, 12, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 18, 18, 285*8f5875f3SDavid du Colombier 10, 10, 11, 12, 12, 13, 13, 14, 14, 14, 14, 15, 15, 16, 17, 17, 286*8f5875f3SDavid du Colombier 11, 11, 12, 12, 13, 13, 13, 15, 14, 15, 15, 16, 16, 16, 18, 17, 287*8f5875f3SDavid du Colombier 11, 12, 12, 13, 13, 14, 14, 15, 14, 15, 16, 15, 16, 17, 18, 19, 288*8f5875f3SDavid du Colombier 12, 12, 12, 13, 14, 14, 14, 14, 15, 15, 15, 16, 17, 17, 17, 18, 289*8f5875f3SDavid du Colombier 12, 13, 13, 14, 14, 15, 14, 15, 16, 16, 17, 17, 17, 18, 18, 18, 290*8f5875f3SDavid du Colombier 13, 13, 14, 15, 15, 15, 16, 16, 16, 16, 16, 17, 18, 17, 18, 18, 291*8f5875f3SDavid du Colombier 14, 14, 14, 15, 15, 15, 17, 16, 16, 19, 17, 17, 17, 19, 18, 18, 292*8f5875f3SDavid du Colombier 13, 14, 15, 16, 16, 16, 17, 16, 17, 17, 18, 18, 21, 20, 21, 18}; 293*8f5875f3SDavid du Colombier 294*8f5875f3SDavid du Colombier const char t15l[] = { 295*8f5875f3SDavid du Colombier 3, 5, 6, 8, 8, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 14, 296*8f5875f3SDavid du Colombier 5, 5, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 13, 297*8f5875f3SDavid du Colombier 6, 7, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 13, 13, 13, 298*8f5875f3SDavid du Colombier 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 299*8f5875f3SDavid du Colombier 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 300*8f5875f3SDavid du Colombier 9, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 13, 13, 13, 14, 301*8f5875f3SDavid du Colombier 10, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 14, 14, 302*8f5875f3SDavid du Colombier 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 14, 303*8f5875f3SDavid du Colombier 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 14, 14, 14, 304*8f5875f3SDavid du Colombier 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 305*8f5875f3SDavid du Colombier 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 14, 306*8f5875f3SDavid du Colombier 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 15, 307*8f5875f3SDavid du Colombier 12, 12, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 14, 14, 15, 15, 308*8f5875f3SDavid du Colombier 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 309*8f5875f3SDavid du Colombier 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 14, 15, 310*8f5875f3SDavid du Colombier 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 15, 15}; 311*8f5875f3SDavid du Colombier 312*8f5875f3SDavid du Colombier const char t16_5l[] = { 313*8f5875f3SDavid du Colombier 1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 11, 314*8f5875f3SDavid du Colombier 4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 11, 315*8f5875f3SDavid du Colombier 7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 12, 316*8f5875f3SDavid du Colombier 9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 13, 317*8f5875f3SDavid du Colombier 10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 12, 318*8f5875f3SDavid du Colombier 10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 13, 319*8f5875f3SDavid du Colombier 11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 13, 320*8f5875f3SDavid du Colombier 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 13, 321*8f5875f3SDavid du Colombier 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 13, 322*8f5875f3SDavid du Colombier 12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 14, 323*8f5875f3SDavid du Colombier 12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 13, 324*8f5875f3SDavid du Colombier 13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 14, 325*8f5875f3SDavid du Colombier 13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 14, 326*8f5875f3SDavid du Colombier 15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 14, 327*8f5875f3SDavid du Colombier 14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 14, 328*8f5875f3SDavid du Colombier 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 12}; 329*8f5875f3SDavid du Colombier 330*8f5875f3SDavid du Colombier const char t16l[] = { 331*8f5875f3SDavid du Colombier 1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 10, 332*8f5875f3SDavid du Colombier 4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 10, 333*8f5875f3SDavid du Colombier 7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 11, 334*8f5875f3SDavid du Colombier 9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 12, 335*8f5875f3SDavid du Colombier 10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 11, 336*8f5875f3SDavid du Colombier 10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 12, 337*8f5875f3SDavid du Colombier 11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 12, 338*8f5875f3SDavid du Colombier 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 12, 339*8f5875f3SDavid du Colombier 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 12, 340*8f5875f3SDavid du Colombier 12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 13, 341*8f5875f3SDavid du Colombier 12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 12, 342*8f5875f3SDavid du Colombier 13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 13, 343*8f5875f3SDavid du Colombier 13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 13, 344*8f5875f3SDavid du Colombier 15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 13, 345*8f5875f3SDavid du Colombier 14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 13, 346*8f5875f3SDavid du Colombier 10, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10}; 347*8f5875f3SDavid du Colombier 348*8f5875f3SDavid du Colombier const char t24l[] = { 349*8f5875f3SDavid du Colombier 4, 5, 7, 8, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 13, 10, 350*8f5875f3SDavid du Colombier 5, 6, 7, 8, 9, 10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 10, 351*8f5875f3SDavid du Colombier 7, 7, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 9, 352*8f5875f3SDavid du Colombier 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 9, 353*8f5875f3SDavid du Colombier 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 12, 13, 9, 354*8f5875f3SDavid du Colombier 10, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 9, 355*8f5875f3SDavid du Colombier 10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 9, 356*8f5875f3SDavid du Colombier 11, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 10, 357*8f5875f3SDavid du Colombier 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 10, 358*8f5875f3SDavid du Colombier 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 10, 359*8f5875f3SDavid du Colombier 12, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10, 360*8f5875f3SDavid du Colombier 12, 12, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10, 361*8f5875f3SDavid du Colombier 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 10, 362*8f5875f3SDavid du Colombier 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10, 363*8f5875f3SDavid du Colombier 13, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 10, 364*8f5875f3SDavid du Colombier 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 6}; 365*8f5875f3SDavid du Colombier 366*8f5875f3SDavid du Colombier const char t32l[] = { 367*8f5875f3SDavid du Colombier 1+0, 4+1, 4+1, 5+2, 4+1, 6+2, 5+2, 6+3, 368*8f5875f3SDavid du Colombier 4+1, 5+2, 5+2, 6+3, 5+2, 6+3, 6+3, 6+4}; 369*8f5875f3SDavid du Colombier 370*8f5875f3SDavid du Colombier const char t33l[] = { 371*8f5875f3SDavid du Colombier 4+0, 4+1, 4+1, 4+2, 4+1, 4+2, 4+2, 4+3, 372*8f5875f3SDavid du Colombier 4+1, 4+2, 4+2, 4+3, 4+2, 4+3, 4+3, 4+4}; 373*8f5875f3SDavid du Colombier 374*8f5875f3SDavid du Colombier 375*8f5875f3SDavid du Colombier const struct huffcodetab ht[HTN] = 376*8f5875f3SDavid du Colombier { 377*8f5875f3SDavid du Colombier /* xlen, linmax, table, hlen */ 378*8f5875f3SDavid du Colombier { 0, 0,NULL,NULL}, 379*8f5875f3SDavid du Colombier { 2, 0,t1HB, t1l}, 380*8f5875f3SDavid du Colombier { 3, 0,t2HB, t2l}, 381*8f5875f3SDavid du Colombier { 3, 0,t3HB, t3l}, 382*8f5875f3SDavid du Colombier { 0, 0,NULL,NULL},/* Apparently not used */ 383*8f5875f3SDavid du Colombier { 4, 0,t5HB, t5l}, 384*8f5875f3SDavid du Colombier { 4, 0,t6HB, t6l}, 385*8f5875f3SDavid du Colombier { 6, 0,t7HB, t7l}, 386*8f5875f3SDavid du Colombier { 6, 0,t8HB, t8l}, 387*8f5875f3SDavid du Colombier { 6, 0,t9HB, t9l}, 388*8f5875f3SDavid du Colombier { 8, 0,t10HB, t10l}, 389*8f5875f3SDavid du Colombier { 8, 0,t11HB, t11l}, 390*8f5875f3SDavid du Colombier { 8, 0,t12HB, t12l}, 391*8f5875f3SDavid du Colombier {16, 0,t13HB, t13l}, 392*8f5875f3SDavid du Colombier { 0, 0,NULL, t16_5l},/* Apparently not used */ 393*8f5875f3SDavid du Colombier {16, 0,t15HB, t15l}, 394*8f5875f3SDavid du Colombier 395*8f5875f3SDavid du Colombier { 1, 1,t16HB, t16l}, 396*8f5875f3SDavid du Colombier { 2, 3,t16HB, t16l}, 397*8f5875f3SDavid du Colombier { 3, 7,t16HB, t16l}, 398*8f5875f3SDavid du Colombier { 4, 15,t16HB, t16l}, 399*8f5875f3SDavid du Colombier { 6, 63,t16HB, t16l}, 400*8f5875f3SDavid du Colombier { 8, 255,t16HB, t16l}, 401*8f5875f3SDavid du Colombier {10,1023,t16HB, t16l}, 402*8f5875f3SDavid du Colombier {13,8191,t16HB, t16l}, 403*8f5875f3SDavid du Colombier 404*8f5875f3SDavid du Colombier { 4, 15,t24HB, t24l}, 405*8f5875f3SDavid du Colombier { 5, 31,t24HB, t24l}, 406*8f5875f3SDavid du Colombier { 6, 63,t24HB, t24l}, 407*8f5875f3SDavid du Colombier { 7, 127,t24HB, t24l}, 408*8f5875f3SDavid du Colombier { 8, 255,t24HB, t24l}, 409*8f5875f3SDavid du Colombier { 9, 511,t24HB, t24l}, 410*8f5875f3SDavid du Colombier {11,2047,t24HB, t24l}, 411*8f5875f3SDavid du Colombier {13,8191,t24HB, t24l}, 412*8f5875f3SDavid du Colombier 413*8f5875f3SDavid du Colombier { 0, 0,t32HB, t32l}, 414*8f5875f3SDavid du Colombier { 0, 0,t33HB, t33l}, 415*8f5875f3SDavid du Colombier }; 416*8f5875f3SDavid du Colombier 417*8f5875f3SDavid du Colombier 418*8f5875f3SDavid du Colombier 419*8f5875f3SDavid du Colombier 420*8f5875f3SDavid du Colombier 421*8f5875f3SDavid du Colombier /* for (i = 0; i < 16*16; i++) { 422*8f5875f3SDavid du Colombier * largetbl[i] = ((ht[16].hlen[i]) << 16) + ht[24].hlen[i]; 423*8f5875f3SDavid du Colombier * } 424*8f5875f3SDavid du Colombier */ 425*8f5875f3SDavid du Colombier const unsigned int largetbl[16*16] = { 426*8f5875f3SDavid du Colombier 0x010004, 0x050005, 0x070007, 0x090008, 0x0a0009, 0x0a000a, 0x0b000a, 0x0b000b, 427*8f5875f3SDavid du Colombier 0x0c000b, 0x0c000c, 0x0c000c, 0x0d000c, 0x0d000c, 0x0d000c, 0x0e000d, 0x0a000a, 428*8f5875f3SDavid du Colombier 0x040005, 0x060006, 0x080007, 0x090008, 0x0a0009, 0x0b000a, 0x0b000a, 0x0b000b, 429*8f5875f3SDavid du Colombier 0x0c000b, 0x0c000b, 0x0c000c, 0x0d000c, 0x0e000c, 0x0d000c, 0x0e000c, 0x0a000a, 430*8f5875f3SDavid du Colombier 0x070007, 0x080007, 0x090008, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000b, 431*8f5875f3SDavid du Colombier 0x0d000b, 0x0c000b, 0x0d000b, 0x0d000c, 0x0d000c, 0x0e000c, 0x0e000d, 0x0b0009, 432*8f5875f3SDavid du Colombier 0x090008, 0x090008, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000a, 0x0c000b, 433*8f5875f3SDavid du Colombier 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0c0009, 434*8f5875f3SDavid du Colombier 0x0a0009, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000a, 0x0d000a, 0x0d000b, 435*8f5875f3SDavid du Colombier 0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000d, 0x0b0009, 436*8f5875f3SDavid du Colombier 0x0a000a, 0x0a0009, 0x0b000a, 0x0b000a, 0x0c000a, 0x0d000a, 0x0d000b, 0x0e000b, 437*8f5875f3SDavid du Colombier 0x0d000b, 0x0e000b, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x0c0009, 438*8f5875f3SDavid du Colombier 0x0b000a, 0x0b000a, 0x0b000a, 0x0c000a, 0x0d000a, 0x0d000b, 0x0d000b, 0x0d000b, 439*8f5875f3SDavid du Colombier 0x0e000b, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x10000d, 0x0c0009, 440*8f5875f3SDavid du Colombier 0x0b000b, 0x0b000a, 0x0c000a, 0x0c000a, 0x0d000b, 0x0d000b, 0x0d000b, 0x0e000b, 441*8f5875f3SDavid du Colombier 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x11000d, 0x11000d, 0x0c000a, 442*8f5875f3SDavid du Colombier 0x0b000b, 0x0c000b, 0x0c000b, 0x0d000b, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000b, 443*8f5875f3SDavid du Colombier 0x0f000b, 0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x10000d, 0x10000d, 0x0c000a, 444*8f5875f3SDavid du Colombier 0x0c000b, 0x0c000b, 0x0c000b, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000b, 0x0f000c, 445*8f5875f3SDavid du Colombier 0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x0f000d, 0x10000d, 0x0f000d, 0x0d000a, 446*8f5875f3SDavid du Colombier 0x0c000c, 0x0d000b, 0x0c000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0e000c, 447*8f5875f3SDavid du Colombier 0x0f000c, 0x10000c, 0x10000c, 0x10000d, 0x11000d, 0x11000d, 0x10000d, 0x0c000a, 448*8f5875f3SDavid du Colombier 0x0d000c, 0x0d000c, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0f000c, 0x10000c, 449*8f5875f3SDavid du Colombier 0x10000c, 0x10000c, 0x10000c, 0x10000d, 0x10000d, 0x0f000d, 0x10000d, 0x0d000a, 450*8f5875f3SDavid du Colombier 0x0d000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c, 451*8f5875f3SDavid du Colombier 0x0f000c, 0x11000c, 0x10000d, 0x10000d, 0x10000d, 0x10000d, 0x12000d, 0x0d000a, 452*8f5875f3SDavid du Colombier 0x0f000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x10000c, 0x10000c, 453*8f5875f3SDavid du Colombier 0x10000d, 0x12000d, 0x11000d, 0x11000d, 0x11000d, 0x13000d, 0x11000d, 0x0d000a, 454*8f5875f3SDavid du Colombier 0x0e000d, 0x0f000c, 0x0d000c, 0x0e000c, 0x10000c, 0x10000c, 0x0f000c, 0x10000d, 455*8f5875f3SDavid du Colombier 0x10000d, 0x11000d, 0x12000d, 0x11000d, 0x13000d, 0x11000d, 0x10000d, 0x0d000a, 456*8f5875f3SDavid du Colombier 0x0a0009, 0x0a0009, 0x0a0009, 0x0b0009, 0x0b0009, 0x0c0009, 0x0c0009, 0x0c0009, 457*8f5875f3SDavid du Colombier 0x0d0009, 0x0d0009, 0x0d0009, 0x0d000a, 0x0d000a, 0x0d000a, 0x0d000a, 0x0a0006 458*8f5875f3SDavid du Colombier }; 459*8f5875f3SDavid du Colombier 460*8f5875f3SDavid du Colombier /* for (i = 0; i < 3*3; i++) { 461*8f5875f3SDavid du Colombier * table23[i] = ((ht[2].hlen[i]) << 16) + ht[3].hlen[i]; 462*8f5875f3SDavid du Colombier * } 463*8f5875f3SDavid du Colombier */ 464*8f5875f3SDavid du Colombier const unsigned int table23[3*3] = { 465*8f5875f3SDavid du Colombier 0x010002, 0x040003, 0x070007, 466*8f5875f3SDavid du Colombier 0x040004, 0x050004, 0x070007, 467*8f5875f3SDavid du Colombier 0x060006, 0x070007, 0x080008 468*8f5875f3SDavid du Colombier }; 469*8f5875f3SDavid du Colombier 470*8f5875f3SDavid du Colombier /* for (i = 0; i < 4*4; i++) { 471*8f5875f3SDavid du Colombier * table56[i] = ((ht[5].hlen[i]) << 16) + ht[6].hlen[i]; 472*8f5875f3SDavid du Colombier * } 473*8f5875f3SDavid du Colombier */ 474*8f5875f3SDavid du Colombier const unsigned int table56[4*4] = { 475*8f5875f3SDavid du Colombier 0x010003, 0x040004, 0x070006, 0x080008, 0x040004, 0x050004, 0x080006, 0x090007, 476*8f5875f3SDavid du Colombier 0x070005, 0x080006, 0x090007, 0x0a0008, 0x080007, 0x080007, 0x090008, 0x0a0009 477*8f5875f3SDavid du Colombier }; 478*8f5875f3SDavid du Colombier 479*8f5875f3SDavid du Colombier 480*8f5875f3SDavid du Colombier 481*8f5875f3SDavid du Colombier /* 482*8f5875f3SDavid du Colombier * 0: MPEG-2 LSF 483*8f5875f3SDavid du Colombier * 1: MPEG-1 484*8f5875f3SDavid du Colombier * 2: MPEG-2.5 LSF FhG extention (1995-07-11 shn) 485*8f5875f3SDavid du Colombier */ 486*8f5875f3SDavid du Colombier 487*8f5875f3SDavid du Colombier typedef enum { 488*8f5875f3SDavid du Colombier MPEG_2 = 0, 489*8f5875f3SDavid du Colombier MPEG_1 = 1, 490*8f5875f3SDavid du Colombier MPEG_25 = 2 491*8f5875f3SDavid du Colombier } MPEG_t; 492*8f5875f3SDavid du Colombier 493*8f5875f3SDavid du Colombier const int bitrate_table [3] [16] = { 494*8f5875f3SDavid du Colombier { 0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, -1 }, 495*8f5875f3SDavid du Colombier { 0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, -1 }, 496*8f5875f3SDavid du Colombier { 0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, -1 }, 497*8f5875f3SDavid du Colombier }; 498*8f5875f3SDavid du Colombier 499*8f5875f3SDavid du Colombier const int samplerate_table [3] [4] = { 500*8f5875f3SDavid du Colombier { 22050, 24000, 16000, -1 }, 501*8f5875f3SDavid du Colombier { 44100, 48000, 32000, -1 }, 502*8f5875f3SDavid du Colombier { 11025, 12000, 8000, -1 }, 503*8f5875f3SDavid du Colombier }; 504*8f5875f3SDavid du Colombier 505*8f5875f3SDavid du Colombier const char* version_string [3] = { "2", "1", "2.5" }; 506*8f5875f3SDavid du Colombier 507*8f5875f3SDavid du Colombier const unsigned header_word [3] = { 0xFFF00000, 0xFFF80000, 0xFFE00000 }; 508*8f5875f3SDavid du Colombier 509*8f5875f3SDavid du Colombier /* end of tables.h */ 510