Tag Parser 12.5.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> {
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:
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
The Diagnostics class is a container for DiagMessage.
Defines traits for the specified ImplementationType.
GenericFileElement(ContainerType &container, std::uint64_t startOffset)
typename FileElementTraits< Mpeg4Descriptor >::ContainerType ContainerType
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.
std::string idToString() const
Converts the specified atom ID to a printable string.
bool isParent() const
Returns an indication whether the descriptor contains sub descriptors.
Mpeg4Descriptor(ContainerType &container, std::uint64_t startOffset, std::uint64_t maxSize)
Constructs a new top level descriptor with the specified container at the specified startOffset and w...
void internalParse(Diagnostics &diag)
Parses the MPEG-4 descriptor.
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