diff --git a/mediafileinfo.cpp b/mediafileinfo.cpp index 0de12d3..0fae5c8 100644 --- a/mediafileinfo.cpp +++ b/mediafileinfo.cpp @@ -76,6 +76,7 @@ MediaFileInfo::MediaFileInfo() : m_forceFullParse(MEDIAINFO_CPP_FORCE_FULL_PARSE), m_minPadding(0), m_maxPadding(0), + m_preferredPadding(0), m_tagPosition(TagPosition::BeforeData), m_forceTagPosition(true) {} @@ -98,6 +99,7 @@ MediaFileInfo::MediaFileInfo(const string &path) : m_forceFullParse(MEDIAINFO_CPP_FORCE_FULL_PARSE), m_minPadding(0), m_maxPadding(0), + m_preferredPadding(0), m_tagPosition(TagPosition::BeforeData), m_forceTagPosition(true) {} diff --git a/mediafileinfo.h b/mediafileinfo.h index 382ece4..f7d87f3 100644 --- a/mediafileinfo.h +++ b/mediafileinfo.h @@ -145,6 +145,8 @@ public: void setMinPadding(size_t minPadding); size_t maxPadding() const; void setMaxPadding(size_t maxPadding); + size_t preferredPadding() const; + void setPreferredPadding(size_t preferredPadding); TagPosition tagPosition() const; void setTagPosition(TagPosition tagPosition); bool forceTagPosition() const; @@ -180,6 +182,7 @@ private: bool m_forceFullParse; size_t m_minPadding; size_t m_maxPadding; + size_t m_preferredPadding; TagPosition m_tagPosition; bool m_forceTagPosition; }; @@ -430,6 +433,27 @@ inline void MediaFileInfo::setMaxPadding(size_t maxPadding) m_maxPadding = maxPadding; } +/*! + * \brief 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. + */ +inline size_t MediaFileInfo::preferredPadding() const +{ + return m_preferredPadding; +} + +/*! + * \brief Sets the padding to be written before the data block when applying changes and the file needs to be rewritten anyways. + * \remarks This value might be ignored if not supported by the container/tag format or the corresponding implementation. + * \sa preferredPadding() + */ +inline void MediaFileInfo::setPreferredPadding(size_t preferredPadding) +{ + m_preferredPadding = preferredPadding; +} + /*! * \brief Returns the position (in the output file) where the tag information is written when applying changes. * \sa setTagPosition()