Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
            }
        }