1 #ifndef MATROSKACONTAINER_H 2 #define MATROSKACONTAINER_H 10 #include "../genericcontainer.h" 12 #include <c++utilities/conversion/types.h> 20 class MatroskaSeekInfo;
21 class MatroskaEditionEntry;
32 uint64 maxIdLength()
const;
33 uint64 maxSizeLength()
const;
34 const std::vector<std::unique_ptr<MatroskaSeekInfo> > &seekInfos()
const;
36 static uint64 maxFullParseSize();
37 void setMaxFullParseSize(uint64 maxFullParseSize);
38 const std::vector<std::unique_ptr<MatroskaEditionEntry> > &editionEntires()
const;
40 std::size_t chapterCount()
const;
43 std::size_t attachmentCount()
const;
48 virtual bool supportsTitle()
const;
49 virtual std::size_t segmentCount()
const;
54 void internalParseHeader();
55 void internalParseTags();
56 void internalParseTracks();
57 void internalParseChapters();
58 void internalParseAttachments();
59 void internalMakeFile();
62 void parseSegmentInfo();
63 void readTrackStatisticsFromTags();
66 uint64 m_maxSizeLength;
68 std::vector<EbmlElement *> m_tracksElements;
69 std::vector<EbmlElement *> m_segmentInfoElements;
70 std::vector<EbmlElement *> m_tagsElements;
71 std::vector<EbmlElement *> m_chaptersElements;
72 std::vector<EbmlElement *> m_attachmentsElements;
73 std::vector<std::unique_ptr<MatroskaSeekInfo> > m_seekInfos;
74 std::vector<std::unique_ptr<MatroskaEditionEntry> > m_editionEntries;
75 std::vector<std::unique_ptr<MatroskaAttachment> > m_attachments;
76 std::size_t m_segmentCount;
77 static uint64 m_maxFullParseSize;
93 return m_maxSizeLength;
119 return m_maxFullParseSize;
128 m_maxFullParseSize = maxFullParseSize;
136 return m_editionEntries;
141 return m_attachments.at(index).get();
146 return m_attachments.size();
156 return m_segmentInfoElements.size();
161 #endif // MATROSKACONTAINER_H
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.