MCPcopy Create free account
hub / github.com/zhuker/lamejs / encodeSideInfo2

Method encodeSideInfo2

src/main/java/mp3/BitStream.java:250–413  ·  view source on GitHub ↗
(final LameGlobalFlags gfp,
			final int bitsPerFrame)

Source from the content-addressed store, hash-verified

248 }
249
250 private void encodeSideInfo2(final LameGlobalFlags gfp,
251 final int bitsPerFrame) {
252 final LameInternalFlags gfc = gfp.internal_flags;
253 IIISideInfo l3_side;
254 int gr, ch;
255
256 l3_side = gfc.l3_side;
257 gfc.header[gfc.h_ptr].ptr = 0;
258 Arrays.fill(gfc.header[gfc.h_ptr].buf, 0, gfc.sideinfo_len, (byte) 0);
259 if (gfp.out_samplerate < 16000)
260 writeheader(gfc, 0xffe, 12);
261 else
262 writeheader(gfc, 0xfff, 12);
263 writeheader(gfc, (gfp.version), 1);
264 writeheader(gfc, 4 - 3, 2);
265 writeheader(gfc, (!gfp.error_protection ? 1 : 0), 1);
266 writeheader(gfc, (gfc.bitrate_index), 4);
267 writeheader(gfc, (gfc.samplerate_index), 2);
268 writeheader(gfc, (gfc.padding), 1);
269 writeheader(gfc, (gfp.extension), 1);
270 writeheader(gfc, (gfp.mode.ordinal()), 2);
271 writeheader(gfc, (gfc.mode_ext), 2);
272 writeheader(gfc, (gfp.copyright), 1);
273 writeheader(gfc, (gfp.original), 1);
274 writeheader(gfc, (gfp.emphasis), 2);
275 if (gfp.error_protection) {
276 writeheader(gfc, 0, 16); /* dummy */
277 }
278
279 if (gfp.version == 1) {
280 /* MPEG1 */
281 assert (l3_side.main_data_begin >= 0);
282 writeheader(gfc, (l3_side.main_data_begin), 9);
283
284 if (gfc.channels_out == 2)
285 writeheader(gfc, l3_side.private_bits, 3);
286 else
287 writeheader(gfc, l3_side.private_bits, 5);
288
289 for (ch = 0; ch < gfc.channels_out; ch++) {
290 int band;
291 for (band = 0; band < 4; band++) {
292 writeheader(gfc, l3_side.scfsi[ch][band], 1);
293 }
294 }
295
296 for (gr = 0; gr < 2; gr++) {
297 for (ch = 0; ch < gfc.channels_out; ch++) {
298 final GrInfo gi = l3_side.tt[gr][ch];
299 writeheader(gfc, gi.part2_3_length + gi.part2_length, 12);
300 writeheader(gfc, gi.big_values / 2, 9);
301 writeheader(gfc, gi.global_gain, 8);
302 writeheader(gfc, gi.scalefac_compress, 4);
303
304 if (gi.block_type != Encoder.NORM_TYPE) {
305 writeheader(gfc, 1, 1); /* window_switching_flag */
306 writeheader(gfc, gi.block_type, 2);
307 writeheader(gfc, gi.mixed_block_flag, 1);

Callers 1

format_bitstreamMethod · 0.95

Calls 2

writeheaderMethod · 0.95
CRC_writeheaderMethod · 0.95

Tested by

no test coverage detected