#include "bstream.h"
#include "mp3dec.h"

typedef struct {
	uint	part2_3_length;
	uint	big_values;
	uint	global_gain;
	uint	scalefac_compress;
	uint	window_switching_flag;
	uint	block_type;
	uint	mixed_block_flag;
	uint	table_select[3];
	uint	subblock_gain[3];
	uint	region0_count;
	uint	region1_count;
	uint	preflag;
	uint	scalefac_scale;
	uint	count1table_select;
} GR_INFO;

typedef struct {
	uint	main_data_begin;
	uint	private_bits;

	uint	scfsi[2];	/* 4 bit flags [ch] */
	GR_INFO	gr[2][2];	/* [gr][ch] */
} SIDE_INFO;

typedef struct {
	int l[23];			/* [cb] */
	int s[3][13];		/* [window][cb] */
} SCALE_FACTOR;

typedef struct {
   int cbtype;			/* long=0 short=1 */
   int cbmax;			/* max crit band */
   int lb_type;			/* long block type 0 1 3 */
   int cbs0;			/* short band start index 0 3 12 (12=no shorts */
   int ncbl;			/* number long cb's 0 8 21 */
   int cbmax_s[3];		/* cbmax by individual short blocks */
} CB_INFO;

typedef struct {
	int nr[3];
	int slen[3];
	int intensity_scale;
} IS_SF_INFO;

typedef union {
	int		s;
	float	x;
} SAMPLE;
