1 /* 2 * GTK plotting routines source 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_GTKANAL_H 23 #define LAME_GTKANAL_H 24 25 26 #define READ_AHEAD 40 /* number of frames to read ahead */ 27 #define MAXMPGLAG READ_AHEAD /* if the mpg123 lag becomes bigger than this 28 we have to stop */ 29 #define NUMBACK 6 /* number of frames we can back up */ 30 #define NUMPINFO (NUMBACK+READ_AHEAD+1) 31 32 33 34 struct plotting_data { 35 int frameNum; /* current frame number */ 36 int frameNum123; 37 int num_samples; /* number of pcm samples read for this frame */ 38 double frametime; /* starting time of frame, in seconds */ 39 double pcmdata[2][1600]; 40 double pcmdata2[2][1152 + 1152 - DECDELAY]; 41 double xr[2][2][576]; 42 double mpg123xr[2][2][576]; 43 double ms_ratio[2]; 44 double ms_ener_ratio[2]; 45 46 /* L,R, M and S values */ 47 double energy_save[4][BLKSIZE]; /* psymodel is one ahead */ 48 double energy[2][4][BLKSIZE]; 49 double pe[2][4]; 50 double thr[2][4][SBMAX_l]; 51 double en[2][4][SBMAX_l]; 52 double thr_s[2][4][3 * SBMAX_s]; 53 double en_s[2][4][3 * SBMAX_s]; 54 double ers_save[4]; /* psymodel is one ahead */ 55 double ers[2][4]; 56 57 double sfb[2][2][SBMAX_l]; 58 double sfb_s[2][2][3 * SBMAX_s]; 59 double LAMEsfb[2][2][SBMAX_l]; 60 double LAMEsfb_s[2][2][3 * SBMAX_s]; 61 62 int LAMEqss[2][2]; 63 int qss[2][2]; 64 int big_values[2][2]; 65 int sub_gain[2][2][3]; 66 67 double xfsf[2][2][SBMAX_l]; 68 double xfsf_s[2][2][3 * SBMAX_s]; 69 70 int over[2][2]; 71 double tot_noise[2][2]; 72 double max_noise[2][2]; 73 double over_noise[2][2]; 74 int over_SSD[2][2]; 75 int blocktype[2][2]; 76 int scalefac_scale[2][2]; 77 int preflag[2][2]; 78 int mpg123blocktype[2][2]; 79 int mixed[2][2]; 80 int mainbits[2][2]; 81 int sfbits[2][2]; 82 int LAMEmainbits[2][2]; 83 int LAMEsfbits[2][2]; 84 int framesize, stereo, js, ms_stereo, i_stereo, emph, bitrate, sampfreq, maindata; 85 int crc, padding; 86 int scfsi[2], mean_bits, resvsize; 87 int totbits; 88 }; 89 #ifndef plotting_data_defined 90 #define plotting_data_defined 91 typedef struct plotting_data plotting_data; 92 #endif 93 #if 0 94 extern plotting_data *pinfo; 95 #endif 96 #endif 97