1 #ifndef TAG_PARSER_MATROSKATRACK_H
2 #define TAG_PARSER_MATROSKATRACK_H
4 #include "../abstracttrack.h"
9 class MatroskaContainer;
17 void make(std::ostream &stream)
const;
19 std::uint64_t requiredSize()
const;
25 std::uint64_t m_dataSize;
26 std::uint64_t m_requiredSize;
27 std::uint8_t m_sizeDenotationLength;
43 return m_requiredSize;
56 static MediaFormat codecIdToMediaFormat(
const std::string &codecId);
57 void readStatisticsFromTags(
const std::vector<std::unique_ptr<MatroskaTag>> &tags,
Diagnostics &diag);
59 void makeHeader(std::ostream &stream,
Diagnostics &diag)
const;
62 void internalParseHeader(
Diagnostics &diag)
override;
65 template <
typename PropertyType,
typename ConversionFunction>
66 void assignPropertyFromTagValue(
const std::unique_ptr<MatroskaTag> &tag,
const char *fieldId, PropertyType &integer,
67 const ConversionFunction &conversionFunction,
Diagnostics &diag);
103 #endif // TAG_PARSER_MATROSKATRACK_H