Tag Parser 12.4.0
C++ library for reading and writing MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
mpeg4descriptor.h
Go to the documentation of this file.
1#ifndef TAG_PARSER_MPEG4DESCRIPTOR_H
2#define TAG_PARSER_MPEG4DESCRIPTOR_H
3
5
6#include <memory>
7
8namespace TagParser {
9
10class Mp4Container;
11class Mpeg4Descriptor;
12
17public:
19 using IdentifierType = std::uint8_t;
20 using DataSizeType = std::uint32_t;
21
25 static constexpr std::uint8_t minimumElementSize()
26 {
27 return 2;
28 }
29};
30
31class TAG_PARSER_EXPORT Mpeg4Descriptor : public GenericFileElement<Mpeg4Descriptor> {
32 friend class GenericFileElement<Mpeg4Descriptor>;
33
34public:
35 Mpeg4Descriptor(ContainerType &container, std::uint64_t startOffset, std::uint64_t maxSize);
36
37 std::string idToString() const;
38 bool isParent() const;
39 bool isPadding() const;
40 std::uint64_t firstChildOffset() const;
41
42protected:
43 Mpeg4Descriptor(Mpeg4Descriptor &parent, std::uint64_t startOffset);
44
45 void internalParse(Diagnostics &diag);
46
47private:
48 std::string parsingContext() const;
49};
50
56inline bool Mpeg4Descriptor::isParent() const
57{
58 return m_firstChild != nullptr;
59}
60
64inline bool Mpeg4Descriptor::isPadding() const
65{
66 return false;
67}
68
74inline std::uint64_t Mpeg4Descriptor::firstChildOffset() const
75{
76 return firstChild() ? firstChild()->startOffset() - startOffset() : 0;
77}
78
79} // namespace TagParser
80
81#endif // TAG_PARSER_MPEG4DESCRIPTOR_H
Defines traits for the specified ImplementationType.
std::uint64_t startOffset() const
Returns the start offset in the related stream.
std::unique_ptr< Mpeg4Descriptor > m_firstChild
Implementation of GenericContainer<MediaFileInfo, Mp4Tag, Mp4Track, Mp4Atom>.
The Mpeg4Descriptor class helps to parse MPEG-4 descriptors.
bool isPadding() const
Returns always false for MPEG-4 descriptors.
bool isParent() const
Returns an indication whether the descriptor contains sub descriptors.
std::uint64_t firstChildOffset() const
Returns the offset of the first child (relative to the start offset of this descriptor).
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.
Definition global.h:14
Contains all classes and functions of the TagInfo library.
Definition aaccodebook.h:10