comparison decoders/mpglib/common.c @ 292:a9e211c3faa4

Cleanups and audio format determination.
author Ryan C. Gordon <icculus@icculus.org>
date Sun, 17 Mar 2002 21:16:33 +0000
parents 9e7f9e09ea0e
children
comparison
equal deleted inserted replaced
291:a48e886d456f 292:a9e211c3faa4
23 { {0,32,48,56,64,80,96,112,128,144,160,176,192,224,256,}, 23 { {0,32,48,56,64,80,96,112,128,144,160,176,192,224,256,},
24 {0,8,16,24,32,40,48,56,64,80,96,112,128,144,160,}, 24 {0,8,16,24,32,40,48,56,64,80,96,112,128,144,160,},
25 {0,8,16,24,32,40,48,56,64,80,96,112,128,144,160,} } 25 {0,8,16,24,32,40,48,56,64,80,96,112,128,144,160,} }
26 }; 26 };
27 27
28 long freqs[9] = { 44100, 48000, 32000, 28 long mpglib_freqs[9] = { 44100, 48000, 32000,
29 22050, 24000, 16000 , 29 22050, 24000, 16000 ,
30 11025 , 12000 , 8000 }; 30 11025 , 12000 , 8000 };
31 31
32 int bitindex; 32 int bitindex;
33 unsigned char *wordpointer; 33 unsigned char *wordpointer;
34 unsigned char *pcm_sample; 34 unsigned char *pcm_sample;
35 int pcm_point = 0; 35 int pcm_point = 0;
107 #if 0 107 #if 0
108 fr->jsbound = (fr->mode == MPG_MD_JOINT_STEREO) ? 108 fr->jsbound = (fr->mode == MPG_MD_JOINT_STEREO) ?
109 (fr->mode_ext<<2)+4 : 32; 109 (fr->mode_ext<<2)+4 : 32;
110 #endif 110 #endif
111 fr->framesize = (long) tabsel_123[fr->lsf][0][fr->bitrate_index] * 12000; 111 fr->framesize = (long) tabsel_123[fr->lsf][0][fr->bitrate_index] * 12000;
112 fr->framesize /= freqs[fr->sampling_frequency]; 112 fr->framesize /= mpglib_freqs[fr->sampling_frequency];
113 fr->framesize = ((fr->framesize+fr->padding)<<2)-4; 113 fr->framesize = ((fr->framesize+fr->padding)<<2)-4;
114 #else 114 #else
115 Sound_SetError("MPGLIB: Not supported!"); 115 Sound_SetError("MPGLIB: Not supported!");
116 #endif 116 #endif
117 break; 117 break;
120 #if 0 120 #if 0
121 fr->jsbound = (fr->mode == MPG_MD_JOINT_STEREO) ? 121 fr->jsbound = (fr->mode == MPG_MD_JOINT_STEREO) ?
122 (fr->mode_ext<<2)+4 : fr->II_sblimit; 122 (fr->mode_ext<<2)+4 : fr->II_sblimit;
123 #endif 123 #endif
124 fr->framesize = (long) tabsel_123[fr->lsf][1][fr->bitrate_index] * 144000; 124 fr->framesize = (long) tabsel_123[fr->lsf][1][fr->bitrate_index] * 144000;
125 fr->framesize /= freqs[fr->sampling_frequency]; 125 fr->framesize /= mpglib_freqs[fr->sampling_frequency];
126 fr->framesize += fr->padding - 4; 126 fr->framesize += fr->padding - 4;
127 #else 127 #else
128 Sound_SetError("MPGLIB: Not supported!"); 128 Sound_SetError("MPGLIB: Not supported!");
129 #endif 129 #endif
130 break; 130 break;
140 #if 0 140 #if 0
141 if(fr->error_protection) 141 if(fr->error_protection)
142 ssize += 2; 142 ssize += 2;
143 #endif 143 #endif
144 fr->framesize = (long) tabsel_123[fr->lsf][2][fr->bitrate_index] * 144000; 144 fr->framesize = (long) tabsel_123[fr->lsf][2][fr->bitrate_index] * 144000;
145 fr->framesize /= freqs[fr->sampling_frequency]<<(fr->lsf); 145 fr->framesize /= mpglib_freqs[fr->sampling_frequency]<<(fr->lsf);
146 fr->framesize = fr->framesize + fr->padding - 4; 146 fr->framesize = fr->framesize + fr->padding - 4;
147 break; 147 break;
148 default: 148 default:
149 Sound_SetError("MPGLIB: Unknown layer type."); 149 Sound_SetError("MPGLIB: Unknown layer type.");
150 return (0); 150 return (0);
158 static char *modes[4] = { "Stereo", "Joint-Stereo", "Dual-Channel", "Single-Channel" }; 158 static char *modes[4] = { "Stereo", "Joint-Stereo", "Dual-Channel", "Single-Channel" };
159 static char *layers[4] = { "Unknown" , "I", "II", "III" }; 159 static char *layers[4] = { "Unknown" , "I", "II", "III" };
160 160
161 fprintf(stderr,"MPEG %s, Layer: %s, Freq: %ld, mode: %s, modext: %d, BPF : %d\n", 161 fprintf(stderr,"MPEG %s, Layer: %s, Freq: %ld, mode: %s, modext: %d, BPF : %d\n",
162 fr->mpeg25 ? "2.5" : (fr->lsf ? "2.0" : "1.0"), 162 fr->mpeg25 ? "2.5" : (fr->lsf ? "2.0" : "1.0"),
163 layers[fr->lay],freqs[fr->sampling_frequency], 163 layers[fr->lay],mpglib_freqs[fr->sampling_frequency],
164 modes[fr->mode],fr->mode_ext,fr->framesize+4); 164 modes[fr->mode],fr->mode_ext,fr->framesize+4);
165 fprintf(stderr,"Channels: %d, copyright: %s, original: %s, CRC: %s, emphasis: %d.\n", 165 fprintf(stderr,"Channels: %d, copyright: %s, original: %s, CRC: %s, emphasis: %d.\n",
166 fr->stereo,fr->copyright?"Yes":"No", 166 fr->stereo,fr->copyright?"Yes":"No",
167 fr->original?"Yes":"No",fr->error_protection?"Yes":"No", 167 fr->original?"Yes":"No",fr->error_protection?"Yes":"No",
168 fr->emphasis); 168 fr->emphasis);
177 177
178 fprintf(stderr,"MPEG %s layer %s, %d kbit/s, %ld Hz %s\n", 178 fprintf(stderr,"MPEG %s layer %s, %d kbit/s, %ld Hz %s\n",
179 fr->mpeg25 ? "2.5" : (fr->lsf ? "2.0" : "1.0"), 179 fr->mpeg25 ? "2.5" : (fr->lsf ? "2.0" : "1.0"),
180 layers[fr->lay], 180 layers[fr->lay],
181 tabsel_123[fr->lsf][fr->lay-1][fr->bitrate_index], 181 tabsel_123[fr->lsf][fr->lay-1][fr->bitrate_index],
182 freqs[fr->sampling_frequency], modes[fr->mode]); 182 mpglib_freqs[fr->sampling_frequency], modes[fr->mode]);
183 } 183 }
184 184
185 #endif 185 #endif
186 186
187 unsigned int getbits(int number_of_bits) 187 unsigned int getbits(int number_of_bits)