1 #ifndef TAG_PARSER_MATROSKACONTAINER_H 2 #define TAG_PARSER_MATROSKACONTAINER_H 10 #include "../genericcontainer.h" 12 #include <c++utilities/conversion/types.h> 20 class MatroskaSeekInfo;
21 class MatroskaEditionEntry;
31 uint64 maxIdLength()
const;
32 uint64 maxSizeLength()
const;
33 const std::vector<std::unique_ptr<MatroskaSeekInfo>> &seekInfos()
const;
35 static uint64 maxFullParseSize();
36 void setMaxFullParseSize(uint64 maxFullParseSize);
37 const std::vector<std::unique_ptr<MatroskaEditionEntry>> &editionEntires()
const;
39 std::size_t chapterCount()
const override;
42 std::size_t attachmentCount()
const override;
47 virtual bool supportsTitle()
const override;
48 virtual std::size_t segmentCount()
const override;
50 void reset()
override;
53 void internalParseHeader(
Diagnostics &diag)
override;
55 void internalParseTracks(
Diagnostics &diag)
override;
56 void internalParseChapters(
Diagnostics &diag)
override;
57 void internalParseAttachments(
Diagnostics &diag)
override;
62 void readTrackStatisticsFromTags(
Diagnostics &diag);
65 uint64 m_maxSizeLength;
67 std::vector<EbmlElement *> m_tracksElements;
68 std::vector<EbmlElement *> m_segmentInfoElements;
69 std::vector<EbmlElement *> m_tagsElements;
70 std::vector<EbmlElement *> m_chaptersElements;
71 std::vector<EbmlElement *> m_attachmentsElements;
72 std::vector<std::unique_ptr<MatroskaSeekInfo>> m_seekInfos;
73 std::vector<std::unique_ptr<MatroskaEditionEntry>> m_editionEntries;
74 std::vector<std::unique_ptr<MatroskaAttachment>> m_attachments;
75 std::size_t m_segmentCount;
76 static uint64 m_maxFullParseSize;
92 return m_maxSizeLength;
118 return m_maxFullParseSize;
135 return m_editionEntries;
140 return m_attachments.at(index).get();
145 return m_attachments.size();
155 return m_segmentInfoElements.size();
160 #endif // MATROSKACONTAINER_H const std::vector< std::unique_ptr< MatroskaEditionEntry > > & editionEntires() const
Returns the edition entries.
static uint64 maxFullParseSize()
Returns the maximal file size for a "full parse" in byte.
Implementation of GenericContainer<MediaFileInfo, MatroskaTag, MatroskaTrack, EbmlElement>.
Implementation of TagParser::AbstractAttachment for the Matroska container.
virtual std::size_t segmentCount() const override
Returns the number of segments.
uint64 maxIdLength() const
Returns the maximal ID length in bytes.
uint64 maxSizeLength() const
Returns the maximal size length in bytes.
MatroskaAttachment * attachment(std::size_t index) override
Returns the attachment with the specified index.
std::size_t attachmentCount() const override
Returns the number of attachments the container holds.
virtual bool supportsTitle() const override
Returns whether the title property is supported.
The MatroskaChapter class provides an implementation of AbstractAttachment for Matroska files...
The AbortableProgressFeedback class provides feedback about an ongoing operation via callbacks...
Contains all classes and functions of the TagInfo library.
void setMaxFullParseSize(uint64 maxFullParseSize)
Sets the maximal file size for a "full parse" in byte.
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.
const std::vector< std::unique_ptr< MatroskaSeekInfo > > & seekInfos() const
Returns seek information read from "SeekHead"-elements when parsing segment info. ...
The Diagnostics class is a container for DiagMessage.
The GenericContainer class helps parsing header, track, tag and chapter information of a file...