38 int bs_code, sr_code, bps_code;
41 if ((
get_bits(gb, 15) & 0x7FFF) != 0x7FFC) {
62 "invalid channel mode: %d\n", fi->
ch_mode);
68 if (bps_code == 3 || bps_code == 7) {
70 "invalid sample size code (%d)\n",
79 "broken stream, invalid padding\n");
87 "sample/frame number invalid; utf8 fscked\n");
94 "reserved blocksize code: 0\n");
96 }
else if (bs_code == 6) {
98 }
else if (bs_code == 7) {
107 }
else if (sr_code == 12) {
108 fi->samplerate =
get_bits(gb, 8) * 1000;
109 }
else if (sr_code == 13) {
111 }
else if (sr_code == 14) {
112 fi->samplerate =
get_bits(gb, 16) * 10;
115 "illegal sample rate code %d\n",
125 "header crc mismatch\n");
141 count += ch * ((7+bps+7)/8);
144 count += (( 2*bps+1) * blocksize + 7) / 8;
146 count += ( ch*bps * blocksize + 7) / 8;