Tag Parser
6.2.1
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... | |
![]() | |
GenericFileElement (containerType &container, uint64 startOffset) | |
GenericFileElement (implementationType &parent, uint64 startOffset) | |
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... | |
implementationType * | parent () |
Returns the parent of the element. More... | |
const implementationType * | parent () const |
Returns the 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 * | subelementByPath (const std::initializer_list< identifierType > &path) |
Returns the sub element for the specified path. More... | |
implementationType * | subelementByPath (std::list< identifierType > &path) |
implementationType * | childById (const identifierType &id) |
Returns the first child with the specified id. More... | |
implementationType * | siblingById (const identifierType &id, bool includeThis=false) |
Returns the first sibling with the specified id. More... | |
FileElementIterator< implementationType > | begin () |
Returns an iterator for iterating over the element's childs. More... | |
const FileElementIterator< implementationType > | begin () const |
Returns an iterator for iterating over the element's childs (constant). More... | |
FileElementIterator< implementationType > | end () |
Returns an invalid iterator. More... | |
const FileElementIterator< implementationType > | end () const |
Returns an invalid iterator. 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 () |
Parses the header information of the element which is read from the related stream at the start offset. More... | |
void | reparse () |
Parses the header information of the element which is read from the related stream at the start offset. More... | |
void | validateSubsequentElementStructure (NotificationList &gatheredNotifications, uint64 *paddingSize=nullptr) |
Parses (see parse()) this and all subsequent elements. More... | |
void | copyHeader (std::ostream &targetStream) |
Writes the header informaton of the element to the specified targetStream. More... | |
void | copyWithoutChilds (std::ostream &targetStream) |
Writes the element without its childs to the specified targetStream. More... | |
void | copyEntirely (std::ostream &targetStream) |
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... | |
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... | |
![]() | |
const NotificationList & | notifications () const |
Returns notifications for the current object. More... | |
bool | hasNotifications () const |
Returns an indication whether there are notifications for the current object. More... | |
bool | hasCriticalNotifications () const |
Returns an indication whether there are critical notifications for the current object. More... | |
NotificationType | worstNotificationType () const |
Returns the worst notification type. More... | |
const std::string & | currentStatus () const |
Returns a status information for the current object. More... | |
double | currentPercentage () const |
Returns the progress percentage of the current object. More... | |
size_t | registerCallback (CallbackFunction callback) |
Registers a callback function. More... | |
void | unregisterCallback (size_t id) |
Unregisters a previously registered callback function whith the specified id. More... | |
void | unregisterAllCallbacks () |
Unregisters all callback functions. More... | |
void | forwardStatusUpdateCalls (StatusProvider *other=nullptr) |
Forwards all status updates calls to the specified statusProvider. More... | |
StatusProvider * | usedProvider () |
Returns the provider which callback functions will be called when the status or the percentage is updated. More... | |
void | tryToAbort () |
Commands the object to abort the current operation. More... | |
bool | isAborted () const |
Returns an indication whether the current operation should be aborted. More... | |
void | invalidateStatus () |
Invalidates the current status. More... | |
void | invalidateNotifications () |
Invalidates the object's notifications. More... | |
void | updateStatus (const std::string &status) |
This method is meant to be called by the derived class to report updated status information. More... | |
void | updateStatus (const std::string &status, double percentage) |
This method is meant to be called by the derived class to report updated status information. More... | |
void | updatePercentage (double percentage) |
This method is meant to be called by the derived class to report updated progress percentage only. More... | |
void | addNotification (const Notification ¬ification) |
This protected method is meant to be called by the derived class to add a notification. More... | |
void | addNotification (NotificationType type, const std::string &message, const std::string &context) |
This protected method is meant to be called by the derived class to add a notification of the specified type, message and context. More... | |
void | addNotifications (const StatusProvider &from) |
This protected method is meant to be called by the derived class to add all notifications from another StatusProvider instance. More... | |
void | addNotifications (const std::string &higherContext, const StatusProvider &from) |
This protected method is meant to be called by the derived class to add all notifications from another StatusProvider instance. More... | |
void | addNotifications (const NotificationList ¬ifications) |
This protected method is meant to be called by the derived class to add the specified notifications. More... | |
Protected Member Functions | |
Mpeg4Descriptor (implementationType &parent, uint64 startOffset) | |
Constructs a new sub level descriptor with the specified parent at the specified startOffset. More... | |
void | internalParse () |
Parses the MPEG-4 descriptor. More... | |
![]() | |
StatusProvider () | |
Constructs a new StatusProvider. More... | |
Friends | |
class | GenericFileElement< Mpeg4Descriptor > |
Additional Inherited Members | |
![]() | |
typedef FileElementTraits< Mpeg4Descriptor >::containerType | containerType |
Specifies the type of the corresponding container. More... | |
typedef FileElementTraits< Mpeg4Descriptor >::identifierType | identifierType |
Specifies the type used to store identifiers. More... | |
typedef FileElementTraits< Mpeg4Descriptor >::dataSizeType | dataSizeType |
Specifies the type used to store data sizes. More... | |
typedef FileElementTraits< Mpeg4Descriptor >::implementationType | implementationType |
Specifies the type of the actual implementation. More... | |
![]() | |
typedef std::function< void(StatusProvider &sender)> | CallbackFunction |
typedef std::vector< CallbackFunction > | CallbackVector |
typedef std::pair< int, CallbackFunction > | CallbackPair |
![]() | |
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... | |
![]() | |
identifierType | m_id |
uint64 | m_startOffset |
uint64 | m_maxSize |
uint32 | m_idLength |
dataSizeType | m_dataSize |
uint32 | m_sizeLength |
implementationType * | m_parent |
std::unique_ptr< implementationType > | m_nextSibling |
std::unique_ptr< implementationType > | m_firstChild |
std::unique_ptr< char[]> | m_buffer |
The Mpeg4Descriptor class helps to parse MPEG-4 descriptors.
Definition at line 49 of file mpeg4descriptor.h.
Media::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 30 of file mpeg4descriptor.cpp.
|
inline |
Returns the offset of the first child (relative to the start offset of this descriptor).
Definition at line 93 of file mpeg4descriptor.h.
std::string Media::Mpeg4Descriptor::idToString | ( | ) | const |
Converts the specified atom ID to a printable string.
Definition at line 45 of file mpeg4descriptor.cpp.
|
protected |
Parses the MPEG-4 descriptor.
Definition at line 54 of file mpeg4descriptor.cpp.
|
inline |
Returns always false for MPEG-4 descriptors.
Definition at line 83 of file mpeg4descriptor.h.
|
inline |
Returns an indication whether the descriptor contains sub descriptors.
Definition at line 75 of file mpeg4descriptor.h.
|
friend |
Definition at line 51 of file mpeg4descriptor.h.