Version 0.94.1 of the bladeenc mp3 encoder
[swftools.git] / lib / bladeenc / tables.h
diff --git a/lib/bladeenc/tables.h b/lib/bladeenc/tables.h
new file mode 100644 (file)
index 0000000..76a2849
--- /dev/null
@@ -0,0 +1,173 @@
+/*
+                       (c) Copyright 1998-2000 - Tord Jansson
+                       ======================================
+
+               This file is part of the BladeEnc MP3 Encoder, based on
+               ISO's reference code for MPEG Layer 3 compression, and might
+               contain smaller or larger sections that are directly taken
+               from ISO's reference code.
+
+               All changes to the ISO reference code herein are either
+               copyrighted by Tord Jansson (tord.jansson@swipnet.se)
+               or sublicensed to Tord Jansson by a third party.
+
+       BladeEnc is free software; you can redistribute this file
+       and/or modify it under the terms of the GNU Lesser General Public
+       License as published by the Free Software Foundation; either
+       version 2.1 of the License, or (at your option) any later version.
+
+
+
+       ------------    Changes    ------------
+
+       2000-12-06  Andre Piotrowski
+
+       -       reformatted
+*/
+#ifndef                __TABLES__
+#define                __TABLES__
+
+
+
+
+
+#define                NEW_L3PARM_TABLES               1
+#define                CALC_NORM                               0
+
+
+
+
+
+#define                CBANDS                                  63
+#define                CBANDS_s                                42
+
+
+
+
+
+#if NEW_L3PARM_TABLES
+
+
+       typedef         struct
+                               {
+                                       int                                             cbmax_l;   /* number of valid entries */
+                                       int                                             numlines_l[CBANDS];
+                                       double                                  minval    [CBANDS];
+                                       double                                  qthr_l    [CBANDS];
+#if !CALC_NORM   /* do we compute more exact values? */
+                                       double                                  norm_l    [CBANDS];
+#endif
+                                       double                                  bval_l    [CBANDS];
+                               }                                               l3_long_data;
+
+
+       typedef         struct
+                               {
+                                       int                                             cbmax_s;   /* number of valid entries */
+                                       int                                             numlines_s[CBANDS_s];
+                                       double                                  qthr_s    [CBANDS_s];
+#if !CALC_NORM   /* do we compute more exact values? */
+                                       double                                  norm_s    [CBANDS_s];
+#endif
+                                       double                                  SNR_s     [CBANDS_s];
+                                       double                                  bval_s    [CBANDS_s];
+                               }                                               l3_short_data;
+
+
+       typedef         struct
+                               {
+                                       int                                             cbw_l     [CBANDS];
+                                       int                                             bu_l      [CBANDS];
+                                       int                                             bo_l      [CBANDS];
+                                       double                                  w1_l      [CBANDS];
+                                       double                                  w2_l      [CBANDS];
+                               }                                               l3_long_thres;
+
+
+       typedef         struct
+                               {
+                                       int                                             cbw_s     [CBANDS_s];
+                                       int                                             bu_s      [CBANDS_s];
+                                       int                                             bo_s      [CBANDS_s];
+                                       double                                  w1_s      [CBANDS_s];
+                                       double                                  w2_s      [CBANDS_s];
+                               }                                               l3_short_thres;
+
+
+       typedef         struct
+                               {
+                                       l3_long_data                    long_data;
+                                       l3_short_data                   short_data;
+                                       l3_long_thres                   long_thres;
+                                       l3_short_thres                  short_thres;
+                               }                                               l3_parm_block;
+
+
+       extern          l3_parm_block                   l3_parm[3];
+
+
+#else   /* NEW_L3PARM_TABLES */
+
+
+       typedef         struct
+                               {
+                               /*      int                                             no; */
+                                       int                                             lines;
+                                       double                                  minVal;
+                                       double                                  qthr;
+                                       double                                  norm;
+                                       double                                  bVal;
+                               }                                               psyDataElem;
+
+
+       typedef         struct
+                               {
+                               /*      int                                             no; */
+                                       int                                             lines;
+                                       double                                  qthr;
+                                       double                                  norm;
+                                       double                                  snr;
+                                       double                                  bVal;
+                               }                                               psyDataElem2;
+
+       typedef         struct
+                               {
+                                       int                                             cbw;
+                                       int                                             bu;
+                                       int                                             bo;
+                                       float                                   w1;
+                                       float                                   w2;
+                               }                                               psyDataElem3;
+
+
+       extern          psyDataElem                             psy_longBlock_48000_61[62];
+       extern          psyDataElem                             psy_longBlock_44100_62[63];
+       extern          psyDataElem                             psy_longBlock_32000_58[59];
+
+       extern          psyDataElem2                    psy_shortBlock_48000_37[38];
+       extern          psyDataElem2                    psy_shortBlock_44100_38[39];
+       extern          psyDataElem2                    psy_shortBlock_32000_41[42];
+
+       extern          psyDataElem3                    psy_data3_48000_20[21];
+       extern          psyDataElem3                    psy_data3_44100_20[21];
+       extern          psyDataElem3                    psy_data3_32000_20[21];
+
+       extern          psyDataElem3                    psy_data4_48000_11[12];
+       extern          psyDataElem3                    psy_data4_44100_11[12];
+       extern          psyDataElem3                    psy_data4_32000_11[12];
+
+
+#endif   /* NEW_L3PARM_TABLES */
+
+
+
+
+
+extern         double                                  enwindow[512];
+extern         char                                    aHuffcode[1498][36];
+
+
+
+
+
+#endif         /* __TABLES__ */