Tag Parser 12.1.0
C++ library for reading and writing MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags
Loading...
Searching...
No Matches
mpeg4descriptor.h
Go to the documentation of this file.
1#ifndef TAG_PARSER_MPEG4DESCRIPTOR_H
2#define TAG_PARSER_MPEG4DESCRIPTOR_H
3
4#include "../genericfileelement.h"
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:
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
The Diagnostics class is a container for DiagMessage.
Defines traits for the specified ImplementationType.
The GenericFileElement class helps to parse binary files which consist of an arboreal element structu...
std::uint64_t startOffset() const
Returns the start offset in the related stream.
Mpeg4Descriptor * firstChild()
Returns the first child of the element.
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:13
Contains all classes and functions of the TagInfo library.
Definition aaccodebook.h:10