Blame libmp3lame/tables.c

Packit 47f805
/*
Packit 47f805
 *	MPEG layer 3 tables source file
Packit 47f805
 *
Packit 47f805
 *	Copyright (c) 1999 Albert L Faber
Packit 47f805
 *
Packit 47f805
 * This library is free software; you can redistribute it and/or
Packit 47f805
 * modify it under the terms of the GNU Library General Public
Packit 47f805
 * License as published by the Free Software Foundation; either
Packit 47f805
 * version 2 of the License, or (at your option) any later version.
Packit 47f805
 *
Packit 47f805
 * This library is distributed in the hope that it will be useful,
Packit 47f805
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 47f805
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
Packit 47f805
 * Library General Public License for more details.
Packit 47f805
 *
Packit 47f805
 * You should have received a copy of the GNU Library General Public
Packit 47f805
 * License along with this library; if not, write to the
Packit 47f805
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Packit 47f805
 * Boston, MA 02111-1307, USA.
Packit 47f805
 */
Packit 47f805
Packit 47f805
/* $Id: tables.c,v 1.29 2011/05/07 16:05:17 rbrito Exp $ */
Packit 47f805
Packit 47f805
#ifdef HAVE_CONFIG_H
Packit 47f805
# include <config.h>
Packit 47f805
#endif
Packit 47f805
Packit 47f805
#include "machine.h"
Packit 47f805
Packit 47f805
#include "lame.h"
Packit 47f805
#include "tables.h"
Packit 47f805
Packit 47f805
Packit 47f805
static const uint16_t t1HB[] = {
Packit 47f805
    1, 1,
Packit 47f805
    1, 0
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint16_t t2HB[] = {
Packit 47f805
    1, 2, 1,
Packit 47f805
    3, 1, 1,
Packit 47f805
    3, 2, 0
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint16_t t3HB[] = {
Packit 47f805
    3, 2, 1,
Packit 47f805
    1, 1, 1,
Packit 47f805
    3, 2, 0
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint16_t t5HB[] = {
Packit 47f805
    1, 2, 6, 5,
Packit 47f805
    3, 1, 4, 4,
Packit 47f805
    7, 5, 7, 1,
Packit 47f805
    6, 1, 1, 0
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint16_t t6HB[] = {
Packit 47f805
    7, 3, 5, 1,
Packit 47f805
    6, 2, 3, 2,
Packit 47f805
    5, 4, 4, 1,
Packit 47f805
    3, 3, 2, 0
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint16_t t7HB[] = {
Packit 47f805
    1, 2, 10, 19, 16, 10,
Packit 47f805
    3, 3, 7, 10, 5, 3,
Packit 47f805
    11, 4, 13, 17, 8, 4,
Packit 47f805
    12, 11, 18, 15, 11, 2,
Packit 47f805
    7, 6, 9, 14, 3, 1,
Packit 47f805
    6, 4, 5, 3, 2, 0
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint16_t t8HB[] = {
Packit 47f805
    3, 4, 6, 18, 12, 5,
Packit 47f805
    5, 1, 2, 16, 9, 3,
Packit 47f805
    7, 3, 5, 14, 7, 3,
Packit 47f805
    19, 17, 15, 13, 10, 4,
Packit 47f805
    13, 5, 8, 11, 5, 1,
Packit 47f805
    12, 4, 4, 1, 1, 0
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint16_t t9HB[] = {
Packit 47f805
    7, 5, 9, 14, 15, 7,
Packit 47f805
    6, 4, 5, 5, 6, 7,
Packit 47f805
    7, 6, 8, 8, 8, 5,
Packit 47f805
    15, 6, 9, 10, 5, 1,
Packit 47f805
    11, 7, 9, 6, 4, 1,
Packit 47f805
    14, 4, 6, 2, 6, 0
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint16_t t10HB[] = {
Packit 47f805
    1, 2, 10, 23, 35, 30, 12, 17,
Packit 47f805
    3, 3, 8, 12, 18, 21, 12, 7,
Packit 47f805
    11, 9, 15, 21, 32, 40, 19, 6,
Packit 47f805
    14, 13, 22, 34, 46, 23, 18, 7,
Packit 47f805
    20, 19, 33, 47, 27, 22, 9, 3,
Packit 47f805
    31, 22, 41, 26, 21, 20, 5, 3,
Packit 47f805
    14, 13, 10, 11, 16, 6, 5, 1,
Packit 47f805
    9, 8, 7, 8, 4, 4, 2, 0
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint16_t t11HB[] = {
Packit 47f805
    3, 4, 10, 24, 34, 33, 21, 15,
Packit 47f805
    5, 3, 4, 10, 32, 17, 11, 10,
Packit 47f805
    11, 7, 13, 18, 30, 31, 20, 5,
Packit 47f805
    25, 11, 19, 59, 27, 18, 12, 5,
Packit 47f805
    35, 33, 31, 58, 30, 16, 7, 5,
Packit 47f805
    28, 26, 32, 19, 17, 15, 8, 14,
Packit 47f805
    14, 12, 9, 13, 14, 9, 4, 1,
Packit 47f805
    11, 4, 6, 6, 6, 3, 2, 0
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint16_t t12HB[] = {
Packit 47f805
    9, 6, 16, 33, 41, 39, 38, 26,
Packit 47f805
    7, 5, 6, 9, 23, 16, 26, 11,
Packit 47f805
    17, 7, 11, 14, 21, 30, 10, 7,
Packit 47f805
    17, 10, 15, 12, 18, 28, 14, 5,
Packit 47f805
    32, 13, 22, 19, 18, 16, 9, 5,
Packit 47f805
    40, 17, 31, 29, 17, 13, 4, 2,
Packit 47f805
    27, 12, 11, 15, 10, 7, 4, 1,
Packit 47f805
    27, 12, 8, 12, 6, 3, 1, 0
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint16_t t13HB[] = {
Packit 47f805
    1, 5, 14, 21, 34, 51, 46, 71, 42, 52, 68, 52, 67, 44, 43, 19,
Packit 47f805
    3, 4, 12, 19, 31, 26, 44, 33, 31, 24, 32, 24, 31, 35, 22, 14,
Packit 47f805
    15, 13, 23, 36, 59, 49, 77, 65, 29, 40, 30, 40, 27, 33, 42, 16,
Packit 47f805
    22, 20, 37, 61, 56, 79, 73, 64, 43, 76, 56, 37, 26, 31, 25, 14,
Packit 47f805
    35, 16, 60, 57, 97, 75, 114, 91, 54, 73, 55, 41, 48, 53, 23, 24,
Packit 47f805
    58, 27, 50, 96, 76, 70, 93, 84, 77, 58, 79, 29, 74, 49, 41, 17,
Packit 47f805
    47, 45, 78, 74, 115, 94, 90, 79, 69, 83, 71, 50, 59, 38, 36, 15,
Packit 47f805
    72, 34, 56, 95, 92, 85, 91, 90, 86, 73, 77, 65, 51, 44, 43, 42,
Packit 47f805
    43, 20, 30, 44, 55, 78, 72, 87, 78, 61, 46, 54, 37, 30, 20, 16,
Packit 47f805
    53, 25, 41, 37, 44, 59, 54, 81, 66, 76, 57, 54, 37, 18, 39, 11,
Packit 47f805
    35, 33, 31, 57, 42, 82, 72, 80, 47, 58, 55, 21, 22, 26, 38, 22,
Packit 47f805
    53, 25, 23, 38, 70, 60, 51, 36, 55, 26, 34, 23, 27, 14, 9, 7,
Packit 47f805
    34, 32, 28, 39, 49, 75, 30, 52, 48, 40, 52, 28, 18, 17, 9, 5,
Packit 47f805
    45, 21, 34, 64, 56, 50, 49, 45, 31, 19, 12, 15, 10, 7, 6, 3,
Packit 47f805
    48, 23, 20, 39, 36, 35, 53, 21, 16, 23, 13, 10, 6, 1, 4, 2,
Packit 47f805
    16, 15, 17, 27, 25, 20, 29, 11, 17, 12, 16, 8, 1, 1, 0, 1
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint16_t t15HB[] = {
Packit 47f805
    7, 12, 18, 53, 47, 76, 124, 108, 89, 123, 108, 119, 107, 81, 122, 63,
Packit 47f805
    13, 5, 16, 27, 46, 36, 61, 51, 42, 70, 52, 83, 65, 41, 59, 36,
Packit 47f805
    19, 17, 15, 24, 41, 34, 59, 48, 40, 64, 50, 78, 62, 80, 56, 33,
Packit 47f805
    29, 28, 25, 43, 39, 63, 55, 93, 76, 59, 93, 72, 54, 75, 50, 29,
Packit 47f805
    52, 22, 42, 40, 67, 57, 95, 79, 72, 57, 89, 69, 49, 66, 46, 27,
Packit 47f805
    77, 37, 35, 66, 58, 52, 91, 74, 62, 48, 79, 63, 90, 62, 40, 38,
Packit 47f805
    125, 32, 60, 56, 50, 92, 78, 65, 55, 87, 71, 51, 73, 51, 70, 30,
Packit 47f805
    109, 53, 49, 94, 88, 75, 66, 122, 91, 73, 56, 42, 64, 44, 21, 25,
Packit 47f805
    90, 43, 41, 77, 73, 63, 56, 92, 77, 66, 47, 67, 48, 53, 36, 20,
Packit 47f805
    71, 34, 67, 60, 58, 49, 88, 76, 67, 106, 71, 54, 38, 39, 23, 15,
Packit 47f805
    109, 53, 51, 47, 90, 82, 58, 57, 48, 72, 57, 41, 23, 27, 62, 9,
Packit 47f805
    86, 42, 40, 37, 70, 64, 52, 43, 70, 55, 42, 25, 29, 18, 11, 11,
Packit 47f805
    118, 68, 30, 55, 50, 46, 74, 65, 49, 39, 24, 16, 22, 13, 14, 7,
Packit 47f805
    91, 44, 39, 38, 34, 63, 52, 45, 31, 52, 28, 19, 14, 8, 9, 3,
Packit 47f805
    123, 60, 58, 53, 47, 43, 32, 22, 37, 24, 17, 12, 15, 10, 2, 1,
Packit 47f805
    71, 37, 34, 30, 28, 20, 17, 26, 21, 16, 10, 6, 8, 6, 2, 0
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint16_t t16HB[] = {
Packit 47f805
    1, 5, 14, 44, 74, 63, 110, 93, 172, 149, 138, 242, 225, 195, 376, 17,
Packit 47f805
    3, 4, 12, 20, 35, 62, 53, 47, 83, 75, 68, 119, 201, 107, 207, 9,
Packit 47f805
    15, 13, 23, 38, 67, 58, 103, 90, 161, 72, 127, 117, 110, 209, 206, 16,
Packit 47f805
    45, 21, 39, 69, 64, 114, 99, 87, 158, 140, 252, 212, 199, 387, 365, 26,
Packit 47f805
    75, 36, 68, 65, 115, 101, 179, 164, 155, 264, 246, 226, 395, 382, 362, 9,
Packit 47f805
    66, 30, 59, 56, 102, 185, 173, 265, 142, 253, 232, 400, 388, 378, 445, 16,
Packit 47f805
    111, 54, 52, 100, 184, 178, 160, 133, 257, 244, 228, 217, 385, 366, 715, 10,
Packit 47f805
    98, 48, 91, 88, 165, 157, 148, 261, 248, 407, 397, 372, 380, 889, 884, 8,
Packit 47f805
    85, 84, 81, 159, 156, 143, 260, 249, 427, 401, 392, 383, 727, 713, 708, 7,
Packit 47f805
    154, 76, 73, 141, 131, 256, 245, 426, 406, 394, 384, 735, 359, 710, 352, 11,
Packit 47f805
    139, 129, 67, 125, 247, 233, 229, 219, 393, 743, 737, 720, 885, 882, 439, 4,
Packit 47f805
    243, 120, 118, 115, 227, 223, 396, 746, 742, 736, 721, 712, 706, 223, 436, 6,
Packit 47f805
    202, 224, 222, 218, 216, 389, 386, 381, 364, 888, 443, 707, 440, 437, 1728, 4,
Packit 47f805
    747, 211, 210, 208, 370, 379, 734, 723, 714, 1735, 883, 877, 876, 3459, 865, 2,
Packit 47f805
    377, 369, 102, 187, 726, 722, 358, 711, 709, 866, 1734, 871, 3458, 870, 434, 0,
Packit 47f805
    12, 10, 7, 11, 10, 17, 11, 9, 13, 12, 10, 7, 5, 3, 1, 3
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint16_t t24HB[] = {
Packit 47f805
    15, 13, 46, 80, 146, 262, 248, 434, 426, 669, 653, 649, 621, 517, 1032, 88,
Packit 47f805
    14, 12, 21, 38, 71, 130, 122, 216, 209, 198, 327, 345, 319, 297, 279, 42,
Packit 47f805
    47, 22, 41, 74, 68, 128, 120, 221, 207, 194, 182, 340, 315, 295, 541, 18,
Packit 47f805
    81, 39, 75, 70, 134, 125, 116, 220, 204, 190, 178, 325, 311, 293, 271, 16,
Packit 47f805
    147, 72, 69, 135, 127, 118, 112, 210, 200, 188, 352, 323, 306, 285, 540, 14,
Packit 47f805
    263, 66, 129, 126, 119, 114, 214, 202, 192, 180, 341, 317, 301, 281, 262, 12,
Packit 47f805
    249, 123, 121, 117, 113, 215, 206, 195, 185, 347, 330, 308, 291, 272, 520, 10,
Packit 47f805
    435, 115, 111, 109, 211, 203, 196, 187, 353, 332, 313, 298, 283, 531, 381, 17,
Packit 47f805
    427, 212, 208, 205, 201, 193, 186, 177, 169, 320, 303, 286, 268, 514, 377, 16,
Packit 47f805
    335, 199, 197, 191, 189, 181, 174, 333, 321, 305, 289, 275, 521, 379, 371, 11,
Packit 47f805
    668, 184, 183, 179, 175, 344, 331, 314, 304, 290, 277, 530, 383, 373, 366, 10,
Packit 47f805
    652, 346, 171, 168, 164, 318, 309, 299, 287, 276, 263, 513, 375, 368, 362, 6,
Packit 47f805
    648, 322, 316, 312, 307, 302, 292, 284, 269, 261, 512, 376, 370, 364, 359, 4,
Packit 47f805
    620, 300, 296, 294, 288, 282, 273, 266, 515, 380, 374, 369, 365, 361, 357, 2,
Packit 47f805
    1033, 280, 278, 274, 267, 264, 259, 382, 378, 372, 367, 363, 360, 358, 356, 0,
Packit 47f805
    43, 20, 19, 17, 15, 13, 11, 9, 7, 6, 4, 7, 5, 3, 1, 3
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint16_t t32HB[] = {
Packit 47f805
    1 << 0, 5 << 1, 4 << 1, 5 << 2, 6 << 1, 5 << 2, 4 << 2, 4 << 3,
Packit 47f805
    7 << 1, 3 << 2, 6 << 2, 0 << 3, 7 << 2, 2 << 3, 3 << 3, 1 << 4
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint16_t t33HB[] = {
Packit 47f805
    15 << 0, 14 << 1, 13 << 1, 12 << 2, 11 << 1, 10 << 2, 9 << 2, 8 << 3,
Packit 47f805
    7 << 1, 6 << 2, 5 << 2, 4 << 3, 3 << 2, 2 << 3, 1 << 3, 0 << 4
Packit 47f805
};
Packit 47f805
Packit 47f805
Packit 47f805
const uint8_t t1l[] = {
Packit 47f805
    1, 4,
Packit 47f805
    3, 5
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint8_t t2l[] = {
Packit 47f805
    1, 4, 7,
Packit 47f805
    4, 5, 7,
Packit 47f805
    6, 7, 8
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint8_t t3l[] = {
Packit 47f805
    2, 3, 7,
Packit 47f805
    4, 4, 7,
Packit 47f805
    6, 7, 8
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint8_t t5l[] = {
Packit 47f805
    1, 4, 7, 8,
Packit 47f805
    4, 5, 8, 9,
Packit 47f805
    7, 8, 9, 10,
Packit 47f805
    8, 8, 9, 10
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint8_t t6l[] = {
Packit 47f805
    3, 4, 6, 8,
Packit 47f805
    4, 4, 6, 7,
Packit 47f805
    5, 6, 7, 8,
Packit 47f805
    7, 7, 8, 9
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint8_t t7l[] = {
Packit 47f805
    1, 4, 7, 9, 9, 10,
Packit 47f805
    4, 6, 8, 9, 9, 10,
Packit 47f805
    7, 7, 9, 10, 10, 11,
Packit 47f805
    8, 9, 10, 11, 11, 11,
Packit 47f805
    8, 9, 10, 11, 11, 12,
Packit 47f805
    9, 10, 11, 12, 12, 12
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint8_t t8l[] = {
Packit 47f805
    2, 4, 7, 9, 9, 10,
Packit 47f805
    4, 4, 6, 10, 10, 10,
Packit 47f805
    7, 6, 8, 10, 10, 11,
Packit 47f805
    9, 10, 10, 11, 11, 12,
Packit 47f805
    9, 9, 10, 11, 12, 12,
Packit 47f805
    10, 10, 11, 11, 13, 13
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint8_t t9l[] = {
Packit 47f805
    3, 4, 6, 7, 9, 10,
Packit 47f805
    4, 5, 6, 7, 8, 10,
Packit 47f805
    5, 6, 7, 8, 9, 10,
Packit 47f805
    7, 7, 8, 9, 9, 10,
Packit 47f805
    8, 8, 9, 9, 10, 11,
Packit 47f805
    9, 9, 10, 10, 11, 11
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint8_t t10l[] = {
Packit 47f805
    1, 4, 7, 9, 10, 10, 10, 11,
Packit 47f805
    4, 6, 8, 9, 10, 11, 10, 10,
Packit 47f805
    7, 8, 9, 10, 11, 12, 11, 11,
Packit 47f805
    8, 9, 10, 11, 12, 12, 11, 12,
Packit 47f805
    9, 10, 11, 12, 12, 12, 12, 12,
Packit 47f805
    10, 11, 12, 12, 13, 13, 12, 13,
Packit 47f805
    9, 10, 11, 12, 12, 12, 13, 13,
Packit 47f805
    10, 10, 11, 12, 12, 13, 13, 13
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint8_t t11l[] = {
Packit 47f805
    2, 4, 6, 8, 9, 10, 9, 10,
Packit 47f805
    4, 5, 6, 8, 10, 10, 9, 10,
Packit 47f805
    6, 7, 8, 9, 10, 11, 10, 10,
Packit 47f805
    8, 8, 9, 11, 10, 12, 10, 11,
Packit 47f805
    9, 10, 10, 11, 11, 12, 11, 12,
Packit 47f805
    9, 10, 11, 12, 12, 13, 12, 13,
Packit 47f805
    9, 9, 9, 10, 11, 12, 12, 12,
Packit 47f805
    9, 9, 10, 11, 12, 12, 12, 12
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint8_t t12l[] = {
Packit 47f805
    4, 4, 6, 8, 9, 10, 10, 10,
Packit 47f805
    4, 5, 6, 7, 9, 9, 10, 10,
Packit 47f805
    6, 6, 7, 8, 9, 10, 9, 10,
Packit 47f805
    7, 7, 8, 8, 9, 10, 10, 10,
Packit 47f805
    8, 8, 9, 9, 10, 10, 10, 11,
Packit 47f805
    9, 9, 10, 10, 10, 11, 10, 11,
Packit 47f805
    9, 9, 9, 10, 10, 11, 11, 12,
Packit 47f805
    10, 10, 10, 11, 11, 11, 11, 12
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint8_t t13l[] = {
Packit 47f805
    1, 5, 7, 8, 9, 10, 10, 11, 10, 11, 12, 12, 13, 13, 14, 14,
Packit 47f805
    4, 6, 8, 9, 10, 10, 11, 11, 11, 11, 12, 12, 13, 14, 14, 14,
Packit 47f805
    7, 8, 9, 10, 11, 11, 12, 12, 11, 12, 12, 13, 13, 14, 15, 15,
Packit 47f805
    8, 9, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 15,
Packit 47f805
    9, 9, 11, 11, 12, 12, 13, 13, 12, 13, 13, 14, 14, 15, 15, 16,
Packit 47f805
    10, 10, 11, 12, 12, 12, 13, 13, 13, 13, 14, 13, 15, 15, 16, 16,
Packit 47f805
    10, 11, 12, 12, 13, 13, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16,
Packit 47f805
    11, 11, 12, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 18, 18,
Packit 47f805
    10, 10, 11, 12, 12, 13, 13, 14, 14, 14, 14, 15, 15, 16, 17, 17,
Packit 47f805
    11, 11, 12, 12, 13, 13, 13, 15, 14, 15, 15, 16, 16, 16, 18, 17,
Packit 47f805
    11, 12, 12, 13, 13, 14, 14, 15, 14, 15, 16, 15, 16, 17, 18, 19,
Packit 47f805
    12, 12, 12, 13, 14, 14, 14, 14, 15, 15, 15, 16, 17, 17, 17, 18,
Packit 47f805
    12, 13, 13, 14, 14, 15, 14, 15, 16, 16, 17, 17, 17, 18, 18, 18,
Packit 47f805
    13, 13, 14, 15, 15, 15, 16, 16, 16, 16, 16, 17, 18, 17, 18, 18,
Packit 47f805
    14, 14, 14, 15, 15, 15, 17, 16, 16, 19, 17, 17, 17, 19, 18, 18,
Packit 47f805
    13, 14, 15, 16, 16, 16, 17, 16, 17, 17, 18, 18, 21, 20, 21, 18
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint8_t t15l[] = {
Packit 47f805
    3, 5, 6, 8, 8, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 14,
Packit 47f805
    5, 5, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 13,
Packit 47f805
    6, 7, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 13, 13, 13,
Packit 47f805
    7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13,
Packit 47f805
    8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13,
Packit 47f805
    9, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 13, 13, 13, 14,
Packit 47f805
    10, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 14, 14,
Packit 47f805
    10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 14,
Packit 47f805
    10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 14, 14, 14,
Packit 47f805
    10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14,
Packit 47f805
    11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 14,
Packit 47f805
    11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 15,
Packit 47f805
    12, 12, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 14, 14, 15, 15,
Packit 47f805
    12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15,
Packit 47f805
    13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 14, 15,
Packit 47f805
    13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 15, 15
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint8_t t16_5l[] = {
Packit 47f805
    1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 11,
Packit 47f805
    4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 11,
Packit 47f805
    7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 12,
Packit 47f805
    9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 13,
Packit 47f805
    10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 12,
Packit 47f805
    10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 13,
Packit 47f805
    11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 13,
Packit 47f805
    11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 13,
Packit 47f805
    11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 13,
Packit 47f805
    12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 14,
Packit 47f805
    12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 13,
Packit 47f805
    13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 14,
Packit 47f805
    13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 14,
Packit 47f805
    15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 14,
Packit 47f805
    14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 14,
Packit 47f805
    11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 12
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint8_t t16l[] = {
Packit 47f805
    1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 10,
Packit 47f805
    4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 10,
Packit 47f805
    7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 11,
Packit 47f805
    9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 12,
Packit 47f805
    10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 11,
Packit 47f805
    10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 12,
Packit 47f805
    11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 12,
Packit 47f805
    11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 12,
Packit 47f805
    11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 12,
Packit 47f805
    12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 13,
Packit 47f805
    12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 12,
Packit 47f805
    13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 13,
Packit 47f805
    13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 13,
Packit 47f805
    15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 13,
Packit 47f805
    14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 13,
Packit 47f805
    10, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10
Packit 47f805
};
Packit 47f805
Packit 47f805
static const uint8_t t24l[] = {
Packit 47f805
    4, 5, 7, 8, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 13, 10,
Packit 47f805
    5, 6, 7, 8, 9, 10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 10,
Packit 47f805
    7, 7, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 9,
Packit 47f805
    8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 9,
Packit 47f805
    9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 12, 13, 9,
Packit 47f805
    10, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 9,
Packit 47f805
    10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 9,
Packit 47f805
    11, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 10,
Packit 47f805
    11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 10,
Packit 47f805
    11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 10,
Packit 47f805
    12, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10,
Packit 47f805
    12, 12, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10,
Packit 47f805
    12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 10,
Packit 47f805
    12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10,
Packit 47f805
    13, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 10,
Packit 47f805
    9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 6
Packit 47f805
};
Packit 47f805
Packit 47f805
const uint8_t t32l[] = {
Packit 47f805
    1 + 0, 4 + 1, 4 + 1, 5 + 2, 4 + 1, 6 + 2, 5 + 2, 6 + 3,
Packit 47f805
    4 + 1, 5 + 2, 5 + 2, 6 + 3, 5 + 2, 6 + 3, 6 + 3, 6 + 4
Packit 47f805
};
Packit 47f805
Packit 47f805
const uint8_t t33l[] = {
Packit 47f805
    4 + 0, 4 + 1, 4 + 1, 4 + 2, 4 + 1, 4 + 2, 4 + 2, 4 + 3,
Packit 47f805
    4 + 1, 4 + 2, 4 + 2, 4 + 3, 4 + 2, 4 + 3, 4 + 3, 4 + 4
Packit 47f805
};
Packit 47f805
Packit 47f805
Packit 47f805
const struct huffcodetab ht[HTN] = {
Packit 47f805
    /* xlen, linmax, table, hlen */
Packit 47f805
    {0, 0, NULL, NULL},
Packit 47f805
    {2, 0, t1HB, t1l},
Packit 47f805
    {3, 0, t2HB, t2l},
Packit 47f805
    {3, 0, t3HB, t3l},
Packit 47f805
    {0, 0, NULL, NULL}, /* Apparently not used */
Packit 47f805
    {4, 0, t5HB, t5l},
Packit 47f805
    {4, 0, t6HB, t6l},
Packit 47f805
    {6, 0, t7HB, t7l},
Packit 47f805
    {6, 0, t8HB, t8l},
Packit 47f805
    {6, 0, t9HB, t9l},
Packit 47f805
    {8, 0, t10HB, t10l},
Packit 47f805
    {8, 0, t11HB, t11l},
Packit 47f805
    {8, 0, t12HB, t12l},
Packit 47f805
    {16, 0, t13HB, t13l},
Packit 47f805
    {0, 0, NULL, t16_5l}, /* Apparently not used */
Packit 47f805
    {16, 0, t15HB, t15l},
Packit 47f805
Packit 47f805
    {1, 1, t16HB, t16l},
Packit 47f805
    {2, 3, t16HB, t16l},
Packit 47f805
    {3, 7, t16HB, t16l},
Packit 47f805
    {4, 15, t16HB, t16l},
Packit 47f805
    {6, 63, t16HB, t16l},
Packit 47f805
    {8, 255, t16HB, t16l},
Packit 47f805
    {10, 1023, t16HB, t16l},
Packit 47f805
    {13, 8191, t16HB, t16l},
Packit 47f805
Packit 47f805
    {4, 15, t24HB, t24l},
Packit 47f805
    {5, 31, t24HB, t24l},
Packit 47f805
    {6, 63, t24HB, t24l},
Packit 47f805
    {7, 127, t24HB, t24l},
Packit 47f805
    {8, 255, t24HB, t24l},
Packit 47f805
    {9, 511, t24HB, t24l},
Packit 47f805
    {11, 2047, t24HB, t24l},
Packit 47f805
    {13, 8191, t24HB, t24l},
Packit 47f805
Packit 47f805
    {0, 0, t32HB, t32l},
Packit 47f805
    {0, 0, t33HB, t33l},
Packit 47f805
};
Packit 47f805
Packit 47f805
Packit 47f805
Packit 47f805
Packit 47f805
Packit 47f805
/*  for (i = 0; i < 16*16; i++) {
Packit 47f805
 *      largetbl[i] = ((ht[16].hlen[i]) << 16) + ht[24].hlen[i];
Packit 47f805
 *  }
Packit 47f805
 */
Packit 47f805
const uint32_t largetbl[16 * 16] = {
Packit 47f805
    0x010004, 0x050005, 0x070007, 0x090008, 0x0a0009, 0x0a000a, 0x0b000a, 0x0b000b,
Packit 47f805
    0x0c000b, 0x0c000c, 0x0c000c, 0x0d000c, 0x0d000c, 0x0d000c, 0x0e000d, 0x0a000a,
Packit 47f805
    0x040005, 0x060006, 0x080007, 0x090008, 0x0a0009, 0x0b000a, 0x0b000a, 0x0b000b,
Packit 47f805
    0x0c000b, 0x0c000b, 0x0c000c, 0x0d000c, 0x0e000c, 0x0d000c, 0x0e000c, 0x0a000a,
Packit 47f805
    0x070007, 0x080007, 0x090008, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000b,
Packit 47f805
    0x0d000b, 0x0c000b, 0x0d000b, 0x0d000c, 0x0d000c, 0x0e000c, 0x0e000d, 0x0b0009,
Packit 47f805
    0x090008, 0x090008, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000a, 0x0c000b,
Packit 47f805
    0x0d000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0c0009,
Packit 47f805
    0x0a0009, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000a, 0x0d000a, 0x0d000b,
Packit 47f805
    0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000d, 0x0b0009,
Packit 47f805
    0x0a000a, 0x0a0009, 0x0b000a, 0x0b000a, 0x0c000a, 0x0d000a, 0x0d000b, 0x0e000b,
Packit 47f805
    0x0d000b, 0x0e000b, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x0c0009,
Packit 47f805
    0x0b000a, 0x0b000a, 0x0b000a, 0x0c000a, 0x0d000a, 0x0d000b, 0x0d000b, 0x0d000b,
Packit 47f805
    0x0e000b, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x10000d, 0x0c0009,
Packit 47f805
    0x0b000b, 0x0b000a, 0x0c000a, 0x0c000a, 0x0d000b, 0x0d000b, 0x0d000b, 0x0e000b,
Packit 47f805
    0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x11000d, 0x11000d, 0x0c000a,
Packit 47f805
    0x0b000b, 0x0c000b, 0x0c000b, 0x0d000b, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000b,
Packit 47f805
    0x0f000b, 0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x10000d, 0x10000d, 0x0c000a,
Packit 47f805
    0x0c000b, 0x0c000b, 0x0c000b, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000b, 0x0f000c,
Packit 47f805
    0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x0f000d, 0x10000d, 0x0f000d, 0x0d000a,
Packit 47f805
    0x0c000c, 0x0d000b, 0x0c000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0e000c,
Packit 47f805
    0x0f000c, 0x10000c, 0x10000c, 0x10000d, 0x11000d, 0x11000d, 0x10000d, 0x0c000a,
Packit 47f805
    0x0d000c, 0x0d000c, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0f000c, 0x10000c,
Packit 47f805
    0x10000c, 0x10000c, 0x10000c, 0x10000d, 0x10000d, 0x0f000d, 0x10000d, 0x0d000a,
Packit 47f805
    0x0d000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c,
Packit 47f805
    0x0f000c, 0x11000c, 0x10000d, 0x10000d, 0x10000d, 0x10000d, 0x12000d, 0x0d000a,
Packit 47f805
    0x0f000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x10000c, 0x10000c,
Packit 47f805
    0x10000d, 0x12000d, 0x11000d, 0x11000d, 0x11000d, 0x13000d, 0x11000d, 0x0d000a,
Packit 47f805
    0x0e000d, 0x0f000c, 0x0d000c, 0x0e000c, 0x10000c, 0x10000c, 0x0f000c, 0x10000d,
Packit 47f805
    0x10000d, 0x11000d, 0x12000d, 0x11000d, 0x13000d, 0x11000d, 0x10000d, 0x0d000a,
Packit 47f805
    0x0a0009, 0x0a0009, 0x0a0009, 0x0b0009, 0x0b0009, 0x0c0009, 0x0c0009, 0x0c0009,
Packit 47f805
    0x0d0009, 0x0d0009, 0x0d0009, 0x0d000a, 0x0d000a, 0x0d000a, 0x0d000a, 0x0a0006
Packit 47f805
};
Packit 47f805
Packit 47f805
/*  for (i = 0; i < 3*3; i++) {
Packit 47f805
 *      table23[i] = ((ht[2].hlen[i]) << 16) + ht[3].hlen[i];
Packit 47f805
 *  }
Packit 47f805
 */
Packit 47f805
const uint32_t table23[3 * 3] = {
Packit 47f805
    0x010002, 0x040003, 0x070007,
Packit 47f805
    0x040004, 0x050004, 0x070007,
Packit 47f805
    0x060006, 0x070007, 0x080008
Packit 47f805
};
Packit 47f805
Packit 47f805
/*   for (i = 0; i < 4*4; i++) {
Packit 47f805
 *       table56[i] = ((ht[5].hlen[i]) << 16) + ht[6].hlen[i];
Packit 47f805
 *   }
Packit 47f805
 */
Packit 47f805
const uint32_t table56[4 * 4] = {
Packit 47f805
    0x010003, 0x040004, 0x070006, 0x080008, 0x040004, 0x050004, 0x080006, 0x090007,
Packit 47f805
    0x070005, 0x080006, 0x090007, 0x0a0008, 0x080007, 0x080007, 0x090008, 0x0a0009
Packit 47f805
};
Packit 47f805
Packit 47f805
Packit 47f805
Packit 47f805
/* 
Packit 47f805
 * 0: MPEG-2 LSF
Packit 47f805
 * 1: MPEG-1
Packit 47f805
 * 2: MPEG-2.5 LSF FhG extention                  (1995-07-11 shn)
Packit 47f805
 */
Packit 47f805
Packit 47f805
typedef enum {
Packit 47f805
    MPEG_2 = 0,
Packit 47f805
    MPEG_1 = 1,
Packit 47f805
    MPEG_25 = 2
Packit 47f805
} MPEG_t;
Packit 47f805
Packit 47f805
const int bitrate_table[3][16] = {
Packit 47f805
    {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, -1}, /* MPEG 2 */
Packit 47f805
    {0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, -1}, /* MPEG 1 */
Packit 47f805
    {0, 8, 16, 24, 32, 40, 48, 56, 64, -1, -1, -1, -1, -1, -1, -1}, /* MPEG 2.5 */
Packit 47f805
};
Packit 47f805
Packit 47f805
const int samplerate_table[3][4] = {
Packit 47f805
    {22050, 24000, 16000, -1}, /* MPEG 2 */
Packit 47f805
    {44100, 48000, 32000, -1}, /* MPEG 1 */
Packit 47f805
    {11025, 12000, 8000, -1}, /* MPEG 2.5 */
Packit 47f805
};
Packit 47f805
Packit 47f805
int
Packit 47f805
lame_get_bitrate(int mpeg_version, int table_index)
Packit 47f805
{
Packit 47f805
    if (0 <= mpeg_version && mpeg_version <= 2) {
Packit 47f805
        if (0 <= table_index && table_index <= 15) {
Packit 47f805
            return bitrate_table[mpeg_version][table_index];
Packit 47f805
        }
Packit 47f805
    }
Packit 47f805
    return -1;
Packit 47f805
}
Packit 47f805
Packit 47f805
int
Packit 47f805
lame_get_samplerate(int mpeg_version, int table_index)
Packit 47f805
{
Packit 47f805
    if (0 <= mpeg_version && mpeg_version <= 2) {
Packit 47f805
        if (0 <= table_index && table_index <= 3) {
Packit 47f805
            return samplerate_table[mpeg_version][table_index];
Packit 47f805
        }
Packit 47f805
    }
Packit 47f805
    return -1;
Packit 47f805
}
Packit 47f805
Packit 47f805
Packit 47f805
/* This is the scfsi_band table from 2.4.2.7 of the IS */
Packit 47f805
const int scfsi_band[5] = { 0, 6, 11, 16, 21 };
Packit 47f805
Packit 47f805
/* end of tables.c */