package org.jcodec.codecs.aac.blocks;
import org.jcodec.common.io.BitReader;
/**
* This class is part of JCodec ( www.jcodec.org ) This software is distributed
* under FreeBSD License
*
* Channel pair element; reference: table 4.4.
*
* @author The JCodec project
*
*/
public class BlockCPE extends BlockICS {
private int[] ms_mask;
public void parse(BitReader _in) {
// int i, ret, common_window, ms_present = 0;
//
int common_window = _in.read1Bit();
if (common_window != 0) {
parseICSInfo(_in);
// i = cpe->ch[1].ics.use_kb_window[0];
// cpe->ch[1].ics = cpe->ch[0].ics;
// cpe->ch[1].ics.use_kb_window[1] = i;
// if (cpe->ch[1].ics.predictor_present && (ac->m4ac.object_type !=
// AOT_AAC_MAIN))
// if ((cpe->ch[1].ics.ltp.present = get_bits(gb, 1)))
// decode_ltp(ac, &cpe->ch[1].ics.ltp, gb, cpe->ch[1].ics.max_sfb);
int ms_present = _in.readNBit(2);
if (ms_present == 3) {
throw new RuntimeException("ms_present = 3 is reserved.");
} else if (ms_present != 0)
decodeMidSideStereo(_in, ms_present, 0, 0);
}
BlockICS ics1 = new BlockICS();
ics1.parse(_in);
BlockICS ics2 = new BlockICS();
ics2.parse(_in);
}
private void decodeMidSideStereo(BitReader _in, int ms_present, int numWindowGroups, int maxSfb) {
if (ms_present == 1) {
for (int idx = 0; idx < numWindowGroups * maxSfb; idx++)
ms_mask[idx] = _in.read1Bit();
}
}
}