예제 #1
0
 private static void Recurse(EBMLReader reader, bool readValues)
 {
     ElementInfo elemInfo;
     while((elemInfo = reader.Next()) != null) {
         if(elemInfo.DocElement.Type == EBMLElementType.Master) {
             using(reader.EnterElement(elemInfo)) {
                 Recurse(reader, readValues);
             }
         } else if(readValues) {
             var obj = reader.RetrieveValue(elemInfo);
         }
     }
 }
예제 #2
0
 public void RetrieveValue_WrongPosition()
 {
     var dataSrc = new EBMLBlockDataSource(new byte[][] { new byte[0] }, 0);
     var docType = new EBMLDocType();
     var reader = new EBMLReader(dataSrc, docType);
     reader.RetrieveValue(new ElementInfo(EBMLDocElement.Unknown, 1, 2, 3, 1));
 }
예제 #3
0
        public void RetrieveValue_ZeroLength()
        {
            var dataSrc = new EBMLBlockDataSource(new byte[][] { new byte[0] }, 0);
            var docType = new EBMLDocType();
            var reader = new EBMLReader(dataSrc, docType);

            reader.RetrieveValue(new ElementInfo(EBMLDocElement.Unknown, 0, 0, 0, 0));
            reader.RetrieveValue(new ElementInfo(EBMLDocElement.Unknown, 1, 1, 1, 0));
        }
예제 #4
0
 public void RetrieveValue_NullArgument()
 {
     var dataSrc = new EBMLBlockDataSource(new byte[][] { new byte[0] }, 0);
     var docType = new EBMLDocType();
     var reader = new EBMLReader(dataSrc, docType);
     reader.RetrieveValue(null);
 }