- /*
- (c) Copyright 1998, 1999 - 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.
- */
- /**********************************************************************
- * 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 L3_SIDE_H
- #define L3_SIDE_H
- /* Layer III side information. */
- /* #define CBLIMIT_SHORT 12 */
- void l3deco();
- 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