Tag Parser
6.2.1
C++ library for reading and writing MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags
|
Implementation of GenericContainer<MediaFileInfo, Mp4Tag, Mp4Track, Mp4Atom>. More...
#include <mp4container.h>
Public Member Functions | |
Mp4Container (MediaFileInfo &fileInfo, uint64 startOffset) | |
Constructs a new container for the specified fileInfo at the specified startOffset. More... | |
~Mp4Container () | |
bool | supportsTrackModifications () const |
Returns whether the implementation supports adding or removing of tracks. More... | |
bool | isFragmented () const |
Returns whether the file is fragmented. More... | |
void | reset () |
Discards all parsing results. More... | |
ElementPosition | determineTagPosition () const |
Determines the position of the tags inside the file. More... | |
ElementPosition | determineIndexPosition () const |
Determines the position of the index. More... | |
![]() | |
GenericContainer (MediaFileInfo &fileInfo, uint64 startOffset) | |
Constructs a new container for the specified fileInfo at the specified startOffset. More... | |
~GenericContainer () | |
Destroys the container. More... | |
void | validateElementStructure (NotificationList &gatheredNotifications, uint64 *paddingSize=nullptr) |
Parses all elements the file consists of. More... | |
MediaFileInfo & | fileInfo () const |
Returns the related file info. More... | |
Mp4Atom * | firstElement () const |
Returns the first element of the file if available; otherwiese returns nullptr. More... | |
const std::vector< std::unique_ptr< Mp4Atom > > & | additionalElements () const |
Returns all available additional elements. More... | |
std::vector< std::unique_ptr< Mp4Atom > > & | additionalElements () |
Returns all available additional elements. More... | |
Mp4Tag * | tag (std::size_t index) |
Returns the tag with the specified index. More... | |
std::size_t | tagCount () const |
Returns the number of tags attached to the container. More... | |
Mp4Track * | track (std::size_t index) |
Returns the track with the specified index. More... | |
std::size_t | trackCount () const |
Returns the number of tracks the container holds. More... | |
const std::vector< std::unique_ptr< Mp4Tag > > & | tags () const |
Returns the tags of the file. More... | |
std::vector< std::unique_ptr< Mp4Tag > > & | tags () |
Returns the tags of the file. More... | |
const std::vector< std::unique_ptr< Mp4Track > > & | tracks () const |
Returns the tracks of the file. More... | |
std::vector< std::unique_ptr< Mp4Track > > & | tracks () |
Returns the tracks of the file. More... | |
Mp4Tag * | createTag (const TagTarget &target=TagTarget()) |
Creates and returns a tag for the specified target. More... | |
bool | removeTag (Tag *tag) |
Removes the specified tag from the container. More... | |
void | removeAllTags () |
Removes all tags attached to the container. More... | |
bool | addTrack (Mp4Track *track) |
Adds the specified track to the container. More... | |
bool | removeTrack (AbstractTrack *track) |
Removes the specified track to the container. More... | |
void | removeAllTracks () |
Removes all tracks from the container. More... | |
void | reset () |
Discards all parsing results. More... | |
![]() | |
virtual | ~AbstractContainer () |
Destroys the container. More... | |
std::iostream & | stream () |
Returns the related stream. More... | |
void | setStream (std::iostream &stream) |
Sets the related stream. More... | |
uint64 | startOffset () const |
Returns the start offset in the related stream. More... | |
IoUtilities::BinaryReader & | reader () |
Returns the related BinaryReader. More... | |
IoUtilities::BinaryWriter & | writer () |
Returns the related BinaryWriter. More... | |
void | parseHeader () |
Parses the header if not parsed yet. More... | |
void | parseTags () |
Parses the tag information if not parsed yet. More... | |
void | parseTracks () |
Parses the tracks of the file if not parsed yet. More... | |
void | parseChapters () |
Parses the chapters of the file if not parsed yet. More... | |
void | parseAttachments () |
Parses the attachments of the file if not parsed yet. More... | |
void | makeFile () |
Rewrites the file to apply changed tag information. More... | |
bool | isHeaderParsed () const |
Returns an indication whether the header has been parsed yet. More... | |
bool | areTagsParsed () const |
Returns an indication whether the tags have been parsed yet. More... | |
bool | areTracksParsed () const |
Returns an indication whether the tracks have been parsed yet. More... | |
bool | areChaptersParsed () const |
Returns an indication whether the chapters have been parsed yet. More... | |
bool | areAttachmentsParsed () const |
Returns an indication whether the attachments have been parsed yet. More... | |
virtual AbstractChapter * | chapter (std::size_t index) |
Returns the chapter with the specified index. More... | |
virtual std::size_t | chapterCount () const |
Returns the number of chapters the container holds. More... | |
virtual AbstractAttachment * | createAttachment () |
Creates and returns a new attachment. More... | |
virtual AbstractAttachment * | attachment (std::size_t index) |
Returns the attachment with the specified index. More... | |
virtual std::size_t | attachmentCount () const |
Returns the number of attachments the container holds. More... | |
uint64 | version () const |
Returns the version if known; otherwise returns 0. More... | |
uint64 | readVersion () const |
Returns the "read version" if known; otherwise returns 0. More... | |
const std::string & | documentType () const |
Returns a string that describes the document type if available; otherwise returns an empty string. More... | |
uint64 | doctypeVersion () const |
Returns the document type version if known; otherwise returns 0. More... | |
uint64 | doctypeReadVersion () const |
Returns the document type "read version" if known; otherwise returns 0. More... | |
const std::vector< std::string > & | titles () const |
Returns the title(s) of the file. More... | |
void | setTitle (const std::string &title, std::size_t segmentIndex=0) |
Sets the title for the specified segment. More... | |
virtual bool | supportsTitle () const |
Returns whether the title property is supported. More... | |
virtual std::size_t | segmentCount () const |
Returns the number of segments. More... | |
ChronoUtilities::TimeSpan | duration () const |
Returns the duration of the file if known; otherwise returns a time span of zero ticks. More... | |
ChronoUtilities::DateTime | creationTime () const |
Returns the creation time of the file if known; otherwise the returned date time is null. More... | |
ChronoUtilities::DateTime | modificationTime () const |
Returns the modification time of the file if known; otherwise the returned date time is null. More... | |
uint32 | timeScale () const |
Returns the time scale of the file if known; otherwise returns 0. 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 | |
void | internalParseHeader () |
Internally called to parse the header. More... | |
void | internalParseTags () |
Internally called to parse the tags. More... | |
void | internalParseTracks () |
Internally called to parse the tracks. More... | |
void | internalMakeFile () |
Internally called to make the file. More... | |
![]() | |
AbstractContainer (std::iostream &stream, uint64 startOffset) | |
Constructs a new container for the specified file stream at the specified startOffset. More... | |
virtual void | internalParseChapters () |
Internally called to parse the chapters. More... | |
virtual void | internalParseAttachments () |
Internally called to parse the attachments. More... | |
![]() | |
StatusProvider () | |
Constructs a new StatusProvider. More... | |
Implementation of GenericContainer<MediaFileInfo, Mp4Tag, Mp4Track, Mp4Atom>.
Definition at line 19 of file mp4container.h.
Media::Mp4Container::Mp4Container | ( | MediaFileInfo & | fileInfo, |
uint64 | startOffset | ||
) |
Constructs a new container for the specified fileInfo at the specified startOffset.
Definition at line 35 of file mp4container.cpp.
Media::Mp4Container::~Mp4Container | ( | ) |
Definition at line 40 of file mp4container.cpp.
|
virtual |
Determines the position of the index.
Reimplemented from Media::AbstractContainer.
Definition at line 61 of file mp4container.cpp.
|
virtual |
Determines the position of the tags inside the file.
Reimplemented from Media::AbstractContainer.
Definition at line 49 of file mp4container.cpp.
|
protectedvirtual |
Internally called to make the file.
Must be implemented when subclassing.
Throws | Failure or a derived class when a parsing error occurs. |
Throws | std::ios_base::failure when an IO error occurs. |
Reimplemented from Media::AbstractContainer.
Definition at line 218 of file mp4container.cpp.
|
protectedvirtual |
Internally called to parse the header.
Must be implemented when subclassing to provide this feature.
Throws | Failure or a derived class when a parsing error occurs. |
Throws | std::ios_base::failure when an IO error occurs. |
Reimplemented from Media::AbstractContainer.
Definition at line 73 of file mp4container.cpp.
|
protectedvirtual |
Internally called to parse the tags.
Must be implemented when subclassing to provide this feature.
Throws | Failure or a derived class when a parsing error occurs. |
Throws | std::ios_base::failure when an IO error occurs. |
Reimplemented from Media::AbstractContainer.
Definition at line 89 of file mp4container.cpp.
|
protectedvirtual |
Internally called to parse the tracks.
Must be implemented when subclassing to provide this feature.
Throws | Failure or a derived class when a parsing error occurs. |
Throws | std::ios_base::failure when an IO error occurs. |
Reimplemented from Media::AbstractContainer.
Definition at line 117 of file mp4container.cpp.
|
inline |
Returns whether the file is fragmented.
Track information needs to be parsed to detect fragmentation.
Definition at line 52 of file mp4container.h.
|
virtual |
Discards all parsing results.
Reimplemented from Media::AbstractContainer.
Definition at line 43 of file mp4container.cpp.
|
inlinevirtual |
Returns whether the implementation supports adding or removing of tracks.
Reimplemented from Media::AbstractContainer.
Definition at line 43 of file mp4container.h.