A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd
at master 433 lines 18 kB view raw
1/* 2 * vlc.h 3 * Copyright (C) 2000-2003 Michel Lespinasse <walken@zoy.org> 4 * Copyright (C) 1999-2000 Aaron Holtzman <aholtzma@ess.engr.uvic.ca> 5 * 6 * This file is part of mpeg2dec, a free MPEG-2 video stream decoder. 7 * See http://libmpeg2.sourceforge.net/ for updates. 8 * 9 * mpeg2dec is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License as published by 11 * the Free Software Foundation; either version 2 of the License, or 12 * (at your option) any later version. 13 * 14 * mpeg2dec is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public License 20 * along with this program; if not, write to the Free Software 21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 22 * 23 * $Id$ 24 * libmpeg2 sync history: 25 * 2008-07-01 - CVS revision 1.12 26 */ 27 28#define GETWORD(bit_buf, shift, bit_ptr) \ 29do { \ 30 bit_buf |= ((bit_ptr[0] << 8) | bit_ptr[1]) << (shift); \ 31 bit_ptr += 2; \ 32} while (0) 33 34static inline void bitstream_init (mpeg2_decoder_t * decoder, 35 const uint8_t * start) 36{ 37 decoder->bitstream_buf = 38 (start[0] << 24) | (start[1] << 16) | (start[2] << 8) | start[3]; 39 decoder->bitstream_ptr = start + 4; 40 decoder->bitstream_bits = -16; 41} 42 43/* make sure that there are at least 16 valid bits in bit_buf */ 44#define NEEDBITS(bit_buf, bits, bit_ptr) \ 45do { \ 46 if (unlikely (bits > 0)) { \ 47 GETWORD (bit_buf, bits, bit_ptr); \ 48 bits -= 16; \ 49 } \ 50} while (0) 51 52/* remove num valid bits from bit_buf */ 53#define DUMPBITS(bit_buf, bits, num) \ 54do { \ 55 bit_buf <<= (num); \ 56 bits += (num); \ 57} while (0) 58 59/* take num bits from the high part of bit_buf and zero extend them */ 60#define UBITS(bit_buf,num) (((uint32_t)(bit_buf)) >> (32 - (num))) 61 62/* take num bits from the high part of bit_buf and sign extend them */ 63#define SBITS(bit_buf,num) (((int32_t)(bit_buf)) >> (32 - (num))) 64 65typedef struct { 66 uint8_t modes; 67 uint8_t len; 68} MBtab; 69 70typedef struct { 71 uint8_t delta; 72 uint8_t len; 73} MVtab; 74 75typedef struct { 76 int8_t dmv; 77 uint8_t len; 78} DMVtab; 79 80typedef struct { 81 uint8_t cbp; 82 uint8_t len; 83} CBPtab; 84 85typedef struct { 86 uint8_t size; 87 uint8_t len; 88} DCtab; 89 90typedef struct { 91 uint8_t run; 92 uint8_t level; 93 uint8_t len; 94} DCTtab; 95 96typedef struct { 97 uint8_t mba; 98 uint8_t len; 99} MBAtab; 100 101 102#define INTRA MACROBLOCK_INTRA 103#define QUANT MACROBLOCK_QUANT 104 105static const MBtab MB_I [] ICONST_ATTR = { 106 {INTRA|QUANT, 2}, {INTRA, 1} 107}; 108 109#define MC MACROBLOCK_MOTION_FORWARD 110#define CODED MACROBLOCK_PATTERN 111 112static const MBtab MB_P [] ICONST_ATTR = { 113 {INTRA|QUANT, 6}, {CODED|QUANT, 5}, {MC|CODED|QUANT, 5}, {INTRA, 5}, 114 {MC, 3}, {MC, 3}, {MC, 3}, {MC, 3}, 115 {CODED, 2}, {CODED, 2}, {CODED, 2}, {CODED, 2}, 116 {CODED, 2}, {CODED, 2}, {CODED, 2}, {CODED, 2}, 117 {MC|CODED, 1}, {MC|CODED, 1}, {MC|CODED, 1}, {MC|CODED, 1}, 118 {MC|CODED, 1}, {MC|CODED, 1}, {MC|CODED, 1}, {MC|CODED, 1}, 119 {MC|CODED, 1}, {MC|CODED, 1}, {MC|CODED, 1}, {MC|CODED, 1}, 120 {MC|CODED, 1}, {MC|CODED, 1}, {MC|CODED, 1}, {MC|CODED, 1} 121}; 122 123#define FWD MACROBLOCK_MOTION_FORWARD 124#define BWD MACROBLOCK_MOTION_BACKWARD 125#define INTER MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD 126 127static const MBtab MB_B [] ICONST_ATTR = { 128 {0, 6}, {INTRA|QUANT, 6}, 129 {BWD|CODED|QUANT, 6}, {FWD|CODED|QUANT, 6}, 130 {INTER|CODED|QUANT, 5}, {INTER|CODED|QUANT, 5}, 131 {INTRA, 5}, {INTRA, 5}, 132 {FWD, 4}, {FWD, 4}, {FWD, 4}, {FWD, 4}, 133 {FWD|CODED, 4}, {FWD|CODED, 4}, {FWD|CODED, 4}, {FWD|CODED, 4}, 134 {BWD, 3}, {BWD, 3}, {BWD, 3}, {BWD, 3}, 135 {BWD, 3}, {BWD, 3}, {BWD, 3}, {BWD, 3}, 136 {BWD|CODED, 3}, {BWD|CODED, 3}, {BWD|CODED, 3}, {BWD|CODED, 3}, 137 {BWD|CODED, 3}, {BWD|CODED, 3}, {BWD|CODED, 3}, {BWD|CODED, 3}, 138 {INTER, 2}, {INTER, 2}, {INTER, 2}, {INTER, 2}, 139 {INTER, 2}, {INTER, 2}, {INTER, 2}, {INTER, 2}, 140 {INTER, 2}, {INTER, 2}, {INTER, 2}, {INTER, 2}, 141 {INTER, 2}, {INTER, 2}, {INTER, 2}, {INTER, 2}, 142 {INTER|CODED, 2}, {INTER|CODED, 2}, {INTER|CODED, 2}, {INTER|CODED, 2}, 143 {INTER|CODED, 2}, {INTER|CODED, 2}, {INTER|CODED, 2}, {INTER|CODED, 2}, 144 {INTER|CODED, 2}, {INTER|CODED, 2}, {INTER|CODED, 2}, {INTER|CODED, 2}, 145 {INTER|CODED, 2}, {INTER|CODED, 2}, {INTER|CODED, 2}, {INTER|CODED, 2} 146}; 147 148#undef INTRA 149#undef QUANT 150#undef MC 151#undef CODED 152#undef FWD 153#undef BWD 154#undef INTER 155 156 157static const MVtab MV_4 [] ICONST_ATTR = { 158 { 3, 6}, { 2, 4}, { 1, 3}, { 1, 3}, { 0, 2}, { 0, 2}, { 0, 2}, { 0, 2} 159}; 160 161static const MVtab MV_10 [] ICONST_ATTR = { 162 { 0,10}, { 0,10}, { 0,10}, { 0,10}, { 0,10}, { 0,10}, { 0,10}, { 0,10}, 163 { 0,10}, { 0,10}, { 0,10}, { 0,10}, {15,10}, {14,10}, {13,10}, {12,10}, 164 {11,10}, {10,10}, { 9, 9}, { 9, 9}, { 8, 9}, { 8, 9}, { 7, 9}, { 7, 9}, 165 { 6, 7}, { 6, 7}, { 6, 7}, { 6, 7}, { 6, 7}, { 6, 7}, { 6, 7}, { 6, 7}, 166 { 5, 7}, { 5, 7}, { 5, 7}, { 5, 7}, { 5, 7}, { 5, 7}, { 5, 7}, { 5, 7}, 167 { 4, 7}, { 4, 7}, { 4, 7}, { 4, 7}, { 4, 7}, { 4, 7}, { 4, 7}, { 4, 7} 168}; 169 170 171static const DMVtab DMV_2 [] ICONST_ATTR = { 172 { 0, 1}, { 0, 1}, { 1, 2}, {-1, 2} 173}; 174 175 176static const CBPtab CBP_7 [] ICONST_ATTR = { 177 {0x11, 7}, {0x12, 7}, {0x14, 7}, {0x18, 7}, 178 {0x21, 7}, {0x22, 7}, {0x24, 7}, {0x28, 7}, 179 {0x3f, 6}, {0x3f, 6}, {0x30, 6}, {0x30, 6}, 180 {0x09, 6}, {0x09, 6}, {0x06, 6}, {0x06, 6}, 181 {0x1f, 5}, {0x1f, 5}, {0x1f, 5}, {0x1f, 5}, 182 {0x10, 5}, {0x10, 5}, {0x10, 5}, {0x10, 5}, 183 {0x2f, 5}, {0x2f, 5}, {0x2f, 5}, {0x2f, 5}, 184 {0x20, 5}, {0x20, 5}, {0x20, 5}, {0x20, 5}, 185 {0x07, 5}, {0x07, 5}, {0x07, 5}, {0x07, 5}, 186 {0x0b, 5}, {0x0b, 5}, {0x0b, 5}, {0x0b, 5}, 187 {0x0d, 5}, {0x0d, 5}, {0x0d, 5}, {0x0d, 5}, 188 {0x0e, 5}, {0x0e, 5}, {0x0e, 5}, {0x0e, 5}, 189 {0x05, 5}, {0x05, 5}, {0x05, 5}, {0x05, 5}, 190 {0x0a, 5}, {0x0a, 5}, {0x0a, 5}, {0x0a, 5}, 191 {0x03, 5}, {0x03, 5}, {0x03, 5}, {0x03, 5}, 192 {0x0c, 5}, {0x0c, 5}, {0x0c, 5}, {0x0c, 5}, 193 {0x01, 4}, {0x01, 4}, {0x01, 4}, {0x01, 4}, 194 {0x01, 4}, {0x01, 4}, {0x01, 4}, {0x01, 4}, 195 {0x02, 4}, {0x02, 4}, {0x02, 4}, {0x02, 4}, 196 {0x02, 4}, {0x02, 4}, {0x02, 4}, {0x02, 4}, 197 {0x04, 4}, {0x04, 4}, {0x04, 4}, {0x04, 4}, 198 {0x04, 4}, {0x04, 4}, {0x04, 4}, {0x04, 4}, 199 {0x08, 4}, {0x08, 4}, {0x08, 4}, {0x08, 4}, 200 {0x08, 4}, {0x08, 4}, {0x08, 4}, {0x08, 4}, 201 {0x0f, 3}, {0x0f, 3}, {0x0f, 3}, {0x0f, 3}, 202 {0x0f, 3}, {0x0f, 3}, {0x0f, 3}, {0x0f, 3}, 203 {0x0f, 3}, {0x0f, 3}, {0x0f, 3}, {0x0f, 3}, 204 {0x0f, 3}, {0x0f, 3}, {0x0f, 3}, {0x0f, 3} 205}; 206 207static const CBPtab CBP_9 [] ICONST_ATTR = { 208 {0, 9}, {0x00, 9}, {0x39, 9}, {0x36, 9}, 209 {0x37, 9}, {0x3b, 9}, {0x3d, 9}, {0x3e, 9}, 210 {0x17, 8}, {0x17, 8}, {0x1b, 8}, {0x1b, 8}, 211 {0x1d, 8}, {0x1d, 8}, {0x1e, 8}, {0x1e, 8}, 212 {0x27, 8}, {0x27, 8}, {0x2b, 8}, {0x2b, 8}, 213 {0x2d, 8}, {0x2d, 8}, {0x2e, 8}, {0x2e, 8}, 214 {0x19, 8}, {0x19, 8}, {0x16, 8}, {0x16, 8}, 215 {0x29, 8}, {0x29, 8}, {0x26, 8}, {0x26, 8}, 216 {0x35, 8}, {0x35, 8}, {0x3a, 8}, {0x3a, 8}, 217 {0x33, 8}, {0x33, 8}, {0x3c, 8}, {0x3c, 8}, 218 {0x15, 8}, {0x15, 8}, {0x1a, 8}, {0x1a, 8}, 219 {0x13, 8}, {0x13, 8}, {0x1c, 8}, {0x1c, 8}, 220 {0x25, 8}, {0x25, 8}, {0x2a, 8}, {0x2a, 8}, 221 {0x23, 8}, {0x23, 8}, {0x2c, 8}, {0x2c, 8}, 222 {0x31, 8}, {0x31, 8}, {0x32, 8}, {0x32, 8}, 223 {0x34, 8}, {0x34, 8}, {0x38, 8}, {0x38, 8} 224}; 225 226 227static const DCtab DC_lum_5 [] ICONST_ATTR = { 228 {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, 229 {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, 230 {0, 3}, {0, 3}, {0, 3}, {0, 3}, {3, 3}, {3, 3}, {3, 3}, {3, 3}, 231 {4, 3}, {4, 3}, {4, 3}, {4, 3}, {5, 4}, {5, 4}, {6, 5} 232}; 233 234static const DCtab DC_chrom_5 [] ICONST_ATTR = { 235 {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2}, 236 {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, 237 {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, 238 {3, 3}, {3, 3}, {3, 3}, {3, 3}, {4, 4}, {4, 4}, {5, 5} 239}; 240 241static const DCtab DC_long [] ICONST_ATTR = { 242 {6, 5}, {6, 5}, {6, 5}, {6, 5}, {6, 5}, {6, 5}, { 6, 5}, { 6, 5}, 243 {6, 5}, {6, 5}, {6, 5}, {6, 5}, {6, 5}, {6, 5}, { 6, 5}, { 6, 5}, 244 {7, 6}, {7, 6}, {7, 6}, {7, 6}, {7, 6}, {7, 6}, { 7, 6}, { 7, 6}, 245 {8, 7}, {8, 7}, {8, 7}, {8, 7}, {9, 8}, {9, 8}, {10, 9}, {11, 9} 246}; 247 248 249static const DCTtab DCT_16 [] ICONST_ATTR = { 250 {129, 0, 0}, {129, 0, 0}, {129, 0, 0}, {129, 0, 0}, 251 {129, 0, 0}, {129, 0, 0}, {129, 0, 0}, {129, 0, 0}, 252 {129, 0, 0}, {129, 0, 0}, {129, 0, 0}, {129, 0, 0}, 253 {129, 0, 0}, {129, 0, 0}, {129, 0, 0}, {129, 0, 0}, 254 { 2,18, 0}, { 2,17, 0}, { 2,16, 0}, { 2,15, 0}, 255 { 7, 3, 0}, { 17, 2, 0}, { 16, 2, 0}, { 15, 2, 0}, 256 { 14, 2, 0}, { 13, 2, 0}, { 12, 2, 0}, { 32, 1, 0}, 257 { 31, 1, 0}, { 30, 1, 0}, { 29, 1, 0}, { 28, 1, 0} 258}; 259 260static const DCTtab DCT_15 [] ICONST_ATTR = { 261 { 1,40,15}, { 1,39,15}, { 1,38,15}, { 1,37,15}, 262 { 1,36,15}, { 1,35,15}, { 1,34,15}, { 1,33,15}, 263 { 1,32,15}, { 2,14,15}, { 2,13,15}, { 2,12,15}, 264 { 2,11,15}, { 2,10,15}, { 2, 9,15}, { 2, 8,15}, 265 { 1,31,14}, { 1,31,14}, { 1,30,14}, { 1,30,14}, 266 { 1,29,14}, { 1,29,14}, { 1,28,14}, { 1,28,14}, 267 { 1,27,14}, { 1,27,14}, { 1,26,14}, { 1,26,14}, 268 { 1,25,14}, { 1,25,14}, { 1,24,14}, { 1,24,14}, 269 { 1,23,14}, { 1,23,14}, { 1,22,14}, { 1,22,14}, 270 { 1,21,14}, { 1,21,14}, { 1,20,14}, { 1,20,14}, 271 { 1,19,14}, { 1,19,14}, { 1,18,14}, { 1,18,14}, 272 { 1,17,14}, { 1,17,14}, { 1,16,14}, { 1,16,14} 273}; 274 275static const DCTtab DCT_13 [] ICONST_ATTR = { 276 { 11, 2,13}, { 10, 2,13}, { 6, 3,13}, { 4, 4,13}, 277 { 3, 5,13}, { 2, 7,13}, { 2, 6,13}, { 1,15,13}, 278 { 1,14,13}, { 1,13,13}, { 1,12,13}, { 27, 1,13}, 279 { 26, 1,13}, { 25, 1,13}, { 24, 1,13}, { 23, 1,13}, 280 { 1,11,12}, { 1,11,12}, { 9, 2,12}, { 9, 2,12}, 281 { 5, 3,12}, { 5, 3,12}, { 1,10,12}, { 1,10,12}, 282 { 3, 4,12}, { 3, 4,12}, { 8, 2,12}, { 8, 2,12}, 283 { 22, 1,12}, { 22, 1,12}, { 21, 1,12}, { 21, 1,12}, 284 { 1, 9,12}, { 1, 9,12}, { 20, 1,12}, { 20, 1,12}, 285 { 19, 1,12}, { 19, 1,12}, { 2, 5,12}, { 2, 5,12}, 286 { 4, 3,12}, { 4, 3,12}, { 1, 8,12}, { 1, 8,12}, 287 { 7, 2,12}, { 7, 2,12}, { 18, 1,12}, { 18, 1,12} 288}; 289 290static const DCTtab DCT_B14_10 [] ICONST_ATTR = { 291 { 17, 1,10}, { 6, 2,10}, { 1, 7,10}, { 3, 3,10}, 292 { 2, 4,10}, { 16, 1,10}, { 15, 1,10}, { 5, 2,10} 293}; 294 295static const DCTtab DCT_B14_8 [] ICONST_ATTR = { 296 { 65, 0, 12}, { 65, 0, 12}, { 65, 0, 12}, { 65, 0, 12}, 297 { 3, 2, 7}, { 3, 2, 7}, { 10, 1, 7}, { 10, 1, 7}, 298 { 1, 4, 7}, { 1, 4, 7}, { 9, 1, 7}, { 9, 1, 7}, 299 { 8, 1, 6}, { 8, 1, 6}, { 8, 1, 6}, { 8, 1, 6}, 300 { 7, 1, 6}, { 7, 1, 6}, { 7, 1, 6}, { 7, 1, 6}, 301 { 2, 2, 6}, { 2, 2, 6}, { 2, 2, 6}, { 2, 2, 6}, 302 { 6, 1, 6}, { 6, 1, 6}, { 6, 1, 6}, { 6, 1, 6}, 303 { 14, 1, 8}, { 1, 6, 8}, { 13, 1, 8}, { 12, 1, 8}, 304 { 4, 2, 8}, { 2, 3, 8}, { 1, 5, 8}, { 11, 1, 8} 305}; 306 307static const DCTtab DCT_B14AC_5 [] ICONST_ATTR = { 308 { 1, 3, 5}, { 5, 1, 5}, { 4, 1, 5}, 309 { 1, 2, 4}, { 1, 2, 4}, { 3, 1, 4}, { 3, 1, 4}, 310 { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, 311 {129, 0, 2}, {129, 0, 2}, {129, 0, 2}, {129, 0, 2}, 312 {129, 0, 2}, {129, 0, 2}, {129, 0, 2}, {129, 0, 2}, 313 { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, 314 { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2} 315}; 316 317static const DCTtab DCT_B14DC_5 [] ICONST_ATTR = { 318 { 1, 3, 5}, { 5, 1, 5}, { 4, 1, 5}, 319 { 1, 2, 4}, { 1, 2, 4}, { 3, 1, 4}, { 3, 1, 4}, 320 { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, 321 { 1, 1, 1}, { 1, 1, 1}, { 1, 1, 1}, { 1, 1, 1}, 322 { 1, 1, 1}, { 1, 1, 1}, { 1, 1, 1}, { 1, 1, 1}, 323 { 1, 1, 1}, { 1, 1, 1}, { 1, 1, 1}, { 1, 1, 1}, 324 { 1, 1, 1}, { 1, 1, 1}, { 1, 1, 1}, { 1, 1, 1} 325}; 326 327static const DCTtab DCT_B15_10 [] ICONST_ATTR = { 328 { 6, 2, 9}, { 6, 2, 9}, { 15, 1, 9}, { 15, 1, 9}, 329 { 3, 4,10}, { 17, 1,10}, { 16, 1, 9}, { 16, 1, 9} 330}; 331 332static const DCTtab DCT_B15_8 [] ICONST_ATTR = { 333 { 65, 0, 12}, { 65, 0, 12}, { 65, 0, 12}, { 65, 0, 12}, 334 { 8, 1, 7}, { 8, 1, 7}, { 9, 1, 7}, { 9, 1, 7}, 335 { 7, 1, 7}, { 7, 1, 7}, { 3, 2, 7}, { 3, 2, 7}, 336 { 1, 7, 6}, { 1, 7, 6}, { 1, 7, 6}, { 1, 7, 6}, 337 { 1, 6, 6}, { 1, 6, 6}, { 1, 6, 6}, { 1, 6, 6}, 338 { 5, 1, 6}, { 5, 1, 6}, { 5, 1, 6}, { 5, 1, 6}, 339 { 6, 1, 6}, { 6, 1, 6}, { 6, 1, 6}, { 6, 1, 6}, 340 { 2, 5, 8}, { 12, 1, 8}, { 1,11, 8}, { 1,10, 8}, 341 { 14, 1, 8}, { 13, 1, 8}, { 4, 2, 8}, { 2, 4, 8}, 342 { 3, 1, 5}, { 3, 1, 5}, { 3, 1, 5}, { 3, 1, 5}, 343 { 3, 1, 5}, { 3, 1, 5}, { 3, 1, 5}, { 3, 1, 5}, 344 { 2, 2, 5}, { 2, 2, 5}, { 2, 2, 5}, { 2, 2, 5}, 345 { 2, 2, 5}, { 2, 2, 5}, { 2, 2, 5}, { 2, 2, 5}, 346 { 4, 1, 5}, { 4, 1, 5}, { 4, 1, 5}, { 4, 1, 5}, 347 { 4, 1, 5}, { 4, 1, 5}, { 4, 1, 5}, { 4, 1, 5}, 348 { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, 349 { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, 350 { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, 351 { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, 352 { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, 353 { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, 354 { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, 355 { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, { 2, 1, 3}, 356 {129, 0, 4}, {129, 0, 4}, {129, 0, 4}, {129, 0, 4}, 357 {129, 0, 4}, {129, 0, 4}, {129, 0, 4}, {129, 0, 4}, 358 {129, 0, 4}, {129, 0, 4}, {129, 0, 4}, {129, 0, 4}, 359 {129, 0, 4}, {129, 0, 4}, {129, 0, 4}, {129, 0, 4}, 360 { 1, 3, 4}, { 1, 3, 4}, { 1, 3, 4}, { 1, 3, 4}, 361 { 1, 3, 4}, { 1, 3, 4}, { 1, 3, 4}, { 1, 3, 4}, 362 { 1, 3, 4}, { 1, 3, 4}, { 1, 3, 4}, { 1, 3, 4}, 363 { 1, 3, 4}, { 1, 3, 4}, { 1, 3, 4}, { 1, 3, 4}, 364 { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, 365 { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, 366 { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, 367 { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, 368 { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, 369 { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, 370 { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, 371 { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, 372 { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, 373 { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, 374 { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, 375 { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, 376 { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, 377 { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, 378 { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, 379 { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, { 1, 1, 2}, 380 { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, 381 { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, 382 { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, 383 { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, 384 { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, 385 { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, 386 { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, 387 { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, { 1, 2, 3}, 388 { 1, 4, 5}, { 1, 4, 5}, { 1, 4, 5}, { 1, 4, 5}, 389 { 1, 4, 5}, { 1, 4, 5}, { 1, 4, 5}, { 1, 4, 5}, 390 { 1, 5, 5}, { 1, 5, 5}, { 1, 5, 5}, { 1, 5, 5}, 391 { 1, 5, 5}, { 1, 5, 5}, { 1, 5, 5}, { 1, 5, 5}, 392 { 10, 1, 7}, { 10, 1, 7}, { 2, 3, 7}, { 2, 3, 7}, 393 { 11, 1, 7}, { 11, 1, 7}, { 1, 8, 7}, { 1, 8, 7}, 394 { 1, 9, 7}, { 1, 9, 7}, { 1,12, 8}, { 1,13, 8}, 395 { 3, 3, 8}, { 5, 2, 8}, { 1,14, 8}, { 1,15, 8} 396}; 397 398 399static const MBAtab MBA_5 [] ICONST_ATTR = { 400 {6, 5}, {5, 5}, {4, 4}, {4, 4}, {3, 4}, {3, 4}, 401 {2, 3}, {2, 3}, {2, 3}, {2, 3}, {1, 3}, {1, 3}, {1, 3}, {1, 3}, 402 {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, 403 {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 1} 404}; 405 406static const MBAtab MBA_11 [] ICONST_ATTR = { 407 {32, 11}, {31, 11}, {30, 11}, {29, 11}, 408 {28, 11}, {27, 11}, {26, 11}, {25, 11}, 409 {24, 11}, {23, 11}, {22, 11}, {21, 11}, 410 {20, 10}, {20, 10}, {19, 10}, {19, 10}, 411 {18, 10}, {18, 10}, {17, 10}, {17, 10}, 412 {16, 10}, {16, 10}, {15, 10}, {15, 10}, 413 {14, 8}, {14, 8}, {14, 8}, {14, 8}, 414 {14, 8}, {14, 8}, {14, 8}, {14, 8}, 415 {13, 8}, {13, 8}, {13, 8}, {13, 8}, 416 {13, 8}, {13, 8}, {13, 8}, {13, 8}, 417 {12, 8}, {12, 8}, {12, 8}, {12, 8}, 418 {12, 8}, {12, 8}, {12, 8}, {12, 8}, 419 {11, 8}, {11, 8}, {11, 8}, {11, 8}, 420 {11, 8}, {11, 8}, {11, 8}, {11, 8}, 421 {10, 8}, {10, 8}, {10, 8}, {10, 8}, 422 {10, 8}, {10, 8}, {10, 8}, {10, 8}, 423 { 9, 8}, { 9, 8}, { 9, 8}, { 9, 8}, 424 { 9, 8}, { 9, 8}, { 9, 8}, { 9, 8}, 425 { 8, 7}, { 8, 7}, { 8, 7}, { 8, 7}, 426 { 8, 7}, { 8, 7}, { 8, 7}, { 8, 7}, 427 { 8, 7}, { 8, 7}, { 8, 7}, { 8, 7}, 428 { 8, 7}, { 8, 7}, { 8, 7}, { 8, 7}, 429 { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, 430 { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, 431 { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, 432 { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7} 433};