|
Tag Parser
8.3.0
C++ library for reading and writing MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags
|
The Mpeg4Descriptor class helps to parse MPEG-4 descriptors. More...
#include <mpeg4descriptor.h>
Public Member Functions | |
| Mpeg4Descriptor (ContainerType &container, uint64 startOffset, uint64 maxSize) | |
| Constructs a new top level descriptor with the specified container at the specified startOffset and with the specified maxSize. More... | |
| std::string | idToString () const |
| Converts the specified atom ID to a printable string. More... | |
| bool | isParent () const |
| Returns an indication whether the descriptor contains sub descriptors. More... | |
| bool | isPadding () const |
| Returns always false for MPEG-4 descriptors. More... | |
| uint64 | firstChildOffset () const |
| Returns the offset of the first child (relative to the start offset of this descriptor). More... | |
Public Member Functions inherited from TagParser::GenericFileElement< ImplementationType > | |
| GenericFileElement (ContainerType &container, uint64 startOffset) | |
| GenericFileElement (ImplementationType &parent, uint64 startOffset) | |
| Constructs a new sub level file element with the specified parent at the specified startOffset. More... | |
| GenericFileElement (ContainerType &container, uint64 startOffset, uint64 maxSize) | |
| GenericFileElement (const GenericFileElement &other)=delete | |
| GenericFileElement (GenericFileElement &other)=delete | |
| GenericFileElement & | operator= (const GenericFileElement &other)=delete |
| ContainerType & | container () |
| Returns the related container. More... | |
| const ContainerType & | container () const |
| Returns the related container. More... | |
| std::iostream & | stream () |
| Returns the related stream. More... | |
| IoUtilities::BinaryReader & | reader () |
| Returns the related BinaryReader. More... | |
| IoUtilities::BinaryWriter & | writer () |
| Returns the related BinaryWriter. More... | |
| uint64 | startOffset () const |
| Returns the start offset in the related stream. More... | |
| uint64 | relativeStartOffset () const |
| Returns the offset of the element in its parent or - if it is a top-level element - in the related stream. More... | |
| const IdentifierType & | id () const |
| Returns the element ID. More... | |
| std::string | idToString () const |
| Returns a printable string representation of the element ID. More... | |
| uint32 | idLength () const |
| Returns the length of the id denotation in byte. More... | |
| uint32 | headerSize () const |
| Returns the header size of the element in byte. More... | |
| DataSizeType | dataSize () const |
| Returns the data size of the element in byte. More... | |
| uint32 | sizeLength () const |
| Returns the length of the size denotation of the element in byte. More... | |
| uint64 | dataOffset () const |
| Returns the data offset of the element in the related stream. More... | |
| uint64 | totalSize () const |
| Returns the total size of the element. More... | |
| uint64 | endOffset () const |
| Returns the offset of the first byte which doesn't belong to this element anymore. More... | |
| uint64 | maxTotalSize () const |
| Returns maximum total size. More... | |
| byte | level () const |
| Returns how deep the element is nested (0 for top-level elements, 1 for children of top-level elements, ...). More... | |
| ImplementationType * | parent () |
| Returns the parent of the element. More... | |
| const ImplementationType * | parent () const |
| Returns the parent of the element. More... | |
| ImplementationType * | parent (byte n) |
| Returns the n-th parent of the element. More... | |
| const ImplementationType * | parent (byte n) const |
| Returns the n-th parent of the element. More... | |
| ImplementationType * | nextSibling () |
| Returns the next sibling of the element. More... | |
| const ImplementationType * | nextSibling () const |
| Returns the next sibling of the element. More... | |
| ImplementationType * | firstChild () |
| Returns the first child of the element. More... | |
| const ImplementationType * | firstChild () const |
| Returns the first child of the element. More... | |
| ImplementationType * | lastChild () |
| Returns the last child of the element. More... | |
| const ImplementationType * | lastChild () const |
| Returns the last child of the element. More... | |
| ImplementationType * | subelementByPath (Diagnostics &diag, IdentifierType item) |
| Returns the sub element for the specified path. More... | |
| ImplementationType * | subelementByPath (Diagnostics &diag, IdentifierType item, IdentifierType remainingPath...) |
| Returns the sub element for the specified path. More... | |
| const ImplementationType * | subelementByPath (Diagnostics &diag, IdentifierType item) const |
| Returns the sub element for the specified path. More... | |
| const ImplementationType * | subelementByPath (Diagnostics &diag, IdentifierType item, IdentifierType remainingPath...) const |
| Returns the sub element for the specified path. More... | |
| ImplementationType * | childById (const IdentifierType &id, Diagnostics &diag) |
| Returns the first child with the specified id. More... | |
| const ImplementationType * | childById (const IdentifierType &id, Diagnostics &diag) const |
| Returns the first child with the specified id. More... | |
| ImplementationType * | siblingById (const IdentifierType &id, Diagnostics &diag) |
| Returns the first sibling with the specified id. More... | |
| const ImplementationType * | siblingById (const IdentifierType &id, Diagnostics &diag) const |
| Returns the first sibling with the specified id. More... | |
| ImplementationType * | siblingByIdIncludingThis (const IdentifierType &id, Diagnostics &diag) |
| Returns the first sibling with the specified id or the current instance if its ID equals id. More... | |
| const ImplementationType * | siblingByIdIncludingThis (const IdentifierType &id, Diagnostics &diag) const |
| Returns the first sibling with the specified id or the current instance if its ID equals id. More... | |
| bool | isParent () const |
| Returns an indication whether this instance is a parent element. More... | |
| bool | isPadding () const |
| Returns an indication whether this instance is a padding element. More... | |
| uint64 | firstChildOffset () const |
| Returns the offset of the first child (relative to the start offset of this element). More... | |
| bool | isParsed () const |
| Returns an indication whether this instance has been parsed yet. More... | |
| void | clear () |
| Clears the status of the element. More... | |
| void | parse (Diagnostics &diag) |
| Parses the header information of the element which is read from the related stream at the start offset. More... | |
| void | reparse (Diagnostics &diag) |
| Parses the header information of the element which is read from the related stream at the start offset. More... | |
| void | validateSubsequentElementStructure (Diagnostics &diag, uint64 *paddingSize=nullptr) |
| Parses (see parse()) this and all subsequent elements. More... | |
| void | copyHeader (std::ostream &targetStream, Diagnostics &diag, AbortableProgressFeedback *progress) |
| Writes the header informaton of the element to the specified targetStream. More... | |
| void | copyWithoutChilds (std::ostream &targetStream, Diagnostics &diag, AbortableProgressFeedback *progress) |
| Writes the element without its childs to the specified targetStream. More... | |
| void | copyEntirely (std::ostream &targetStream, Diagnostics &diag, AbortableProgressFeedback *progress) |
| Writes the entire element including all childs to the specified targetStream. More... | |
| void | makeBuffer () |
| Buffers the element (header and data). More... | |
| void | discardBuffer () |
| Discards buffered data. More... | |
| void | copyBuffer (std::ostream &targetStream) |
| Copies buffered data to targetStream. More... | |
| void | copyPreferablyFromBuffer (std::ostream &targetStream, Diagnostics &diag, AbortableProgressFeedback *progress) |
| Copies buffered data to targetStream if data has been buffered; copies from input stream otherwise. More... | |
| const std::unique_ptr< char[]> & | buffer () |
| Returns buffered data. More... | |
| ImplementationType * | denoteFirstChild (uint32 offset) |
| Denotes the first child to start at the specified offset (relative to the start offset of this descriptor). More... | |
Protected Member Functions | |
| Mpeg4Descriptor (Mpeg4Descriptor &parent, uint64 startOffset) | |
| Constructs a new sub level descriptor with the specified parent at the specified startOffset. More... | |
| void | internalParse (Diagnostics &diag) |
| Parses the MPEG-4 descriptor. More... | |
Friends | |
| class | GenericFileElement< Mpeg4Descriptor > |
Additional Inherited Members | |
Public Types inherited from TagParser::GenericFileElement< ImplementationType > | |
| using | ContainerType = typename FileElementTraits< ImplementationType >::ContainerType |
| Specifies the type of the corresponding container. More... | |
| using | IdentifierType = typename FileElementTraits< ImplementationType >::IdentifierType |
| Specifies the type used to store identifiers. More... | |
| using | DataSizeType = typename FileElementTraits< ImplementationType >::DataSizeType |
| Specifies the type used to store data sizes. More... | |
Static Public Member Functions inherited from TagParser::GenericFileElement< ImplementationType > | |
| static constexpr uint32 | maximumIdLengthSupported () |
| Returns the maximum id length supported by the class in byte. More... | |
| static constexpr uint32 | maximumSizeLengthSupported () |
| Returns the maximum size length supported by the class in byte. More... | |
| static constexpr byte | minimumElementSize () |
| Returns the mimimum element size. More... | |
Protected Attributes inherited from TagParser::GenericFileElement< ImplementationType > | |
| IdentifierType | m_id |
| uint64 | m_startOffset |
| uint64 | m_maxSize |
| DataSizeType | m_dataSize |
| uint32 | m_idLength |
| uint32 | m_sizeLength |
| ImplementationType * | m_parent |
| std::unique_ptr< ImplementationType > | m_nextSibling |
| std::unique_ptr< ImplementationType > | m_firstChild |
| std::unique_ptr< char[]> | m_buffer |
| bool | m_sizeUnknown |
The Mpeg4Descriptor class helps to parse MPEG-4 descriptors.
Definition at line 31 of file mpeg4descriptor.h.
| TagParser::Mpeg4Descriptor::Mpeg4Descriptor | ( | ContainerType & | container, |
| uint64 | startOffset, | ||
| uint64 | maxSize | ||
| ) |
Constructs a new top level descriptor with the specified container at the specified startOffset and with the specified maxSize.
Definition at line 23 of file mpeg4descriptor.cpp.
|
protected |
Constructs a new sub level descriptor with the specified parent at the specified startOffset.
Definition at line 31 of file mpeg4descriptor.cpp.
|
inline |
Returns the offset of the first child (relative to the start offset of this descriptor).
Definition at line 74 of file mpeg4descriptor.h.
| std::string TagParser::Mpeg4Descriptor::idToString | ( | ) | const |
Converts the specified atom ID to a printable string.
Definition at line 47 of file mpeg4descriptor.cpp.
|
protected |
Parses the MPEG-4 descriptor.
Definition at line 56 of file mpeg4descriptor.cpp.
|
inline |
Returns always false for MPEG-4 descriptors.
Definition at line 64 of file mpeg4descriptor.h.
|
inline |
Returns an indication whether the descriptor contains sub descriptors.
Definition at line 56 of file mpeg4descriptor.h.
|
friend |
Definition at line 32 of file mpeg4descriptor.h.
1.8.15