};
/** Tables for spectrum coding */
-static const uint8_t huff_a01_cb[14] = {
- 1, 12, 1, 0, 0, 1, 7, 0, 19, 5, 13, 21, 6, 8
-};
-
-static const uint8_t huff_a02_cb[13] = {
- 2, 12, 1, 0, 4, 11, 0, 1, 29, 6, 20, 7, 2
-};
-
-static const uint8_t huff_a03_cb[9] = { 3, 9, 1, 8, 0, 13, 18, 7, 2 };
-
-static const uint8_t huff_a04_cb[4] = { 2, 3, 2, 4 };
-
-static const uint8_t huff_a05_cb[12] = {
- 3, 12, 1, 3, 5, 8, 12, 23, 72, 68, 31, 2
-};
-
-static const uint8_t huff_a06_cb[7] = {
- 2, 6, 1, 3, 2, 6, 4
-};
-static const uint8_t huff_a07_cb[11] = {
- 2, 10, 1, 2, 2, 2, 6, 14, 21, 13, 2
-};
-
-static const uint8_t huff_a11_cb[13] = {
- 1, 11, 1, 0, 0, 0, 8, 1, 18, 9, 22, 10, 12
-};
-
-static const uint8_t huff_a12_cb[8] = { 5, 10, 16, 11, 32, 19, 1, 2 };
-
-static const uint8_t huff_a13_cb[12] = {
- 1, 10, 1, 0, 0, 4, 2, 2, 9, 15, 12, 4
-};
-
-static const uint8_t huff_a14_cb[12] = {
- 2, 11, 1, 0, 4, 3, 5, 16, 28, 34, 26, 4
-};
-
-static const uint8_t huff_a15_cb[9] = { 5, 11, 9, 12, 16, 44, 98, 42, 4 };
-
-static const uint8_t huff_a16_cb[13] = {
- 2, 12, 1, 1, 2, 2, 5, 7, 21, 54, 85, 62, 16
-};
-
-static const uint8_t huff_a17_cb[9] = { 3, 9, 3, 2, 5, 7, 17, 23, 6 };
-
-static const uint8_t huff_a21_cb[14] = {
- 1, 12, 1, 0, 0, 2, 6, 0, 7, 21, 15, 17, 8, 4
-};
-
-static const uint8_t huff_a22_cb[10] = { 2, 9, 1, 4, 0, 4, 3, 8, 3, 2 };
-
-static const uint8_t huff_a23_cb[9] = { 3, 9, 5, 0, 4, 6, 10, 16, 8 };
-
-static const uint8_t huff_a24_cb[5] = { 2, 4, 3, 1, 2 };
-
-static const uint8_t huff_a25_cb[5] = { 2, 4, 1, 5, 2 };
-
-static const uint8_t huff_a26_cb[10] = { 4, 11, 3, 4, 12, 15, 34, 83, 75, 30 };
-
-static const uint8_t huff_a27_cb[7] = { 4, 8, 3, 14, 10, 20, 16 };
-
-static const uint8_t huff_a31_cb[8] = { 1, 6, 1, 0, 3, 1, 0, 4 };
-
-static const uint8_t huff_a32_cb[13] = {
- 1, 11, 1, 0, 0, 2, 2, 6, 12, 18, 19, 15, 6
-};
-
-static const uint8_t huff_a33_cb[12] = {
- 3, 12, 1, 1, 13, 1, 14, 28, 33, 81, 32, 52
-};
-
-static const uint8_t huff_a34_cb[7] = { 1, 5, 1, 1, 1, 1, 2 };
-
-static const uint8_t huff_a35_cb[11] = { 2, 10, 1, 0, 2, 3, 6, 19, 9, 75, 110 };
-
-static const uint8_t huff_a36_cb[12] = {
- 3, 12, 1, 3, 5, 5, 13, 27, 69, 96, 35, 2
-};
-
-static const uint8_t huff_a37_cb[7] = { 4, 8, 7, 6, 8, 22, 20 };
-
-static const uint8_t huff_a41_cb[14] = {
- 1, 12, 1, 0, 0, 6, 2, 0, 0, 0, 19, 9, 24, 20
-};
-
-static const uint8_t huff_a42_cb[10] = { 3, 10, 1, 2, 13, 1, 31, 13, 16, 4 };
-
-static const uint8_t huff_a43_cb[5] = { 2, 4, 2, 3, 2 };
-
-static const uint8_t huff_a44_cb[9] = { 4, 10, 5, 4, 12, 17, 47, 24, 12 };
-
-static const uint8_t huff_a45_cb[5] = { 2, 4, 2, 2, 4 };
-
-static const uint8_t huff_a46_cb[7] = { 5, 9, 1, 16, 31, 36, 172 };
-
-static const uint8_t huff_a47_cb[8] = { 4, 9, 5, 12, 9, 12, 15, 10 };
-
-static const uint8_t huff_a51_cb[12] = {
- 2, 11, 1, 0, 6, 2, 6, 18, 4, 26, 6, 12
-};
-
-static const uint8_t huff_a52_cb[12] = { 1, 10, 1, 0, 2, 2, 0, 4, 3, 8, 3, 2 };
-
-static const uint8_t huff_a54_cb[8] = { 4, 9, 4, 7, 12, 19, 21, 58 };
-
-static const uint8_t huff_a55_cb[8] = { 1, 6, 1, 1, 1, 0, 3, 2 };
-
-static const uint8_t huff_a56_cb[7] = { 3, 7, 1, 8, 6, 8, 8 };
-
-static const uint8_t huff_a57_cb[9] = { 3, 9, 1, 5, 7, 8, 16, 22, 4 };
-
-static const uint8_t huff_a61_cb[12] = {
- 2, 11, 1, 0, 8, 0, 1, 16, 10, 29, 12, 4
-};
-
-static const uint8_t huff_a62_cb[8] = { 3, 8, 5, 2, 2, 9, 5, 2 };
-
-static const uint8_t huff_a63_cb[11] = {
- 3, 11, 1, 1, 10, 4, 16, 29, 46, 75, 74
-};
-
-static const uint8_t huff_a64_cb[8] = { 4, 9, 1, 7, 12, 36, 63, 2 };
-
-static const uint8_t huff_a65_cb[8] = { 2, 7, 3, 0, 1, 3, 4, 4 };
-
-static const uint8_t huff_a66_cb[11] = { 2, 10, 1, 2, 2, 6, 8, 6, 3, 1, 2 };
-
-static const uint8_t huff_a67_cb[10] = { 2, 9, 1, 1, 3, 4, 6, 13, 25, 10 };
-
-static const uint8_t huff_a71_cb[5] = { 1, 3, 1, 1, 2 };
-
-static const uint8_t huff_a72_cb[12] = {
- 2, 11, 1, 0, 4, 8, 3, 8, 24, 17, 12, 4
-};
-
-static const uint8_t huff_a73_cb[11] = { 2, 10, 1, 1, 5, 2, 8, 7, 13, 8, 4 };
-
-static const uint8_t huff_a74_cb[14] = {
- 1, 12, 1, 0, 0, 4, 0, 4, 5, 9, 30, 45, 21, 2
-};
-
-static const uint8_t huff_a75_cb[7] = { 2, 6, 1, 3, 3, 4, 4 };
-
-static const uint8_t huff_a76_cb[12] = {
- 3, 12, 1, 3, 4, 8, 10, 36, 60, 78, 48, 8
-};
-
-static const uint8_t huff_b01_cb[14] = {
- 1, 12, 1, 0, 0, 2, 6, 0, 11, 13, 12, 24, 4, 8
-};
-
-static const uint8_t huff_b02_cb[14] = {
- 1, 12, 1, 0, 0, 4, 0, 8, 4, 9, 19, 13, 13, 10
-};
-
-static const uint8_t huff_b03_cb[11] = { 1, 9, 1, 0, 0, 4, 0, 5, 12, 13, 14 };
-
-static const uint8_t huff_b04_cb[12] = {
- 2, 11, 1, 0, 4, 4, 5, 9, 30, 45, 21, 2
-};
-
-static const uint8_t huff_b05_cb[11] = {
- 3, 11, 1, 4, 4, 4, 12, 30, 73, 75, 22
-};
-
-static const uint8_t huff_b07_cb[9] = { 3, 9, 3, 2, 4, 8, 23, 13, 10 };
-
-static const uint8_t huff_b12_cb[10] = { 3, 10, 1, 3, 12, 0, 30, 9, 18, 8 };
-
-static const uint8_t huff_b14_cb[14] = {
- 1, 12, 1, 0, 0, 4, 0, 3, 5, 16, 28, 34, 26, 4
-};
-
-static const uint8_t huff_b16_cb[11] = {
- 4, 12, 4, 4, 9, 13, 37, 76, 72, 39, 2
-};
-
-static const uint8_t huff_b26_cb[12] = {
- 3, 12, 2, 2, 4, 5, 11, 26, 67, 78, 51, 10
-};
-
-static const uint8_t huff_b32_cb[12] = {
- 2, 11, 1, 0, 4, 6, 7, 10, 22, 11, 16, 4
-};
-
-static const uint8_t huff_b33_cb[13] = {
- 2, 12, 1, 0, 0, 4, 11, 8, 28, 92, 97, 13, 2
-};
-
-static const uint8_t huff_b35_cb[14] = {
- 1, 12, 1, 0, 0, 0, 4, 6, 6, 14, 42, 63, 59, 30
-};
-
-static const uint8_t huff_b37_cb[13] = {
- 1, 11, 1, 0, 2, 0, 2, 2, 6, 17, 14, 13, 6
-};
-
-static const uint8_t huff_b41_cb[14] = {
- 1, 12, 1, 0, 0, 1, 7, 0, 20, 4, 10, 24, 2, 12
-};
-
-static const uint8_t huff_b42_cb[11] = { 1, 9, 1, 0, 1, 3, 2, 3, 7, 4, 4 };
-
-static const uint8_t huff_b43_cb[10] = { 2, 9, 1, 1, 3, 4, 9, 15, 12, 4 };
-
-static const uint8_t huff_b47_cb[10] = { 2, 9, 1, 1, 3, 4, 6, 14, 22, 12 };
-
-static const uint8_t huff_b52_cb[11] = { 1, 9, 1, 0, 1, 3, 2, 3, 7, 4, 4 };
-
-static const uint8_t huff_b53_cb[7] = { 1, 5, 1, 1, 1, 0, 4 }; // same as b63!!!
-
-static const uint8_t huff_b56_cb[11] = { 1, 9, 1, 0, 2, 0, 2, 4, 11, 9, 2 };
-
-static const uint8_t huff_b62_cb[14] = {
- 1, 12, 1, 0, 0, 2, 3, 5, 12, 14, 18, 15, 9, 2
-};
-
-static const uint8_t huff_b63_cb[7] = { 1, 5, 1, 1, 1, 0, 4 };
-
-static const uint8_t huff_b64_cb[7] = { 1, 5, 1, 1, 1, 1, 2 };
-
-static const uint8_t huff_b65_cb[14] = {
- 1, 12, 1, 0, 0, 2, 2, 2, 6, 12, 34, 92, 54, 20
-};
-
-static const uint8_t huff_b66_cb[14] = {
- 1, 12, 1, 0, 0, 3, 0, 3, 3, 10, 40, 85, 61, 50
-};
-
-static const uint8_t huff_b67_cb[10] = { 2, 9, 1, 2, 1, 4, 7, 10, 26, 12 };
-
-static const uint8_t huff_b71_cb[14] = {
- 1, 12, 1, 0, 0, 1, 7, 0, 19, 5, 13, 23, 0, 12
-};
-
-static const uint8_t huff_b73_cb[13] = {
- 1, 11, 1, 0, 0, 0, 1, 4, 9, 4, 103, 110, 24
-};
-
-static const uint8_t huff_b74_cb[8] = { 1, 6, 1, 0, 2, 2, 2, 4 };
-
-static const uint8_t huff_b75_cb[13] = {
- 2, 12, 1, 4, 0, 0, 0, 8, 11, 24, 53, 64, 60
-};
-
-static const uint8_t huff_b77_cb[12] = {
- 2, 11, 1, 0, 4, 6, 10, 12, 7, 15, 4, 4
+/* If the first entry of a subtable is negative, it means
+ * that another VLC is to be reused. */
+static int8_t atrac3p_spectra_cbs[][12] = {
+ { 1, 0, 0, 1, 7, 0, 19, 5, 13, 21, 6, 8 },
+ { 0, 1, 0, 4, 11, 0, 1, 29, 6, 20, 7, 2 },
+ { 0, 0, 1, 8, 0, 13, 18, 7, 2, 0, 0, 0 },
+ { 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0, 0, 1, 3, 5, 8, 12, 23, 72, 68, 31, 2 },
+ { 0, 1, 3, 2, 6, 4, 0, 0, 0, 0, 0, 0 },
+ { 0, 1, 2, 2, 2, 6, 14, 21, 13, 2, 0, 0 },
+ { 1, 0, 0, 0, 8, 1, 18, 9, 22, 10, 12, 0 },
+ { 0, 0, 0, 0, 16, 11, 32, 19, 1, 2, 0, 0 },
+ { 1, 0, 0, 4, 2, 2, 9, 15, 12, 4, 0, 0 },
+ { 0, 1, 0, 4, 3, 5, 16, 28, 34, 26, 4, 0 },
+ { 0, 0, 0, 0, 9, 12, 16, 44, 98, 42, 4, 0 },
+ { 0, 1, 1, 2, 2, 5, 7, 21, 54, 85, 62, 16 },
+ { 0, 0, 3, 2, 5, 7, 17, 23, 6, 0, 0, 0 },
+ { 1, 0, 0, 2, 6, 0, 7, 21, 15, 17, 8, 4 },
+ { 0, 1, 4, 0, 4, 3, 8, 3, 2, 0, 0, 0 },
+ { 0, 0, 5, 0, 4, 6, 10, 16, 8, 0, 0, 0 },
+ { 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0, 1, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0, 0, 0, 3, 4, 12, 15, 34, 83, 75, 30, 0 },
+ { 0, 0, 0, 3, 14, 10, 20, 16, 0, 0, 0, 0 },
+ { 1, 0, 3, 1, 0, 4, 0, 0, 0, 0, 0, 0 },
+ { 1, 0, 0, 2, 2, 6, 12, 18, 19, 15, 6, 0 },
+ { 0, 0, 1, 1, 13, 1, 14, 28, 33, 81, 32, 52 },
+ { 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0 },
+ { 0, 1, 0, 2, 3, 6, 19, 9, 75, 110, 0, 0 },
+ { 0, 0, 1, 3, 5, 5, 13, 27, 69, 96, 35, 2 },
+ { 0, 0, 0, 7, 6, 8, 22, 20, 0, 0, 0, 0 },
+ { 1, 0, 0, 6, 2, 0, 0, 0, 19, 9, 24, 20 },
+ { 0, 0, 1, 2, 13, 1, 31, 13, 16, 4, 0, 0 },
+ { 0, 2, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0, 0, 0, 5, 4, 12, 17, 47, 24, 12, 0, 0 },
+ { 0, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0, 0, 0, 0, 1, 16, 31, 36, 172, 0, 0, 0 },
+ { 0, 0, 0, 5, 12, 9, 12, 15, 10, 0, 0, 0 },
+ { 0, 1, 0, 6, 2, 6, 18, 4, 26, 6, 12, 0 },
+ { 1, 0, 2, 2, 0, 4, 3, 8, 3, 2, 0, 0 },
+ { 0, 2, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0, 0, 0, 4, 7, 12, 19, 21, 58, 0, 0, 0 },
+ { 1, 1, 1, 0, 3, 2, 0, 0, 0, 0, 0, 0 },
+ { 0, 0, 1, 8, 6, 8, 8, 0, 0, 0, 0, 0 },
+ { 0, 0, 1, 5, 7, 8, 16, 22, 4, 0, 0, 0 },
+ { 0, 1, 0, 8, 0, 1, 16, 10, 29, 12, 4, 0 },
+ { 0, 0, 5, 2, 2, 9, 5, 2, 0, 0, 0, 0 },
+ { 0, 0, 1, 1, 10, 4, 16, 29, 46, 75, 74, 0 },
+ { 0, 0, 0, 1, 7, 12, 36, 63, 2, 0, 0, 0 },
+ { 0, 3, 0, 1, 3, 4, 4, 0, 0, 0, 0, 0 },
+ { 0, 1, 2, 2, 6, 8, 6, 3, 1, 2, 0, 0 },
+ { 0, 1, 1, 3, 4, 6, 13, 25, 10, 0, 0, 0 },
+ { 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0, 1, 0, 4, 8, 3, 8, 24, 17, 12, 4, 0 },
+ { 0, 1, 1, 5, 2, 8, 7, 13, 8, 4, 0, 0 },
+ { 1, 0, 0, 4, 0, 4, 5, 9, 30, 45, 21, 2 },
+ { 0, 1, 3, 3, 4, 4, 0, 0, 0, 0, 0, 0 },
+ { 0, 0, 1, 3, 4, 8, 10, 36, 60, 78, 48, 8 },
+ { -6 },
+ { 1, 0, 0, 2, 6, 0, 11, 13, 12, 24, 4, 8 },
+ { 1, 0, 0, 4, 0, 8, 4, 9, 19, 13, 13, 10 },
+ { 1, 0, 0, 4, 0, 5, 12, 13, 14, 0, 0, 0 },
+ { 0, 1, 0, 4, 4, 5, 9, 30, 45, 21, 2, 0 },
+ { 0, 0, 1, 4, 4, 4, 12, 30, 73, 75, 22, 0 },
+ { -5 },
+ { 0, 0, 3, 2, 4, 8, 23, 13, 10, 0, 0, 0 },
+ { -14 },
+ { 0, 0, 1, 3, 12, 0, 30, 9, 18, 8, 0, 0 },
+ { -9 },
+ { 1, 0, 0, 4, 0, 3, 5, 16, 28, 34, 26, 4 },
+ { -11 },
+ { 0, 0, 0, 4, 4, 9, 13, 37, 76, 72, 39, 2 },
+ { -6 },
+ { -28 },
+ { -22 },
+ { -2 },
+ { -31 },
+ { -60 },
+ { 0, 0, 2, 2, 4, 5, 11, 26, 67, 78, 51, 10 },
+ { -6 },
+ { -35 },
+ { 0, 1, 0, 4, 6, 7, 10, 22, 11, 16, 4, 0 },
+ { 0, 1, 0, 0, 4, 11, 8, 28, 92, 97, 13, 2 },
+ { -59 },
+ { 1, 0, 0, 0, 4, 6, 6, 14, 42, 63, 59, 30 },
+ { -75 },
+ { 1, 0, 2, 0, 2, 2, 6, 17, 14, 13, 6, 0 },
+ { 1, 0, 0, 1, 7, 0, 20, 4, 10, 24, 2, 12 },
+ { 1, 0, 1, 3, 2, 3, 7, 4, 4, 0, 0, 0 },
+ { 0, 1, 1, 3, 4, 9, 15, 12, 4, 0, 0, 0 },
+ { -66 },
+ { -32 },
+ { -12 },
+ { 0, 1, 1, 3, 4, 6, 14, 22, 12, 0, 0, 0 },
+ { -42 },
+ { 1, 0, 1, 3, 2, 3, 7, 4, 4, 0, 0, 0 },
+ { 1, 1, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0 },
+ { -17 },
+ { -39 },
+ { 1, 0, 2, 0, 2, 4, 11, 9, 2, 0, 0, 0 },
+ { -62 },
+ { -28 },
+ { 1, 0, 0, 2, 3, 5, 12, 14, 18, 15, 9, 2 },
+ { 1, 1, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0 },
+ { 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0 },
+ { 1, 0, 0, 2, 2, 2, 6, 12, 34, 92, 54, 20 },
+ { 1, 0, 0, 3, 0, 3, 3, 10, 40, 85, 61, 50 },
+ { 0, 1, 2, 1, 4, 7, 10, 26, 12, 0, 0, 0 },
+ { 1, 0, 0, 1, 7, 0, 19, 5, 13, 23, 0, 12 },
+ { -78 },
+ { 1, 0, 0, 0, 1, 4, 9, 4, 103, 110, 24, 0 },
+ { 1, 0, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0 },
+ { 0, 1, 4, 0, 0, 0, 8, 11, 24, 53, 64, 60 },
+ { -47 },
+ { 0, 1, 0, 4, 6, 10, 12, 7, 15, 4, 4, 0 },
};
static const uint8_t atrac3p_spectra_xlats[] = {
uint8_t num_coeffs; ///< 1 - map index to a single value, > 1 - map index to a vector of values
uint8_t bits; ///< number of bits a single coefficient occupy
uint8_t is_signed; ///< 1 - values in that table are signed ones, otherwise - absolute ones
-
- int redirect; ///< if >= 0: tells which huffman table must be reused
- const uint8_t *cb; ///< pointer to the codebook descriptor
} Atrac3pSpecCodeTab;
static const Atrac3pSpecCodeTab atrac3p_spectra_tabs[112] = {
/* table set = A */
/* code table = 0 */
- { 1, 4, 2, 1, -1, huff_a01_cb }, // wordlen = 1
- { 1, 4, 2, 0, -1, huff_a02_cb }, // wordlen = 2
- { 1, 2, 3, 1, -1, huff_a03_cb }, // wordlen = 3
- { 1, 1, 3, 0, -1, huff_a04_cb }, // wordlen = 4
- { 1, 2, 4, 1, -1, huff_a05_cb }, // wordlen = 5
- { 1, 1, 4, 0, -1, huff_a06_cb }, // wordlen = 6
- { 1, 1, 6, 1, -1, huff_a07_cb }, // wordlen = 7
+ { 1, 4, 2, 1 }, // wordlen = 1
+ { 1, 4, 2, 0 }, // wordlen = 2
+ { 1, 2, 3, 1 }, // wordlen = 3
+ { 1, 1, 3, 0 }, // wordlen = 4
+ { 1, 2, 4, 1 }, // wordlen = 5
+ { 1, 1, 4, 0 }, // wordlen = 6
+ { 1, 1, 6, 1 }, // wordlen = 7
/* code table = 1 */
- { 4, 4, 2, 1, -1, huff_a11_cb }, // wordlen = 1
- { 1, 4, 2, 0, -1, huff_a12_cb }, // wordlen = 2
- { 1, 2, 3, 1, -1, huff_a13_cb }, // wordlen = 3
- { 1, 2, 4, 1, -1, huff_a14_cb }, // wordlen = 4
- { 1, 2, 4, 1, -1, huff_a15_cb }, // wordlen = 5
- { 1, 2, 4, 0, -1, huff_a16_cb }, // wordlen = 6
- { 1, 1, 6, 1, -1, huff_a17_cb }, // wordlen = 7
+ { 4, 4, 2, 1 }, // wordlen = 1
+ { 1, 4, 2, 0 }, // wordlen = 2
+ { 1, 2, 3, 1 }, // wordlen = 3
+ { 1, 2, 4, 1 }, // wordlen = 4
+ { 1, 2, 4, 1 }, // wordlen = 5
+ { 1, 2, 4, 0 }, // wordlen = 6
+ { 1, 1, 6, 1 }, // wordlen = 7
/* code table = 2 */
- { 1, 4, 2, 1, -1, huff_a21_cb }, // wordlen = 1
- { 1, 2, 3, 1, -1, huff_a22_cb }, // wordlen = 2
- { 1, 2, 3, 1, -1, huff_a23_cb }, // wordlen = 3
- { 1, 1, 3, 0, -1, huff_a24_cb }, // wordlen = 4
- { 1, 1, 3, 0, -1, huff_a25_cb }, // wordlen = 5
- { 1, 2, 4, 0, -1, huff_a26_cb }, // wordlen = 6
- { 1, 1, 6, 1, -1, huff_a27_cb }, // wordlen = 7
+ { 1, 4, 2, 1 }, // wordlen = 1
+ { 1, 2, 3, 1 }, // wordlen = 2
+ { 1, 2, 3, 1 }, // wordlen = 3
+ { 1, 1, 3, 0 }, // wordlen = 4
+ { 1, 1, 3, 0 }, // wordlen = 5
+ { 1, 2, 4, 0 }, // wordlen = 6
+ { 1, 1, 6, 1 }, // wordlen = 7
/* code table = 3 */
- { 1, 2, 2, 1, -1, huff_a31_cb }, // wordlen = 1
- { 1, 4, 2, 0, -1, huff_a32_cb }, // wordlen = 2
- { 1, 4, 2, 0, -1, huff_a33_cb }, // wordlen = 3
- { 1, 1, 3, 0, -1, huff_a34_cb }, // wordlen = 4
- { 1, 2, 4, 1, -1, huff_a35_cb }, // wordlen = 5
- { 1, 2, 4, 0, -1, huff_a36_cb }, // wordlen = 6
- { 1, 1, 6, 1, -1, huff_a37_cb }, // wordlen = 7
+ { 1, 2, 2, 1 }, // wordlen = 1
+ { 1, 4, 2, 0 }, // wordlen = 2
+ { 1, 4, 2, 0 }, // wordlen = 3
+ { 1, 1, 3, 0 }, // wordlen = 4
+ { 1, 2, 4, 1 }, // wordlen = 5
+ { 1, 2, 4, 0 }, // wordlen = 6
+ { 1, 1, 6, 1 }, // wordlen = 7
/* code table = 4 */
- { 1, 4, 2, 1, -1, huff_a41_cb }, // wordlen = 1
- { 1, 4, 2, 0, -1, huff_a42_cb }, // wordlen = 2
- { 1, 1, 3, 1, -1, huff_a43_cb }, // wordlen = 3
- { 1, 2, 4, 1, -1, huff_a44_cb }, // wordlen = 4
- { 1, 1, 3, 0, -1, huff_a45_cb }, // wordlen = 5
- { 1, 2, 4, 0, -1, huff_a46_cb }, // wordlen = 6
- { 1, 1, 6, 1, -1, huff_a47_cb }, // wordlen = 7
+ { 1, 4, 2, 1 }, // wordlen = 1
+ { 1, 4, 2, 0 }, // wordlen = 2
+ { 1, 1, 3, 1 }, // wordlen = 3
+ { 1, 2, 4, 1 }, // wordlen = 4
+ { 1, 1, 3, 0 }, // wordlen = 5
+ { 1, 2, 4, 0 }, // wordlen = 6
+ { 1, 1, 6, 1 }, // wordlen = 7
/* code table = 5 */
- { 1, 4, 2, 1, -1, huff_a51_cb }, // wordlen = 1
- { 1, 2, 3, 1, -1, huff_a52_cb }, // wordlen = 2
- { 1, 1, 3, 1, -1, huff_a43_cb }, // wordlen = 3
- { 1, 2, 4, 1, -1, huff_a54_cb }, // wordlen = 4
- { 1, 1, 3, 0, -1, huff_a55_cb }, // wordlen = 5
- { 1, 1, 5, 1, -1, huff_a56_cb }, // wordlen = 6
- { 1, 1, 6, 1, -1, huff_a57_cb }, // wordlen = 7
+ { 1, 4, 2, 1 }, // wordlen = 1
+ { 1, 2, 3, 1 }, // wordlen = 2
+ { 1, 1, 3, 1 }, // wordlen = 3
+ { 1, 2, 4, 1 }, // wordlen = 4
+ { 1, 1, 3, 0 }, // wordlen = 5
+ { 1, 1, 5, 1 }, // wordlen = 6
+ { 1, 1, 6, 1 }, // wordlen = 7
/* code table = 6 */
- { 2, 4, 2, 1, -1, huff_a61_cb }, // wordlen = 1
- { 1, 2, 3, 1, -1, huff_a62_cb }, // wordlen = 2
- { 1, 4, 2, 0, -1, huff_a63_cb }, // wordlen = 3
- { 1, 2, 4, 1, -1, huff_a64_cb }, // wordlen = 4
- { 1, 1, 4, 1, -1, huff_a65_cb }, // wordlen = 5
- { 1, 1, 5, 1, -1, huff_a66_cb }, // wordlen = 6
- { 1, 1, 6, 1, -1, huff_a67_cb }, // wordlen = 7
+ { 2, 4, 2, 1 }, // wordlen = 1
+ { 1, 2, 3, 1 }, // wordlen = 2
+ { 1, 4, 2, 0 }, // wordlen = 3
+ { 1, 2, 4, 1 }, // wordlen = 4
+ { 1, 1, 4, 1 }, // wordlen = 5
+ { 1, 1, 5, 1 }, // wordlen = 6
+ { 1, 1, 6, 1 }, // wordlen = 7
/* code table = 7 */
- { 1, 2, 1, 0, -1, huff_a71_cb }, // wordlen = 1
- { 2, 4, 2, 0, -1, huff_a72_cb }, // wordlen = 2
- { 1, 2, 3, 1, -1, huff_a73_cb }, // wordlen = 3
- { 1, 2, 4, 1, -1, huff_a74_cb }, // wordlen = 4
- { 1, 1, 4, 1, -1, huff_a75_cb }, // wordlen = 5
- { 2, 2, 4, 0, -1, huff_a76_cb }, // wordlen = 6
- { 4, 1, 6, 1, 6, NULL }, // wordlen = 7
+ { 1, 2, 1, 0 }, // wordlen = 1
+ { 2, 4, 2, 0 }, // wordlen = 2
+ { 1, 2, 3, 1 }, // wordlen = 3
+ { 1, 2, 4, 1 }, // wordlen = 4
+ { 1, 1, 4, 1 }, // wordlen = 5
+ { 2, 2, 4, 0 }, // wordlen = 6
+ { 4, 1, 6, 1 }, // wordlen = 7
/* table set = B */
/* code table = 0 */
- { 4, 4, 2, 1, -1, huff_b01_cb }, // wordlen = 1
- { 1, 4, 2, 0, -1, huff_b02_cb }, // wordlen = 2
- { 4, 2, 3, 1, -1, huff_b03_cb }, // wordlen = 3
- { 1, 2, 4, 1, -1, huff_b04_cb }, // wordlen = 4
- { 1, 2, 4, 1, -1, huff_b05_cb }, // wordlen = 5
- { 1, 1, 4, 0, 5, NULL }, // wordlen = 6
- { 1, 1, 6, 1, -1, huff_b07_cb }, // wordlen = 7
+ { 4, 4, 2, 1 }, // wordlen = 1
+ { 1, 4, 2, 0 }, // wordlen = 2
+ { 4, 2, 3, 1 }, // wordlen = 3
+ { 1, 2, 4, 1 }, // wordlen = 4
+ { 1, 2, 4, 1 }, // wordlen = 5
+ { 1, 1, 4, 0 }, // wordlen = 6
+ { 1, 1, 6, 1 }, // wordlen = 7
/* code table = 1 */
- { 1, 4, 2, 1, 14, NULL }, // wordlen = 1
- { 1, 4, 2, 0, -1, huff_b12_cb }, // wordlen = 2
- { 1, 2, 3, 1, 9, NULL }, // wordlen = 3
- { 1, 2, 4, 1, -1, huff_b14_cb }, // wordlen = 4
- { 1, 2, 4, 1, 11, NULL }, // wordlen = 5
- { 1, 2, 4, 0, -1, huff_b16_cb }, // wordlen = 6
- { 1, 1, 6, 1, 6, NULL }, // wordlen = 7
+ { 1, 4, 2, 1 }, // wordlen = 1
+ { 1, 4, 2, 0 }, // wordlen = 2
+ { 1, 2, 3, 1 }, // wordlen = 3
+ { 1, 2, 4, 1 }, // wordlen = 4
+ { 1, 2, 4, 1 }, // wordlen = 5
+ { 1, 2, 4, 0 }, // wordlen = 6
+ { 1, 1, 6, 1 }, // wordlen = 7
/* code table = 2 */
- { 4, 4, 2, 1, 28, NULL }, // wordlen = 1
- { 4, 4, 2, 0, 22, NULL }, // wordlen = 2
- { 1, 2, 3, 1, 2, NULL }, // wordlen = 3
- { 1, 2, 4, 1, 31, NULL }, // wordlen = 4
- { 2, 2, 4, 1, 60, NULL }, // wordlen = 5
- { 2, 2, 4, 0, -1, huff_b26_cb }, // wordlen = 6
- { 4, 1, 6, 1, 6, NULL }, // wordlen = 7
+ { 4, 4, 2, 1 }, // wordlen = 1
+ { 4, 4, 2, 0 }, // wordlen = 2
+ { 1, 2, 3, 1 }, // wordlen = 3
+ { 1, 2, 4, 1 }, // wordlen = 4
+ { 2, 2, 4, 1 }, // wordlen = 5
+ { 2, 2, 4, 0 }, // wordlen = 6
+ { 4, 1, 6, 1 }, // wordlen = 7
/* code table = 3 */
- { 1, 4, 2, 1, 35, NULL }, // wordlen = 1
- { 1, 4, 2, 0, -1, huff_b32_cb }, // wordlen = 2
- { 1, 4, 2, 0, -1, huff_b33_cb }, // wordlen = 3
- { 2, 2, 4, 1, 59, NULL }, // wordlen = 4
- { 1, 2, 4, 1, -1, huff_b35_cb }, // wordlen = 5
- { 1, 2, 4, 0, 75, NULL }, // wordlen = 6
- { 1, 1, 6, 1, -1, huff_b37_cb }, // wordlen = 7
+ { 1, 4, 2, 1 }, // wordlen = 1
+ { 1, 4, 2, 0 }, // wordlen = 2
+ { 1, 4, 2, 0 }, // wordlen = 3
+ { 2, 2, 4, 1 }, // wordlen = 4
+ { 1, 2, 4, 1 }, // wordlen = 5
+ { 1, 2, 4, 0 }, // wordlen = 6
+ { 1, 1, 6, 1 }, // wordlen = 7
/* code table = 4 */
- { 1, 4, 2, 1, -1, huff_b41_cb }, // wordlen = 1
- { 4, 2, 3, 1, -1, huff_b42_cb }, // wordlen = 2
- { 1, 2, 3, 1, -1, huff_b43_cb }, // wordlen = 3
- { 4, 2, 4, 1, 66, NULL }, // wordlen = 4
- { 1, 1, 3, 0, 32, NULL }, // wordlen = 5
- { 1, 2, 4, 0, 12, NULL }, // wordlen = 6
- { 1, 1, 6, 1, -1, huff_b47_cb }, // wordlen = 7
+ { 1, 4, 2, 1 }, // wordlen = 1
+ { 4, 2, 3, 1 }, // wordlen = 2
+ { 1, 2, 3, 1 }, // wordlen = 3
+ { 4, 2, 4, 1 }, // wordlen = 4
+ { 1, 1, 3, 0 }, // wordlen = 5
+ { 1, 2, 4, 0 }, // wordlen = 6
+ { 1, 1, 6, 1 }, // wordlen = 7
/* code table = 5 */
- { 2, 4, 2, 1, 42, NULL }, // wordlen = 1
- { 1, 2, 3, 1, -1, huff_b52_cb }, // wordlen = 2
- { 4, 1, 3, 1, -1, huff_b53_cb }, // wordlen = 3
- { 1, 1, 3, 0, 17, NULL }, // wordlen = 4
- { 1, 1, 3, 0, 39, NULL }, // wordlen = 5
- { 1, 1, 5, 1, -1, huff_b56_cb }, // wordlen = 6
- { 2, 1, 6, 1, 62, NULL }, // wordlen = 7
+ { 2, 4, 2, 1 }, // wordlen = 1
+ { 1, 2, 3, 1 }, // wordlen = 2
+ { 4, 1, 3, 1 }, // wordlen = 3
+ { 1, 1, 3, 0 }, // wordlen = 4
+ { 1, 1, 3, 0 }, // wordlen = 5
+ { 1, 1, 5, 1 }, // wordlen = 6
+ { 2, 1, 6, 1 }, // wordlen = 7
/* code table = 6 */
- { 1, 4, 2, 1, 28, NULL }, // wordlen = 1
- { 1, 4, 2, 0, -1, huff_b62_cb }, // wordlen = 2
- { 1, 1, 3, 1, -1, huff_b63_cb }, // wordlen = 3
- { 1, 1, 3, 0, -1, huff_b64_cb }, // wordlen = 4
- { 4, 2, 4, 1, -1, huff_b65_cb }, // wordlen = 5
- { 1, 2, 4, 0, -1, huff_b66_cb }, // wordlen = 6
- { 1, 1, 6, 1, -1, huff_b67_cb }, // wordlen = 7
+ { 1, 4, 2, 1 }, // wordlen = 1
+ { 1, 4, 2, 0 }, // wordlen = 2
+ { 1, 1, 3, 1 }, // wordlen = 3
+ { 1, 1, 3, 0 }, // wordlen = 4
+ { 4, 2, 4, 1 }, // wordlen = 5
+ { 1, 2, 4, 0 }, // wordlen = 6
+ { 1, 1, 6, 1 }, // wordlen = 7
/* code table = 7 */
- { 1, 4, 2, 1, -1, huff_b71_cb }, // wordlen = 1
- { 4, 4, 2, 0, 78, NULL }, // wordlen = 2
- { 4, 4, 2, 0, -1, huff_b73_cb }, // wordlen = 3
- { 1, 1, 4, 1, -1, huff_b74_cb }, // wordlen = 4
- { 1, 2, 4, 1, -1, huff_b75_cb }, // wordlen = 5
- { 1, 1, 5, 1, 47, NULL }, // wordlen = 6
- { 1, 1, 6, 1, -1, huff_b77_cb }, // wordlen = 7
+ { 1, 4, 2, 1 }, // wordlen = 1
+ { 4, 4, 2, 0 }, // wordlen = 2
+ { 4, 4, 2, 0 }, // wordlen = 3
+ { 1, 1, 4, 1 }, // wordlen = 4
+ { 1, 2, 4, 1 }, // wordlen = 5
+ { 1, 1, 5, 1 }, // wordlen = 6
+ { 1, 1, 6, 1 }, // wordlen = 7
};
/* Huffman tables for gain control data. */
-static const uint8_t atrac3p_huff_gain_npoints1_cb[9] = {
- 1, 7, 1, 1, 1, 1, 1, 1, 2
-};
-
-static const uint8_t atrac3p_huff_gain_lev1_cb[9] = { 1, 7, 1, 0, 2, 2, 1, 2, 8 };
-static const uint8_t atrac3p_huff_gain_lev2_cb[11] = {
- 1, 9, 1, 1, 1, 1, 1, 0, 2, 0, 8
-};
-
-static const uint8_t atrac3p_huff_gain_lev3_cb[11] = {
- 1, 9, 1, 0, 3, 1, 1, 0, 2, 0, 8
-};
-
-static const uint8_t atrac3p_huff_gain_lev4_cb[11] = {
- 1, 9, 1, 1, 1, 1, 1, 0, 1, 2, 8
+static const uint8_t atrac3p_gain_cbs[][12] = {
+ { 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0 },
+ { 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0 },
+ { 1, 0, 2, 2, 1, 2, 8, 0, 0, 0, 0, 0 },
+ { 1, 1, 1, 1, 1, 0, 2, 0, 8, 0, 0, 0 },
+ { 1, 0, 3, 1, 1, 0, 2, 0, 8, 0, 0, 0 },
+ { 1, 1, 1, 1, 1, 0, 1, 2, 8, 0, 0, 0 },
+ { 0, 1, 0, 2, 11, 18, 0, 0, 0, 0, 0, 0 },
+ { 0, 1, 2, 4, 4, 4, 0, 16, 0, 0, 0, 0 },
+ { 0, 0, 0, 3, 23, 6, 0, 0, 0, 0, 0, 0 },
+ { 0, 0, 5, 3, 2, 3, 2, 16, 0, 0, 0, 0 },
+ { 1, 0, 0, 3, 2, 6, 20, 0, 0, 0, 0, 0 },
};
-static const uint8_t atrac3p_huff_gain_loc1_cb[9] = { 2, 8, 1, 2, 4, 4, 4, 0, 16 };
-
-static const uint8_t atrac3p_huff_gain_loc2_cb[8] = { 3, 8, 5, 3, 2, 3, 2, 16 };
-
-static const uint8_t atrac3p_huff_gain_loc3_cb[7] = { 2, 6, 1, 0, 2, 11, 18 };
-
-static const uint8_t atrac3p_huff_gain_loc4_cb[5] = { 4, 6, 3, 23, 6 };
-
-static const uint8_t atrac3p_huff_gain_loc5_cb[9] = { 1, 7, 1, 0, 0, 3, 2, 6, 20 };
-
static const uint8_t atrac3p_gain_xlats[] = {
/* Number of gain control points 1 - 8 entries */
0, 1, 2, 3, 4, 5, 6, 7,
};
/* Huffman tables for GHA waves data. */
-static const uint8_t atrac3p_huff_tonebands_cb[8] = { 1, 6, 1, 0, 1, 2, 4, 8 };
-static const uint8_t atrac3p_huff_numwavs1_cb[9] = { 1, 7, 1, 1, 1, 1, 1, 1, 2 };
-static const uint8_t atrac3p_huff_numwavs2_cb[8] = { 1, 6, 1, 1, 1, 1, 0, 4 };
-static const uint8_t atrac3p_huff_wav_ampsf1_cb[7] = { 4, 8, 10, 8, 6, 0, 8 };
-
-static const uint8_t atrac3p_huff_wav_ampsf2_cb[7] = { 4, 8, 11, 5, 6, 6, 4 };
-
-static const uint8_t atrac3p_huff_wav_ampsf3_cb[9] = { 2, 8, 1, 3, 3, 1, 4, 4, 16 };
-
-static const uint8_t atrac3p_huff_freq_cb[13] = {
- 1, 11, 1, 0, 0, 2, 2, 0, 9, 9, 29, 104, 100
+static const uint8_t atrac3p_tone_cbs[][12] = {
+ { 1, 0, 1, 2, 4, 8, 0, 0, 0, 0, 0, 0 },
+ { 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0 },
+ { 1, 1, 1, 1, 0, 4, 0, 0, 0, 0, 0, 0 },
+ { 0, 0, 0, 10, 8, 6, 0, 8, 0, 0, 0, 0 },
+ { 0, 0, 0, 11, 5, 6, 6, 4, 0, 0, 0, 0 },
+ { 0, 1, 3, 3, 1, 4, 4, 16, 0, 0, 0, 0 },
+ { 1, 0, 0, 2, 2, 0, 9, 9, 29,104, 100, 0 },
};
static const uint8_t atrac3p_tone_xlats[] = {