internal Info(Stream stream) { List <Guid> segmentFamilylist = null; List <ChapterTranslate> chapterTranslatelist = null; ElementReader reader = new ElementReader(stream); while (!reader.EOF) { eElement id = reader.readElementId(); switch (id) { case eElement.SegmentUID: segmentUID = reader.readGuid(); break; case eElement.SegmentFilename: segmentFilename = reader.readUtf8(); break; case eElement.PrevUID: prevUID = reader.readGuid(); break; case eElement.PrevFilename: prevFilename = reader.readUtf8(); break; case eElement.NextUID: nextUID = reader.readGuid(); break; case eElement.NextFilename: nextFilename = reader.readUtf8(); break; case eElement.SegmentFamily: if (null == segmentFamilylist) { segmentFamilylist = new List <Guid>(); } segmentFamilylist.Add(reader.readGuid()); break; case eElement.ChapterTranslate: if (null == chapterTranslatelist) { chapterTranslatelist = new List <ChapterTranslate>(); } chapterTranslatelist.Add(new ChapterTranslate(stream)); break; case eElement.TimestampScale: timestampScale = reader.readUlong(1000000); break; case eElement.Duration: duration = reader.readFloat(); break; case eElement.DateUTC: dateUTC = reader.readDate(); break; case eElement.Title: title = reader.readUtf8(); break; case eElement.MuxingApp: muxingApp = reader.readUtf8(); break; case eElement.WritingApp: writingApp = reader.readUtf8(); break; default: reader.skipElement(); break; } } if (segmentFamilylist != null) { segmentFamily = segmentFamilylist.ToArray(); } if (chapterTranslatelist != null) { chapterTranslate = chapterTranslatelist.ToArray(); } }