package org.jcodec.codecs.mpeg12.bitstream; import org.jcodec.common.io.BitReader; import org.jcodec.common.io.BitWriter; import java.nio.ByteBuffer; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed * under FreeBSD License * * @author The JCodec project * */ public class PictureTemporalScalableExtension implements MPEGHeader { public int reference_select_code; public int forward_temporal_reference; public int backward_temporal_reference; public static final int Picture_Temporal_Scalable_Extension = 0x10; public static PictureTemporalScalableExtension read(BitReader _in) { PictureTemporalScalableExtension ptse = new PictureTemporalScalableExtension(); ptse.reference_select_code = _in.readNBit(2); ptse.forward_temporal_reference = _in.readNBit(10); _in.read1Bit(); ptse.backward_temporal_reference = _in.readNBit(10); return ptse; } @Override public void write(ByteBuffer bb) { BitWriter bw = new BitWriter(bb); bw.writeNBit(PictureTemporalScalableExtension.Picture_Temporal_Scalable_Extension, 4); bw.writeNBit(reference_select_code, 2); bw.writeNBit(forward_temporal_reference, 10); bw.write1Bit(1); // todo: verify this bw.writeNBit(backward_temporal_reference, 10); bw.flush(); } }