Tag Parser
6.4.0
C++ library for reading and writing MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags
|
The MediaFileInfo class allows to read and write tag information providing a container/tag format independent interface. More...
#include <mediafileinfo.h>
Public Member Functions | |
MediaFileInfo () | |
Constructs a new MediaFileInfo. More... | |
MediaFileInfo (const std::string &path) | |
Constructs a new MediaFileInfo for the specified file. More... | |
MediaFileInfo (const MediaFileInfo &)=delete | |
MediaFileInfo & | operator= (const MediaFileInfo &)=delete |
~MediaFileInfo () | |
Destroys the MediaFileInfo. More... | |
void | parseContainerFormat () |
Parses the container format of the current file. More... | |
void | parseTracks () |
Parses the tracks of the current file. More... | |
void | parseTags () |
Parses the tag(s) of the current file. More... | |
void | parseChapters () |
Parses the chapters of the current file. More... | |
void | parseAttachments () |
Parses the attachments of the current file. More... | |
void | parseEverything () |
Parses the container format, the tracks and the tag information of the current file. More... | |
void | applyChanges () |
Applies assigned/changed tag information to the current file. More... | |
ContainerFormat | containerFormat () const |
Returns the container format of the current file. More... | |
const char * | containerFormatName () const |
Returns the name of the container format as C-style string. More... | |
const char * | containerFormatAbbreviation () const |
Returns the abbreviation of the container format as C-style string. More... | |
const char * | containerFormatSubversion () const |
Returns the subversion of the container format as C-style string. More... | |
const char * | mimeType () const |
Returns the MIME-type of the container format as C-style string. More... | |
uint64 | containerOffset () const |
Returns the actual container start offset. More... | |
uint64 | paddingSize () const |
Returns the padding size. More... | |
AbstractContainer * | container () const |
Returns the container for the current file. More... | |
ParsingStatus | containerParsingStatus () const |
Returns an indication whether the container format has been parsed yet. More... | |
ParsingStatus | chaptersParsingStatus () const |
Returns whether the chapters have been parsed yet. More... | |
std::vector< AbstractChapter * > | chapters () const |
Returns all chapters assigned to the current file. More... | |
bool | areChaptersSupported () const |
Returns an indication whether this library supports parsing the chapters of the current file. More... | |
ParsingStatus | attachmentsParsingStatus () const |
Returns whether the attachments have been parsed yet. More... | |
std::vector< AbstractAttachment * > | attachments () const |
Returns all attachments assigned to the current file. More... | |
bool | areAttachmentsSupported () const |
Returns an indication whether this library supports attachment format of the current file. More... | |
ParsingStatus | tracksParsingStatus () const |
Returns an indication whether tracks have been parsed yet. More... | |
std::size_t | trackCount () const |
Returns the number of tracks that could be parsed. More... | |
std::vector< AbstractTrack * > | tracks () const |
Returns the tracks for the current file. More... | |
bool | hasTracksOfType (Media::MediaType type) const |
Returns an indication whether the current file has tracks of the specified type. More... | |
ChronoUtilities::TimeSpan | duration () const |
Returns the overall duration of the file is known; otherwise returns a TimeSpan with zero ticks. More... | |
std::unordered_set< std::string > | availableLanguages (Media::MediaType type=Media::MediaType::Audio) const |
Determines the available languages for specified media type (by default MediaType::Audio). More... | |
std::string | technicalSummary () const |
Generates a short technical summary about the file's tracks. More... | |
bool | areTracksSupported () const |
Returns an indication whether this library supports parsing the tracks information of the current file. More... | |
ParsingStatus | tagsParsingStatus () const |
Returns an indication whether tag information has been parsed yet. More... | |
bool | hasId3v1Tag () const |
Returns an indication whether an ID3v1 tag is assigned. More... | |
bool | hasId3v2Tag () const |
Returns an indication whether an ID3v2 tag is assigned. More... | |
bool | hasAnyTag () const |
Returns an indication whether a tag of any format is assigned. More... | |
Id3v1Tag * | id3v1Tag () const |
Returns a pointer to the assigned ID3v1 tag or nullptr if none is assigned. More... | |
const std::vector< std::unique_ptr< Id3v2Tag > > & | id3v2Tags () const |
Returns pointers to the assigned ID3v2 tags. More... | |
void | tags (std::vector< Tag *> &tags) const |
Stores all tags assigned to the current file in the specified vector. More... | |
std::vector< Tag * > | tags () const |
Returns all tags assigned to the current file. More... | |
Mp4Tag * | mp4Tag () const |
Returns a pointer to the assigned MP4 tag or nullptr if none is assigned. More... | |
const std::vector< std::unique_ptr< MatroskaTag > > & | matroskaTags () const |
Returns pointers to the assigned Matroska tags. More... | |
VorbisComment * | vorbisComment () const |
Returns a pointer to the first assigned Vorbis comment or nullptr if none is assigned. More... | |
bool | areTagsSupported () const |
Returns an indication whether this library supports the tag format of the current file. More... | |
bool | createAppropriateTags (bool treatUnknownFilesAsMp3Files=false, TagUsage id3v1usage=TagUsage::KeepExisting, TagUsage id3v2usage=TagUsage::Always, bool id3InitOnCreate=false, bool id3TransferValuesOnRemoval=true, bool mergeMultipleSuccessiveId3v2Tags=true, bool keepExistingId3v2version=true, byte id3v2MajorVersion=3, const std::vector< TagTarget > &requiredTargets=std::vector< TagTarget >()) |
Ensures appropriate tags are created according the given specifications. More... | |
bool | removeId3v1Tag () |
Removes a possibly assigned ID3v1 tag from the current file. More... | |
Id3v1Tag * | createId3v1Tag () |
Creates an ID3v1 tag for the current file. More... | |
bool | removeId3v2Tag (Id3v2Tag *tag) |
Removes an assigned ID3v2 tag from the current file. More... | |
bool | removeAllId3v2Tags () |
Removes all assigned ID3v2 tags from the current file. More... | |
Id3v2Tag * | createId3v2Tag () |
Creates an ID3v2 tag for the current file. More... | |
void | removeTag (Tag *tag) |
Removes a possibly assigned tag from the current file. More... | |
void | removeAllTags () |
Removes all assigned tags from the file. More... | |
void | mergeId3v2Tags () |
Merges the assigned ID3v2 tags into a single ID3v2 tag. More... | |
bool | id3v1ToId3v2 () |
Converts an existing ID3v1 tag into an ID3v2 tag. More... | |
bool | id3v2ToId3v1 () |
Converts the existing ID3v2 tags into an ID3v1 tag. More... | |
VorbisComment * | createVorbisComment () |
Creates a Vorbis comment for the current file. More... | |
bool | removeVorbisComment () |
Removes all assigned Vorbis comment from the current file. More... | |
bool | haveRelatedObjectsNotifications () const |
Returns an indication whether at least one related object (track, tag, container) has notifications. More... | |
NotificationType | worstNotificationTypeIncludingRelatedObjects () const |
Returns the worst notification type including related objects such as track, tag and container. More... | |
void | gatherRelatedNotifications (NotificationList ¬ifications) const |
Returns the notifications of the current instance and all related objects (tracks, tags, container, ...). More... | |
NotificationList | gatherRelatedNotifications () const |
Returns the notifications of the current instance and all related objects (tracks, tags, container, ...). More... | |
void | clearParsingResults () |
Clears all parsing results and assigned/created/changed information such as container format, tracks, tags, ... More... | |
const std::string & | saveFilePath () const |
Returns the "save file path" which has been set using setSaveFilePath(). More... | |
void | setSaveFilePath (const std::string &saveFilePath) |
Sets the "save file path". More... | |
bool | isForcingFullParse () const |
Returns an indication whether forcing a full parse is enabled. More... | |
void | setForceFullParse (bool forceFullParse) |
Sets whether forcing a full parse is enabled. More... | |
bool | isForcingRewrite () const |
Returns whether forcing rewriting (when applying changes) is enabled. More... | |
void | setForceRewrite (bool forceRewrite) |
Sets whether forcing rewriting (when applying changes) is enabled. More... | |
size_t | minPadding () const |
Returns the minimum padding to be written before the data blocks when applying changes. More... | |
void | setMinPadding (size_t minPadding) |
Sets the minimum padding to be written before the data blocks when applying changes. More... | |
size_t | maxPadding () const |
Returns the maximum padding to be written before the data blocks when applying changes. More... | |
void | setMaxPadding (size_t maxPadding) |
Sets the maximum padding to be written before the data blocks when applying changes. More... | |
size_t | preferredPadding () const |
Returns the padding to be written before the data block when applying changes and the file needs to be rewritten anyways. More... | |
void | setPreferredPadding (size_t preferredPadding) |
Sets the padding to be written before the data block when applying changes and the file needs to be rewritten anyways. More... | |
ElementPosition | tagPosition () const |
Returns the position (in the output file) where the tag information is written when applying changes. More... | |
void | setTagPosition (ElementPosition tagPosition) |
Sets the position (in the output file) where the tag information is written when applying changes. More... | |
bool | forceTagPosition () const |
Returns whether tagPosition() is forced. More... | |
void | setForceTagPosition (bool forceTagPosition) |
Sets whether tagPosition() is forced. More... | |
ElementPosition | indexPosition () const |
Returns the position (in the output file) where the index is written when applying changes. More... | |
void | setIndexPosition (ElementPosition indexPosition) |
Sets the position (in the output file) where the index is written when applying changes. More... | |
bool | forceIndexPosition () const |
Returns whether indexPosition() is forced. More... | |
void | setForceIndexPosition (bool forceTagPosition) |
Sets whether indexPosition() is forced. More... | |
![]() | |
BasicFileInfo (const std::string &path=std::string()) | |
Constructs a new BasicFileInfo for the specified file. More... | |
BasicFileInfo (const BasicFileInfo &)=delete | |
BasicFileInfo & | operator= (const BasicFileInfo &)=delete |
virtual | ~BasicFileInfo () |
Destroys the BasicFileInfo. More... | |
void | open (bool readOnly=false) |
Opens a std::fstream for the current file. More... | |
void | reopen (bool readonly=false) |
Opens a std::fstream for the current file. More... | |
bool | isOpen () const |
Indicates whether a std::fstream is open for the current file. More... | |
bool | isReadOnly () const |
Indicates whether the last open()/reopen() call was read-only. More... | |
void | close () |
A possibly opened std::fstream will be closed. More... | |
void | invalidate () |
Invalidates the file info manually. More... | |
IoUtilities::NativeFileStream & | stream () |
Returns the std::fstream for the current instance. More... | |
const IoUtilities::NativeFileStream & | stream () const |
Returns the std::fstream for the current instance. More... | |
const std::string & | path () const |
Returns the path of the current file. More... | |
void | setPath (const std::string &path) |
Sets the current file. More... | |
std::string | fileName (bool cutExtension=false) const |
Returns the file name of the current file. More... | |
std::string | extension () const |
Returns the extension of the current file. More... | |
std::string | pathWithoutExtension () const |
Returns the path of the current file without the extension/suffix. More... | |
std::string | containingDirectory () const |
Returns the path of the directory containing the current file. More... | |
uint64 | size () const |
Returns size of the current file in bytes. More... | |
void | reportSizeChanged (uint64 newSize) |
Call this function to report that the size changed. More... | |
void | reportPathChanged (const std::string &newPath) |
Call this function to report that the path changed. 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 | |
virtual void | invalidated () |
Reimplemented from BasicFileInfo::invalidated(). More... | |
![]() | |
StatusProvider () | |
Constructs a new StatusProvider. More... | |
Additional Inherited Members | |
![]() | |
typedef std::function< void(StatusProvider &sender)> | CallbackFunction |
typedef std::vector< CallbackFunction > | CallbackVector |
typedef std::pair< int, CallbackFunction > | CallbackPair |
![]() | |
static std::string | fileName (const std::string &path, bool cutExtension=false) |
Returns the file name of the given file. More... | |
static std::string | extension (const std::string &path) |
Returns the extension of the given file. More... | |
static std::string | pathWithoutExtension (const std::string &fullPath) |
Returns a copy of the given path without the extension/suffix. More... | |
static std::string | containingDirectory (const std::string &path) |
Returns the path of the directory containing the given file. More... | |
The MediaFileInfo class allows to read and write tag information providing a container/tag format independent interface.
It also provides some technical information such as contained streams.
For examples see "cli/mainfeatures.cpp" of the tageditor repository.
Definition at line 53 of file mediafileinfo.h.
Media::MediaFileInfo::MediaFileInfo | ( | ) |
Constructs a new MediaFileInfo.
Definition at line 79 of file mediafileinfo.cpp.
Media::MediaFileInfo::MediaFileInfo | ( | const std::string & | path | ) |
Constructs a new MediaFileInfo for the specified file.
path | Specifies the absolute or relative path of the file. |
Definition at line 104 of file mediafileinfo.cpp.
|
delete |
Media::MediaFileInfo::~MediaFileInfo | ( | ) |
Destroys the MediaFileInfo.
Definition at line 128 of file mediafileinfo.cpp.
void Media::MediaFileInfo::applyChanges | ( | ) |
Applies assigned/changed tag information to the current file.
This method applies previously assigned tag information to the current file.
Depending on the changes to be applied the file will be rewritten.
When the file needs to be rewritten it will be renamed. A new file with the old name will be created to replace the old file.
Throws | std::ios_base::failure when an IO error occurs. |
Throws | Media::Failure or a derived exception when a making error occurs. |
Definition at line 644 of file mediafileinfo.cpp.
bool Media::MediaFileInfo::areAttachmentsSupported | ( | ) | const |
Returns an indication whether this library supports attachment format of the current file.
Definition at line 1077 of file mediafileinfo.cpp.
bool Media::MediaFileInfo::areChaptersSupported | ( | ) | const |
Returns an indication whether this library supports parsing the chapters of the current file.
Definition at line 1060 of file mediafileinfo.cpp.
bool Media::MediaFileInfo::areTagsSupported | ( | ) | const |
Returns an indication whether this library supports the tag format of the current file.
Definition at line 1115 of file mediafileinfo.cpp.
bool Media::MediaFileInfo::areTracksSupported | ( | ) | const |
Returns an indication whether this library supports parsing the tracks information of the current file.
Definition at line 1094 of file mediafileinfo.cpp.
vector< AbstractAttachment * > Media::MediaFileInfo::attachments | ( | ) | const |
Returns all attachments assigned to the current file.
Definition at line 1199 of file mediafileinfo.cpp.
|
inline |
Returns whether the attachments have been parsed yet.
Definition at line 311 of file mediafileinfo.h.
unordered_set< string > Media::MediaFileInfo::availableLanguages | ( | Media::MediaType | type = Media::MediaType::Audio | ) | const |
Determines the available languages for specified media type (by default MediaType::Audio).
If type is MediaType::Unknown, all media types are considered.
parseTracks() needs to be called before. Otherwise this method always returns an empty set.
Definition at line 852 of file mediafileinfo.cpp.
vector< AbstractChapter * > Media::MediaFileInfo::chapters | ( | ) | const |
Returns all chapters assigned to the current file.
Definition at line 1181 of file mediafileinfo.cpp.
|
inline |
Returns whether the chapters have been parsed yet.
Definition at line 303 of file mediafileinfo.h.
void Media::MediaFileInfo::clearParsingResults | ( | ) |
Clears all parsing results and assigned/created/changed information such as container format, tracks, tags, ...
This allows a rescan of the file using parsing methods like parseContainerFormat(). (These methods do nothing if the information to be parsed has already been gathered.)
Definition at line 1343 of file mediafileinfo.cpp.
|
inline |
Returns the container for the current file.
If there is not corresponding subclass of AbstractContainer for the container format or the container has not been parsed yet using the parseContainerFormat() method nullptr will be returned.
Definition at line 394 of file mediafileinfo.h.
|
inline |
Returns the container format of the current file.
parseContainerFormat() needs to be called before. Otherwise always ContainerFormat::Unknown will be returned.
Definition at line 220 of file mediafileinfo.h.
const char * Media::MediaFileInfo::containerFormatAbbreviation | ( | ) | const |
Returns the abbreviation of the container format as C-style string.
This abbreviation might be used as file extension.
parseContainerFormat() needs to be called before. Otherwise always an empty string will be returned.
Definition at line 711 of file mediafileinfo.cpp.
|
inline |
Returns the name of the container format as C-style string.
parseContainerFormat() needs to be called before. Otherwise always the name "Unknown" will be returned.
Definition at line 235 of file mediafileinfo.h.
|
inline |
Returns the subversion of the container format as C-style string.
parseContainerFormat() needs to be called before. Otherwise always an empty string will be returned.
Definition at line 250 of file mediafileinfo.h.
|
inline |
Returns the actual container start offset.
Definition at line 258 of file mediafileinfo.h.
|
inline |
Returns an indication whether the container format has been parsed yet.
Definition at line 209 of file mediafileinfo.h.
bool Media::MediaFileInfo::createAppropriateTags | ( | bool | treatUnknownFilesAsMp3Files = false , |
TagUsage | id3v1usage = TagUsage::KeepExisting , |
||
TagUsage | id3v2usage = TagUsage::Always , |
||
bool | id3InitOnCreate = false , |
||
bool | id3TransferValuesOnRemoval = true , |
||
bool | mergeMultipleSuccessiveId3v2Tags = true , |
||
bool | keepExistingId3v2version = true , |
||
byte | id3v2MajorVersion = 3 , |
||
const std::vector< TagTarget > & | requiredTargets = std::vector<TagTarget>() |
||
) |
Ensures appropriate tags are created according the given specifications.
treatUnknownFilesAsMp3Files | Specifies whether unknown file formats should be treated as MP3 (might break the file). |
id3v1usage | Specifies the usage of ID3v1 when creating tags for MP3 files (has no effect when the file is no MP3 file or not treated as one). |
id3v2usage | Specifies the usage of ID3v2 when creating tags for MP3 files (has no effect when the file is no MP3 file or not treated as one). |
id3InitOnCreate | Indicates whether to initialize newly created ID3 tags (according to id3v1usage and id3v2usage) with the values of the already present ID3 tags. |
id3TransferValuesOnRemoval | Indicates whether values of removed ID3 tags (according to id3v1usage and id3v2usage) should be transfered to remaining ID3 tags (no values will be overwritten). |
mergeMultipleSuccessiveId3v2Tags | Specifies whether multiple successive ID3v2 tags should be merged (see mergeId3v2Tags()). |
keepExistingId3v2version | Specifies whether the version of existing ID3v2 tags should be adjusted to id3v2version (otherwise id3v2version is only used when creating a new ID3v2 tag). |
id3v2MajorVersion | Specifies the ID3v2 version to be used. Valid values are 2, 3 and 4. |
requiredTargets | Specifies the required targets. If targets are not supported by the container an informal notification is added. |
Definition at line 511 of file mediafileinfo.cpp.
Id3v1Tag * Media::MediaFileInfo::createId3v1Tag | ( | ) |
Creates an ID3v1 tag for the current file.
This method does nothing the tags of the current file haven't been parsed using the parseTags() method.
If the file has already an ID3v1 tag no new tag will be created.
To apply the created tag and other changings call the applyChanges() method.
Definition at line 933 of file mediafileinfo.cpp.
Id3v2Tag * Media::MediaFileInfo::createId3v2Tag | ( | ) |
Creates an ID3v2 tag for the current file.
This method does nothing the tags of the current file haven't been parsed using the parseTags() method.
If the file has already an ID3v2 tag no new tag will be created.
To apply the created tag and other changings call the applyChanges() method.
Definition at line 1002 of file mediafileinfo.cpp.
VorbisComment * Media::MediaFileInfo::createVorbisComment | ( | ) |
Creates a Vorbis comment for the current file.
This method does nothing if the tags/tracks of the current file haven't been parsed using the parseTags() and parseTracks() methods.
If the file has already a Vorbis comment no new tag will be created.
To apply the created tag and other changings call the applyChanges() method.
Definition at line 1444 of file mediafileinfo.cpp.
ChronoUtilities::TimeSpan Media::MediaFileInfo::duration | ( | ) | const |
Returns the overall duration of the file is known; otherwise returns a TimeSpan with zero ticks.
parseTracks() needs to be called before. Otherwise this method always returns false.
Definition at line 832 of file mediafileinfo.cpp.
|
inline |
Returns whether indexPosition() is forced.
Definition at line 584 of file mediafileinfo.h.
|
inline |
Returns whether tagPosition() is forced.
Definition at line 544 of file mediafileinfo.h.
void Media::MediaFileInfo::gatherRelatedNotifications | ( | NotificationList & | notifications | ) | const |
Returns the notifications of the current instance and all related objects (tracks, tags, container, ...).
Definition at line 1283 of file mediafileinfo.cpp.
NotificationList Media::MediaFileInfo::gatherRelatedNotifications | ( | ) | const |
Returns the notifications of the current instance and all related objects (tracks, tags, container, ...).
Definition at line 1327 of file mediafileinfo.cpp.
bool Media::MediaFileInfo::hasAnyTag | ( | ) | const |
Returns an indication whether a tag of any format is assigned.
Definition at line 1524 of file mediafileinfo.cpp.
|
inline |
Returns an indication whether an ID3v1 tag is assigned.
Definition at line 319 of file mediafileinfo.h.
|
inline |
Returns an indication whether an ID3v2 tag is assigned.
Definition at line 327 of file mediafileinfo.h.
bool Media::MediaFileInfo::hasTracksOfType | ( | Media::MediaType | type | ) | const |
Returns an indication whether the current file has tracks of the specified type.
parseTracks() needs to be called before. Otherwise this method always returns false.
Definition at line 807 of file mediafileinfo.cpp.
bool Media::MediaFileInfo::haveRelatedObjectsNotifications | ( | ) | const |
Returns an indication whether at least one related object (track, tag, container) has notifications.
Definition at line 1216 of file mediafileinfo.cpp.
|
inline |
Returns a pointer to the assigned ID3v1 tag or nullptr if none is assigned.
Definition at line 339 of file mediafileinfo.h.
bool Media::MediaFileInfo::id3v1ToId3v2 | ( | ) |
Converts an existing ID3v1 tag into an ID3v2 tag.
Effectively merges all ID3 tags into a single ID3v2 tag.
Definition at line 1402 of file mediafileinfo.cpp.
|
inline |
Returns pointers to the assigned ID3v2 tags.
Definition at line 351 of file mediafileinfo.h.
bool Media::MediaFileInfo::id3v2ToId3v1 | ( | ) |
Converts the existing ID3v2 tags into an ID3v1 tag.
Effectively merges all ID3 tags into a single ID3v1 tag.
Definition at line 1421 of file mediafileinfo.cpp.
|
inline |
Returns the position (in the output file) where the index is written when applying changes.
Definition at line 564 of file mediafileinfo.h.
|
protectedvirtual |
Reimplemented from BasicFileInfo::invalidated().
Reimplemented from Media::BasicFileInfo.
Definition at line 1548 of file mediafileinfo.cpp.
|
inline |
Returns an indication whether forcing a full parse is enabled.
If enabled the parser will analyse the file structure as deep as possible. This might cause long parsing times for big files.
Definition at line 407 of file mediafileinfo.h.
|
inline |
Returns whether forcing rewriting (when applying changes) is enabled.
Definition at line 425 of file mediafileinfo.h.
const vector< unique_ptr< MatroskaTag > > & Media::MediaFileInfo::matroskaTags | ( | ) | const |
Returns pointers to the assigned Matroska tags.
Definition at line 1151 of file mediafileinfo.cpp.
|
inline |
Returns the maximum padding to be written before the data blocks when applying changes.
Maximum padding in front of the file allows adding additional fields afterwards whithout needing to rewrite the entire file or to put tag information at the end of the file.
The default value is 0 which will force the library to rewrite the entire file almost always when applying changes. Increate the value using setMaxPadding() to prevent this.
Definition at line 478 of file mediafileinfo.h.
void Media::MediaFileInfo::mergeId3v2Tags | ( | ) |
Merges the assigned ID3v2 tags into a single ID3v2 tag.
Some files I've got contain multiple successive ID3v2 tags. If the tags of such an file is parsed by this class, these tags will be kept seperate. This method merges all assigned ID3v2 tags. All fields from the additional ID3v2 tags will be inserted to the first tag. All assigned ID3v2 tag instances except thefirst will be destroyed.
A possibly assigned ID3v1 tag remains unaffected.
This method does nothing the tags of the current file haven't been parsed using the parseTags() method.
Definition at line 1377 of file mediafileinfo.cpp.
const char * Media::MediaFileInfo::mimeType | ( | ) | const |
Returns the MIME-type of the container format as C-style string.
parseContainerFormat() needs to be called before. Otherwise always an empty string will be returned.
Definition at line 750 of file mediafileinfo.cpp.
|
inline |
Returns the minimum padding to be written before the data blocks when applying changes.
Minimum padding in front of the file allows adding additional fields afterwards whithout needing to rewrite the entire file or to put tag information at the end of the file.
The default value is 0.
Definition at line 450 of file mediafileinfo.h.
Mp4Tag * Media::MediaFileInfo::mp4Tag | ( | ) | const |
Returns a pointer to the assigned MP4 tag or nullptr if none is assigned.
Definition at line 1139 of file mediafileinfo.cpp.
|
delete |
|
inline |
Returns the padding size.
Container format and tags should have been parsed yet.
Definition at line 266 of file mediafileinfo.h.
void Media::MediaFileInfo::parseAttachments | ( | ) |
Parses the attachments of the current file.
This method parses the attachments of the current file if not been parsed yet.
Throws | std::ios_base::failure when an IO error occurs. |
Throws | Media::Failure or a derived exception when a parsing error occurs. |
Definition at line 453 of file mediafileinfo.cpp.
void Media::MediaFileInfo::parseChapters | ( | ) |
Parses the chapters of the current file.
This method parses the chapters of the current file if not been parsed yet.
Throws | std::ios_base::failure when an IO error occurs. |
Throws | Media::Failure or a derived exception when a parsing error occurs. |
Definition at line 420 of file mediafileinfo.cpp.
void Media::MediaFileInfo::parseContainerFormat | ( | ) |
Parses the container format of the current file.
This method parses the container of the current file format if it has not been parsed yet.
After calling this method the methods containerFormat(), containerFormatName(), containerFormatAbbreviation(), containerFormatSubversion(), containerMimeType(), container(), mp4Container() and matroskaContainer() will return the parsed information.
Throws | std::ios_base::failure when an IO error occurs. |
Throws | Media::Failure or a derived exception when a parsing error occurs. |
Definition at line 146 of file mediafileinfo.cpp.
void Media::MediaFileInfo::parseEverything | ( | ) |
Parses the container format, the tracks and the tag information of the current file.
See the individual methods to for more details and exceptions which might be thrown.
Definition at line 481 of file mediafileinfo.cpp.
void Media::MediaFileInfo::parseTags | ( | ) |
Parses the tag(s) of the current file.
This method parses the tag(s) of the current file if not been parsed yet. After calling this method the methods id3v1Tag(), id3v2Tags(), mp4Tag() and allTags() will return the parsed information.
Previously assigned but not applied tag information will be discarted.
Throws | std::ios_base::failure when an IO error occurs. |
Throws | Media::Failure or a derived exception when a parsing error occurs. |
Definition at line 354 of file mediafileinfo.cpp.
void Media::MediaFileInfo::parseTracks | ( | ) |
Parses the tracks of the current file.
This method parses the tracks of the current file if not been parsed yet. After calling this method the methods trackCount(), tracks(), and hasTracksOfType() will return the parsed information.
Throws | std::ios_base::failure when an IO error occurs. |
Throws | Media::Failure or a derived exception when a parsing error occurs. |
Definition at line 293 of file mediafileinfo.cpp.
|
inline |
Returns the padding to be written before the data block when applying changes and the file needs to be rewritten anyways.
Padding in front of the file allows adding additional fields afterwards whithout needing to rewrite the entire file or to put tag information at the end of the file.
Definition at line 499 of file mediafileinfo.h.
bool Media::MediaFileInfo::removeAllId3v2Tags | ( | ) |
Removes all assigned ID3v2 tags from the current file.
To apply the removal and other changings call the applyChanges() method.
Definition at line 978 of file mediafileinfo.cpp.
void Media::MediaFileInfo::removeAllTags | ( | ) |
Removes all assigned tags from the file.
To apply the removal and other changings call the applyChanges() method.
Definition at line 1045 of file mediafileinfo.cpp.
bool Media::MediaFileInfo::removeId3v1Tag | ( | ) |
Removes a possibly assigned ID3v1 tag from the current file.
To apply the removal and other changings call the applyChanges() method.
Definition at line 907 of file mediafileinfo.cpp.
bool Media::MediaFileInfo::removeId3v2Tag | ( | Id3v2Tag * | tag | ) |
Removes an assigned ID3v2 tag from the current file.
To apply the removal and other changings call the applyChanges() method.
tag | Specifies the ID3v2 tag to be removed. |
Definition at line 957 of file mediafileinfo.cpp.
void Media::MediaFileInfo::removeTag | ( | Tag * | tag | ) |
Removes a possibly assigned tag from the current file.
tag | Specifies the tag to be removed. The tag will not only be detached from the file, it will be destroyed as well. Might be nullptr (for convenience; eg. you might want to call file.removeTag(file.mp4Tag()) to ensure no MP4 tag is present without checking before). |
To apply the removal and other changings call the applyChanges() method.
Definition at line 1022 of file mediafileinfo.cpp.
bool Media::MediaFileInfo::removeVorbisComment | ( | ) |
Removes all assigned Vorbis comment from the current file.
To apply the removal and other changings call the applyChanges() method.
Definition at line 1472 of file mediafileinfo.cpp.
|
inline |
Returns the "save file path" which has been set using setSaveFilePath().
Definition at line 360 of file mediafileinfo.h.
|
inline |
Sets whether forcing a full parse is enabled.
Definition at line 417 of file mediafileinfo.h.
|
inline |
Sets whether indexPosition() is forced.
Definition at line 594 of file mediafileinfo.h.
|
inline |
Sets whether forcing rewriting (when applying changes) is enabled.
Definition at line 433 of file mediafileinfo.h.
|
inline |
Sets whether tagPosition() is forced.
Definition at line 554 of file mediafileinfo.h.
|
inline |
Sets the position (in the output file) where the index is written when applying changes.
Definition at line 574 of file mediafileinfo.h.
|
inline |
Sets the maximum padding to be written before the data blocks when applying changes.
Definition at line 488 of file mediafileinfo.h.
|
inline |
Sets the minimum padding to be written before the data blocks when applying changes.
Definition at line 460 of file mediafileinfo.h.
|
inline |
Sets the padding to be written before the data block when applying changes and the file needs to be rewritten anyways.
Definition at line 509 of file mediafileinfo.h.
|
inline |
Sets the "save file path".
If saveFilePath is not empty, this path will be used to save the output file when applying changes using applyChanges(). Thus the current file is not modified by applyChanges() in this case and the variable isForcingRewrite() does not affect the behaviour of applyChanges(). If the changes have been applied without fatal errors the "save file path" is cleared and used as the new regular path().
By default, this path is empty.
Definition at line 379 of file mediafileinfo.h.
|
inline |
Sets the position (in the output file) where the tag information is written when applying changes.
Definition at line 534 of file mediafileinfo.h.
|
inline |
Returns the position (in the output file) where the tag information is written when applying changes.
Definition at line 519 of file mediafileinfo.h.
void Media::MediaFileInfo::tags | ( | std::vector< Tag *> & | tags | ) | const |
Stores all tags assigned to the current file in the specified vector.
Previous elements of the vector will not be cleared.
Definition at line 1501 of file mediafileinfo.cpp.
vector< Tag * > Media::MediaFileInfo::tags | ( | ) | const |
Returns all tags assigned to the current file.
Definition at line 1538 of file mediafileinfo.cpp.
|
inline |
Returns an indication whether tag information has been parsed yet.
Definition at line 274 of file mediafileinfo.h.
string Media::MediaFileInfo::technicalSummary | ( | ) | const |
Generates a short technical summary about the file's tracks.
parseTracks() needs to be called before. Otherwise this method always returns an empty string.
Example (exact format might change in the future!): "H.264-720p / HE-AAC-6ch-eng / HE-AAC-2ch-ger / SRT-eng / SRT-ger"
Definition at line 879 of file mediafileinfo.cpp.
|
inline |
Returns the number of tracks that could be parsed.
parseTracks() needs to be called before. Otherwise this method always returns zero.
Definition at line 295 of file mediafileinfo.h.
vector< AbstractTrack * > Media::MediaFileInfo::tracks | ( | ) | const |
Returns the tracks for the current file.
parseTracks() needs to be called before. Otherwise this method always returns an empty vector.
Definition at line 777 of file mediafileinfo.cpp.
|
inline |
Returns an indication whether tracks have been parsed yet.
Definition at line 282 of file mediafileinfo.h.
VorbisComment * Media::MediaFileInfo::vorbisComment | ( | ) | const |
Returns a pointer to the first assigned Vorbis comment or nullptr if none is assigned.
Definition at line 1167 of file mediafileinfo.cpp.
NotificationType Media::MediaFileInfo::worstNotificationTypeIncludingRelatedObjects | ( | ) | const |
Returns the worst notification type including related objects such as track, tag and container.
Definition at line 1245 of file mediafileinfo.cpp.