public override bool Parse(Mpeg4Parser parser)
        {
            if (!base.Parse(parser))
            {
                return(false);
            }

            return(true);
        }
        public override bool Parse(Mpeg4Parser parser)
        {
            if (!base.Parse(parser) || MacroblockNumberLength == 0)
            {
                return(false);
            }

            parser.GetBits(MacroblockNumberLength, Attribute.MacroBlockNumber);

            return(true);
        }
        public override bool Parse(Mpeg4Parser parser)
        {
            if (!base.Parse(parser))
            {
                return(false);
            }

            /*byte textureSpatialLayerId = (byte)*/ parser.GetBits(5, Attribute.NotSupported);

            return(true);
        }
示例#4
0
        public override bool Parse(Mpeg4Parser parser)
        {
            if (!base.Parse(parser))
            {
                return(false);
            }

            parser.GetBits(5, Attribute.TextureSnrID);

            return(true);
        }
示例#5
0
        public override bool Parse(Mpeg4Parser parser)
        {
            if (!base.Parse(parser))
            {
                return(false);
            }

            parser.GetByte(Attribute.ProfileLevelIndication);

            return(Valid);
        }
示例#6
0
        public override bool Parse(Mpeg4Parser parser)
        {
            if (!base.Parse(parser))
            {
                return(false);
            }

            /*uint textureShapeLayerId = */ parser.GetBits(5, Attribute.NotSupported);

            if (!parser.GetMarkerBit())
            {
                return(false);
            }

            return(true);
        }
        public override bool Parse(Mpeg4Parser parser)
        {
            if (!base.Parse(parser))
            {
                return(false);
            }

            // in the parse end method the DataBlock property is set to the correct value.
            // until that time, the DataBlock hold the previous header.
            VisualObject visualObject = Parent as VisualObject;

            uint verId = 0;

            if (visualObject != null)
            {
                verId = visualObject.VersionId;
            }
            else
            {
                if ((parser.ShowBits(19) & 1) == 1)
                {
                    verId = 0;
                }
            }

            if (verId != 1)
            {
                /*bool tilingDisable = */ parser.GetBit();
                parser.GetBit();
            }

            /*uint textureObjectId = */ parser.GetBits(16, Attribute.TextureObjectID);
            if (!parser.GetMarkerBit())
            {
                return(false);
            }

            /*bool waveletFilterType = */ parser.GetBit();
            /*bool waveletDownload = */ parser.GetBit();
            /*byte waveletDecompositionLevels = (byte)*/ parser.GetBits(4);
            /*bool scanDirection = */ parser.GetBit();
            /*bool startCodeEnabled = */ parser.GetBit();
            /*byte textureObjectLayerShape = (byte)*/ parser.GetBits(2, Attribute.TextureObjectLayerShape);
            /*byte quantisationType = (byte)*/ parser.GetBits(2);

            return(true);
        }
示例#8
0
        public override bool Parse(Mpeg4Parser parser)
        {
            if (!base.Parse(parser))
            {
                return(false);
            }

            // In MPEG-4 every VOP is a child of a VOL header
            VideoObjectLayer VOL = Vol;

            /*int codingType = (int)*/ parser.GetBits(2, Attribute.CodingType);
            int moduloTimeBase = 0;

            bool code;

            while ((code = parser.GetBit()) == true)
            {
                moduloTimeBase += code ? 1 : 0;
            }

            if (!parser.GetMarkerBit())
            {
                // Does not appear to be a mp4 VOP header
                return(false);
            }
            if (VOL != null && VOL.VopTimeIncrementResolutionBits != 0)
            {
                /*uint timeIncrement = */ parser.GetBits(VOL.VopTimeIncrementResolutionBits);
            }
            else
            {
            }

            if (!parser.GetMarkerBit())
            {
                // Does not appear to be a mp4 VOP header
                return(false);
            }

            return(true);
        }