• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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