Пример #1
0
 public void AddExtension(ExtensionId extensionId)
 {
     if (!_extensions.Contains(extensionId))
     {
         _extensions.Add(extensionId);
     }
 }
Пример #2
0
 public void Validate()
 {
     if (First.IsSpecified)
     {
         Preconditions.AtLeast(First, 1, nameof(First));
         Preconditions.AtMost(First, 100, nameof(First));
     }
     if (After.IsSpecified)
     {
         Preconditions.NotNullOrWhitespace(After.ToString(), nameof(After));
     }
     if (ExtensionId.IsSpecified)
     {
         Preconditions.NotNullOrWhitespace(ExtensionId.ToString(), nameof(ExtensionId));
     }
     if (Type.IsSpecified)
     {
         Preconditions.NotNullOrWhitespace(Type.ToString(), nameof(Type));
     }
 }
        private static bool CheckExtensionOccurance(IMpeg2VideoState state, ExtensionId extensionId)
        {
            if (extensionId == ExtensionId.SequenceExtensionId)
            {
                return(true);
            }
            if (extensionId == ExtensionId.PictureCodingExtensionId)
            {
                return(true);
            }

            // Extensions other than 'SequenceExtension' and 'PictureCodingExtension',
            // which are the first extension to follow a sequence or picture header
            // respectively in a valid MPEG-2 stream, can only occur after extension of
            // the same type (sequence or picture). Duplicates are not allowed!
            if (state.Picture.Initialized)
            {
                // No duplicates allowed!
                if (state.Picture.HasExtension(extensionId))
                {
                    return(false);
                }
                // FIXME: 'extensionId' must be a picture extension!!
                // Last header must be a picture extension
                return(IsPictureExtension(state.LastHeaderName));
            }
            else
            {
                // No duplicates allowed!
                if (state.Sequence.HasExtension(extensionId))
                {
                    return(false);
                }
                // FIXME: 'extensionId' must be a sequence extension!!
                // Last header must be a sequence extension
                return(IsSequenceExtension(state.LastHeaderName));
            }
        }
Пример #4
0
 public bool HasExtension(ExtensionId extensionId)
 {
     return(_extensions.Contains(extensionId));
 }