public static PictureSpatialScalableExtension read(BitReader inb) { PictureSpatialScalableExtension psse = new PictureSpatialScalableExtension(); psse.lower_layer_temporal_reference = inb.readNBit(10); inb.read1Bit(); psse.lower_layer_horizontal_offset = inb.readNBit(15); inb.read1Bit(); psse.lower_layer_vertical_offset = inb.readNBit(15); psse.spatial_temporal_weight_code_table_index = inb.readNBit(2); psse.lower_layer_progressive_frame = inb.read1Bit(); psse.lower_layer_deinterlaced_field_select = inb.read1Bit(); return(psse); }
public static void readExtension(MemoryStream bb, PictureHeader ph, SequenceHeader sh) { ph.m_hasExtensions = true; BitReader inb = new BitReader(bb); int extType = inb.readNBit(4); switch (extType) { case Quant_Matrix_Extension: ph.quantMatrixExtension = QuantMatrixExtension.read(inb); break; case Copyright_Extension: ph.copyrightExtension = CopyrightExtension.read(inb); break; case Picture_Display_Extension: ph.pictureDisplayExtension = PictureDisplayExtension.read(inb, sh.sequenceExtension, ph.pictureCodingExtension); break; case Picture_Coding_Extension: ph.pictureCodingExtension = PictureCodingExtension.read(inb); break; case Picture_Spatial_Scalable_Extension: ph.pictureSpatialScalableExtension = PictureSpatialScalableExtension.read(inb); break; case Picture_Temporal_Scalable_Extension: ph.pictureTemporalScalableExtension = PictureTemporalScalableExtension.read(inb); break; default: throw new Exception("Unsupported extension: " + extType); } }