Пример #1
0
        /// <summary>
        /// Returns whether the given <paramref name="headerStartCode"/> is known and allowed to
        /// follow the <paramref name="mpeg4HeaderName"/> header.
        /// </summary>
        /// <param name="headerStartCode">the header start code field</param>
        /// <param name="previousHeader">the header that lies before the <paramref name="headerStartCode"/></param>
        /// <returns>true if it is a known header start code and allowed to follow <paramref name="headerStartCode"/>,
        /// false otherwise</returns>
        public static bool IsKnownHeaderStartCode(this uint headerStartCode, Mpeg4Header previousHeader)
        {
            bool shortVideoHeader = ((headerStartCode & 0xFC00) == 0x8000);

            if (shortVideoHeader)
            {
                return(true);
            }

            HashSet <uint> allowedNextHeaders;

            if (previousHeader != null && _allowedNextHeaders.TryGetValue(previousHeader.HeaderName, out allowedNextHeaders))
            {
                return(allowedNextHeaders.Contains(headerStartCode));
            }

            return(headerStartCode.IsKnownHeaderStartCode());
        }
        public override bool IsSuitableParent(Mpeg4Header parent)
        {
            if (base.IsSuitableParent(parent) == false)
            {
                return(false);
            }

            // A result can only contain H263 short video VOP's or VOP's and VOL's.
            // Search the result for the type of headers in it.
            Mpeg4Header header = Root.FindChildren(new Mpeg4HeaderName[] { Mpeg4HeaderName.Vop, Mpeg4HeaderName.VideoObjectLayer, Mpeg4HeaderName.VopWithShortHeader }, true);

            if (header == null)
            {
                return(true);
            }

            return(header.HeaderName == Mpeg4HeaderName.VopWithShortHeader);
        }
 public Stuffing(Mpeg4Header previousHeader)
     : base(previousHeader, Mpeg4HeaderName.Stuffing)
 {
 }
 public VopWithShortHeader(Mpeg4Header previousHeader)
     : base(previousHeader, Mpeg4HeaderName.VopWithShortHeader)
 {
 }
Пример #5
0
 public VideoObjectLayer(Mpeg4Header previousHeader)
     : this(previousHeader, false)
 {
 }
 public VisualObject(Mpeg4Header previousHeader)
     : base(previousHeader, Mpeg4HeaderName.VisualObject)
 {
 }
Пример #7
0
 public VideoObjectLayer(Mpeg4Header previousHeader, bool inVop)
     : base(previousHeader, Mpeg4HeaderName.VideoObjectLayer)
 {
     this.InVop = inVop;
 }
 public UserData(Mpeg4Header previousHeader)
     : base(previousHeader, Mpeg4HeaderName.UserData)
 {
 }
Пример #9
0
 public Vop(Mpeg4Header previousHeader)
     : base(previousHeader, Mpeg4HeaderName.Vop)
 {
 }
Пример #10
0
 public GroupOfVop(Mpeg4Header previousHeader)
     : base(previousHeader, Mpeg4HeaderName.GroupOfVop)
 {
 }
 public Extension(Mpeg4Header previousHeader)
     : base(previousHeader, Mpeg4HeaderName.Extension)
 {
 }