@Override public void write(ByteBuffer bb) { BitWriter bw = new BitWriter(bb); bw.writeNBit(PictureDisplayExtension.Picture_Display_Extension, 4); for (int i = 0; i < frame_centre_offsets.length; i++) { Point point = frame_centre_offsets[i]; bw.writeNBit(point.getX(), 16); bw.writeNBit(point.getY(), 16); } bw.flush(); } }
public static PictureDisplayExtension read(BitReader bits, SequenceExtension se, PictureCodingExtension pce) { PictureDisplayExtension pde = new PictureDisplayExtension(); pde.frame_centre_offsets = new Point[numberOfFrameCentreOffsets(se, pce)]; for (int i = 0; i < pde.frame_centre_offsets.length; i++) { int frame_centre_horizontal_offset = bits.readNBit(16); bits.read1Bit(); int frame_centre_vertical_offset = bits.readNBit(16); bits.read1Bit(); pde.frame_centre_offsets[i] = new Point(frame_centre_horizontal_offset, frame_centre_vertical_offset); } return pde; }