initial revision
[swftools.git] / lib / lame / l3side.h
diff --git a/lib/lame/l3side.h b/lib/lame/l3side.h
new file mode 100644 (file)
index 0000000..d9461b5
--- /dev/null
@@ -0,0 +1,100 @@
+/*
+ *     Layer 3 side include file
+ *
+ *     Copyright (c) 1999 Mark Taylor
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef LAME_L3SIDE_H
+#define LAME_L3SIDE_H
+
+#include "encoder.h"
+#include "machine.h"
+
+/* Layer III side information. */
+
+typedef FLOAT8 D576[576];
+typedef int    I576[576];
+typedef FLOAT8 D192_3[192][3];
+typedef int    I192_3[192][3];
+
+
+typedef struct 
+{
+   int l[1+SBMAX_l];
+   int s[1+SBMAX_s];
+} scalefac_struct;
+
+
+typedef struct {
+       FLOAT8  l[SBMAX_l];
+       FLOAT8  s[SBMAX_s][3];
+} III_psy_xmin;
+
+typedef struct {
+    III_psy_xmin thm;
+    III_psy_xmin en;
+} III_psy_ratio;
+
+typedef struct {
+       int part2_3_length;
+       int big_values;
+       int count1;
+       int global_gain;
+       int scalefac_compress;
+       int window_switching_flag;
+       int block_type;
+       int mixed_block_flag;
+       int table_select[3];
+        int subblock_gain[3];
+        int region0_count;
+        int region1_count;
+        int preflag;
+        int scalefac_scale;
+        int count1table_select;
+
+        int part2_length;
+        int sfb_lmax;
+        int sfb_smin;
+        int count1bits;
+       /* added for LSF */
+        const int *sfb_partition_table;
+        int slen[4];
+} gr_info;
+
+typedef struct {
+       int main_data_begin; 
+       int private_bits;
+       int resvDrain_pre;
+       int resvDrain_post;
+       int scfsi[2][4];
+       struct {
+               struct gr_info_ss {
+                       gr_info tt;
+                       } ch[2];
+               } gr[2];
+       } III_side_info_t;
+
+/* Layer III scale factors. */
+/* note: there are only SBPSY_l=(SBMAX_l-1) and SBPSY_s=(SBMAX_s-1) scalefactors.
+ * Dont know why these would be dimensioned SBMAX_l and SBMAX-s */
+typedef struct {
+       int l[SBMAX_l];            /* [cb] */
+       int s[SBMAX_s][3];         /* [window][cb] */
+} III_scalefac_t;  /* [gr][ch] */
+
+#endif