1 /* 2 * Layer 3 side include file 3 * 4 * Copyright (c) 1999 Mark Taylor 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Library General Public 8 * License as published by the Free Software Foundation; either 9 * version 2 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Library General Public License for more details. 15 * 16 * You should have received a copy of the GNU Library General Public 17 * License along with this library; if not, write to the 18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 19 * Boston, MA 02111-1307, USA. 20 */ 21 22 #ifndef LAME_L3SIDE_H 23 #define LAME_L3SIDE_H 24 25 /* max scalefactor band, max(SBMAX_l, SBMAX_s*3, (SBMAX_s-3)*3+8) */ 26 #define SFBMAX (SBMAX_s*3) 27 28 /* Layer III side information. */ 29 typedef struct { 30 int l[1 + SBMAX_l]; 31 int s[1 + SBMAX_s]; 32 int psfb21[1 + PSFB21]; 33 int psfb12[1 + PSFB12]; 34 } scalefac_struct; 35 36 37 typedef struct { 38 FLOAT l[SBMAX_l]; 39 FLOAT s[SBMAX_s][3]; 40 } III_psy_xmin; 41 42 typedef struct { 43 III_psy_xmin thm; 44 III_psy_xmin en; 45 } III_psy_ratio; 46 47 typedef struct { 48 FLOAT xr[576]; 49 int l3_enc[576]; 50 int scalefac[SFBMAX]; 51 FLOAT xrpow_max; 52 53 int part2_3_length; 54 int big_values; 55 int count1; 56 int global_gain; 57 int scalefac_compress; 58 int block_type; 59 int mixed_block_flag; 60 int table_select[3]; 61 int subblock_gain[3 + 1]; 62 int region0_count; 63 int region1_count; 64 int preflag; 65 int scalefac_scale; 66 int count1table_select; 67 68 int part2_length; 69 int sfb_lmax; 70 int sfb_smin; 71 int psy_lmax; 72 int sfbmax; 73 int psymax; 74 int sfbdivide; 75 int width[SFBMAX]; 76 int window[SFBMAX]; 77 int count1bits; 78 /* added for LSF */ 79 const int *sfb_partition_table; 80 int slen[4]; 81 82 int max_nonzero_coeff; 83 char energy_above_cutoff[SFBMAX]; 84 } gr_info; 85 86 typedef struct { 87 gr_info tt[2][2]; 88 int main_data_begin; 89 int private_bits; 90 int resvDrain_pre; 91 int resvDrain_post; 92 int scfsi[2][4]; 93 } III_side_info_t; 94 95 #endif 96