/// <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) { }
public VideoObjectLayer(Mpeg4Header previousHeader) : this(previousHeader, false) { }
public VisualObject(Mpeg4Header previousHeader) : base(previousHeader, Mpeg4HeaderName.VisualObject) { }
public VideoObjectLayer(Mpeg4Header previousHeader, bool inVop) : base(previousHeader, Mpeg4HeaderName.VideoObjectLayer) { this.InVop = inVop; }
public UserData(Mpeg4Header previousHeader) : base(previousHeader, Mpeg4HeaderName.UserData) { }
public Vop(Mpeg4Header previousHeader) : base(previousHeader, Mpeg4HeaderName.Vop) { }
public GroupOfVop(Mpeg4Header previousHeader) : base(previousHeader, Mpeg4HeaderName.GroupOfVop) { }
public Extension(Mpeg4Header previousHeader) : base(previousHeader, Mpeg4HeaderName.Extension) { }