/* (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-04 Andre Piotrowski - reformatted, slimmed */ /********************************************************************** * ISO MPEG Audio Subgroup Software Simulation Group (1996) * ISO 13818-3 MPEG-2 Audio Encoder - Lower Sampling Frequency Extension * * $Id: l3side.h,v 1.1 1996/02/14 04:04:23 rowlands Exp $ * * $Log: l3side.h,v $ * Revision 1.1 1996/02/14 04:04:23 rowlands * Initial revision * * Received from Mike Coleman **********************************************************************/ /********************************************************************** * date programmers comment * * 25. 6.92 Toshiyuki Ishino Ver 1.0 * * 29.10.92 Masahiro Iwadare Ver 2.0 * * 17. 4.93 Masahiro Iwadare Updated for IS Modification * * * *********************************************************************/ #ifndef __L3SIDE__ #define __L3SIDE__ /* #define CBLIMIT_SHORT 12 */ /* void l3deco (void); */ /* Layer III side information. */ /* typedef double D576[576]; */ /* typedef int I576[576]; */ /* typedef double D192_3[192][3]; */ /* typedef int I192_3[192][3]; */ /* typedef char C192_3[192][3]; */ /* typedef struct { unsigned cbl_max; unsigned cbs_start; } III_cb_info; */ typedef struct { double l[2][2][21]; double s[2][2][12][3]; } III_psy_ratio; /* typedef struct { double l[2][2][21]; double s[2][2][12][3]; } III_psy_xmin;*/ /* typedef struct { double xr[576]; double xr_s[3][192]; double xmin[21]; double xmin_s[3][192]; int ix[576]; int ix_s[3][192]; } III_input3;*/ /* ch */ typedef struct { unsigned part2_3_length; unsigned big_values; unsigned count1; unsigned global_gain; unsigned scalefac_compress; unsigned window_switching_flag; unsigned block_type; unsigned mixed_block_flag; unsigned table_select[3]; int /* unsigned */ subblock_gain[3]; unsigned region0_count; unsigned region1_count; unsigned preflag; unsigned scalefac_scale; unsigned count1table_select; unsigned part2_length; unsigned sfb_lmax; unsigned sfb_smax; unsigned address1; unsigned address2; unsigned address3; double quantizerStepSize; /* added for LSF */ unsigned *sfb_partition_table; unsigned slen[4]; } gr_info; typedef struct { int main_data_begin; /* unsigned -> int */ unsigned private_bits; int resvDrain; unsigned scfsi[2][4]; struct { struct gr_info_s { gr_info tt; } ch[2]; } gr[2]; } III_side_info_t; /* Layer III scale factors. */ typedef struct { int l[2][2][22]; /* [cb] */ int s[2][2][13][3]; /* [window][cb] */ } III_scalefac_t; /* [gr][ch] */ #endif /* __L3SIDE__ */