|
Tag Parser 12.5.1
C++ library for reading and writing MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags
|
Implementation of GenericContainer<MediaFileInfo, MatroskaTag, MatroskaTrack, EbmlElement>. More...
#include <matroskacontainer.h>
Public Member Functions | |
| MatroskaContainer (MediaFileInfo &stream, std::uint64_t startOffset) | |
| Constructs a new container for the specified fileInfo at the specified startOffset. | |
| ~MatroskaContainer () override | |
| void | validateIndex (Diagnostics &diag, AbortableProgressFeedback &progress) |
| Validates the file index (cue entries). | |
| std::uint64_t | maxIdLength () const |
| Returns the maximal ID length in bytes. | |
| std::uint64_t | maxSizeLength () const |
| Returns the maximal size length in bytes. | |
| const std::vector< std::unique_ptr< MatroskaSeekInfo > > & | seekInfos () const |
| Returns seek information read from "SeekHead"-elements when parsing segment info. | |
| const std::vector< std::unique_ptr< MatroskaEditionEntry > > & | editionEntires () const |
| Returns the edition entries. | |
| MatroskaChapter * | chapter (std::size_t index) override |
| Returns the chapter with the specified index. | |
| std::size_t | chapterCount () const override |
| Returns the number of chapters the container holds. | |
| MatroskaAttachment * | createAttachment () override |
| Creates and returns a new attachment. | |
| MatroskaAttachment * | attachment (std::size_t index) override |
| Returns the attachment with the specified index. | |
| std::size_t | attachmentCount () const override |
| Returns the number of attachments the container holds. | |
| ElementPosition | determineElementPosition (std::uint64_t elementId, Diagnostics &diag) const |
| Determines the position of the element with the specified elementId. | |
| ElementPosition | determineTagPosition (Diagnostics &diag) const override |
| Determines the position of the tags inside the file. | |
| ElementPosition | determineIndexPosition (Diagnostics &diag) const override |
| Determines the position of the index. | |
| virtual bool | supportsTitle () const override |
| Returns whether the title property is supported. | |
| virtual std::size_t | segmentCount () const override |
| Returns the number of segments. | |
| void | reset () override |
| Discards all parsing results. | |
| Public Member Functions inherited from TagParser::GenericContainer< MediaFileInfo, MatroskaTag, MatroskaTrack, EbmlElement > | |
| GenericContainer (MediaFileInfo &fileInfo, std::uint64_t startOffset) | |
| Constructs a new container for the specified fileInfo at the specified startOffset. | |
| ~GenericContainer () override | |
| Destroys the container. | |
| void | validateElementStructure (Diagnostics &diag, AbortableProgressFeedback &progress, std::uint64_t *paddingSize=nullptr) |
| Parses all elements the file consists of. | |
| MediaFileInfo & | fileInfo () const |
| Returns the related file info. | |
| EbmlElement * | firstElement () const |
| Returns the first element of the file if available; otherwiese returns nullptr. | |
| const std::vector< std::unique_ptr< EbmlElement > > & | additionalElements () const |
| Returns all available additional elements. | |
| MatroskaTag * | tag (std::size_t index) override |
| Returns the tag with the specified index. | |
| std::size_t | tagCount () const override |
| Returns the number of tags attached to the container. | |
| MatroskaTrack * | track (std::size_t index) override |
| Returns the track with the specified index. | |
| MatroskaTrack * | trackById (std::uint64_t id) |
| std::size_t | trackCount () const override |
| Returns the number of tracks the container holds. | |
| const std::vector< std::unique_ptr< MatroskaTag > > & | tags () const |
| Returns the tags of the file. | |
| const std::vector< std::unique_ptr< MatroskaTrack > > & | tracks () const |
| Returns the tracks of the file. | |
| MatroskaTag * | createTag (const TagTarget &target=TagTarget()) override |
| Creates and returns a tag for the specified target. | |
| bool | removeTag (Tag *tag) override |
| Removes the specified tag from the container. | |
| void | removeAllTags () override |
| Removes all tags attached to the container. | |
| bool | addTrack (MatroskaTrack *track) |
| Adds the specified track to the container. | |
| bool | removeTrack (AbstractTrack *track) override |
| Removes the specified track to the container. | |
| void | removeAllTracks () override |
| Removes all tracks from the container. | |
| Public Member Functions inherited from TagParser::AbstractContainer | |
| virtual | ~AbstractContainer () |
| Destroys the container. | |
| std::iostream & | stream () |
| Returns the related stream. | |
| void | setStream (std::iostream &stream) |
| Sets the related stream. | |
| std::uint64_t | startOffset () const |
| Returns the start offset in the related stream. | |
| CppUtilities::BinaryReader & | reader () |
| Returns the related BinaryReader. | |
| CppUtilities::BinaryWriter & | writer () |
| Returns the related BinaryWriter. | |
| void | parseHeader (Diagnostics &diag, AbortableProgressFeedback &progress) |
| Parses the header if not parsed yet. | |
| void | parseTags (Diagnostics &diag, AbortableProgressFeedback &progress) |
| Parses the tag information if not parsed yet. | |
| void | parseTracks (Diagnostics &diag, AbortableProgressFeedback &progress) |
| Parses the tracks of the file if not parsed yet. | |
| void | parseChapters (Diagnostics &diag, AbortableProgressFeedback &progress) |
| Parses the chapters of the file if not parsed yet. | |
| void | parseAttachments (Diagnostics &diag, AbortableProgressFeedback &progress) |
| Parses the attachments of the file if not parsed yet. | |
| void | makeFile (Diagnostics &diag, AbortableProgressFeedback &progress) |
| Rewrites the file to apply changed tag information. | |
| bool | isHeaderParsed () const |
| Returns an indication whether the header has been parsed yet. | |
| bool | areTagsParsed () const |
| Returns an indication whether the tags have been parsed yet. | |
| bool | areTracksParsed () const |
| Returns an indication whether the tracks have been parsed yet. | |
| bool | areChaptersParsed () const |
| Returns an indication whether the chapters have been parsed yet. | |
| bool | areAttachmentsParsed () const |
| Returns an indication whether the attachments have been parsed yet. | |
| virtual bool | supportsTrackModifications () const |
| Returns whether the implementation supports adding or removing of tracks. | |
| std::uint64_t | version () const |
| Returns the version if known; otherwise returns 0. | |
| std::uint64_t | readVersion () const |
| Returns the "read version" if known; otherwise returns 0. | |
| const std::string & | documentType () const |
| Returns a string that describes the document type if available; otherwise returns an empty string. | |
| std::uint64_t | doctypeVersion () const |
| Returns the document type version if known; otherwise returns 0. | |
| std::uint64_t | doctypeReadVersion () const |
| Returns the document type "read version" if known; otherwise returns 0. | |
| const std::vector< std::string > & | titles () const |
| Returns the title(s) of the file. | |
| void | setTitle (std::string_view title, std::size_t segmentIndex=0) |
| Sets the title for the specified segment. | |
| const std::vector< std::string > & | muxingApplications () const |
| Returns the muxing applications specified as meta-data. | |
| const std::vector< std::string > & | writingApplications () const |
| Returns the writing applications specified as meta-data. | |
| CppUtilities::TimeSpan | duration () const |
| Returns the duration of the file if known; otherwise returns a time span of zero ticks. | |
| CppUtilities::DateTime | creationTime () const |
| Returns the creation time of the file if known; otherwise the returned date time is null. | |
| CppUtilities::DateTime | modificationTime () const |
| Returns the modification time of the file if known; otherwise the returned date time is null. | |
| std::uint32_t | timeScale () const |
| Returns the time scale of the file if known; otherwise returns 0. | |
Protected Member Functions | |
| void | internalParseHeader (Diagnostics &diag, AbortableProgressFeedback &progress) override |
| Internally called to parse the header. | |
| void | internalParseTags (Diagnostics &diag, AbortableProgressFeedback &progress) override |
| Internally called to parse the tags. | |
| void | internalParseTracks (Diagnostics &diag, AbortableProgressFeedback &progress) override |
| Internally called to parse the tracks. | |
| void | internalParseChapters (Diagnostics &diag, AbortableProgressFeedback &progress) override |
| Internally called to parse the chapters. | |
| void | internalParseAttachments (Diagnostics &diag, AbortableProgressFeedback &progress) override |
| Internally called to parse the attachments. | |
| void | internalMakeFile (Diagnostics &diag, AbortableProgressFeedback &progress) override |
| Internally called to make the file. | |
| Protected Member Functions inherited from TagParser::AbstractContainer | |
| AbstractContainer (std::iostream &stream, std::uint64_t startOffset) | |
| Constructs a new container for the specified file stream at the specified startOffset. | |
| std::vector< std::string > & | muxingApplications () |
| Returns the muxing applications specified as meta-data. | |
| std::vector< std::string > & | writingApplications () |
| Returns the writing applications specified as meta-data. | |
Implementation of GenericContainer<MediaFileInfo, MatroskaTag, MatroskaTrack, EbmlElement>.
Definition at line 24 of file matroskacontainer.h.
| TagParser::MatroskaContainer::MatroskaContainer | ( | MediaFileInfo & | stream, |
| std::uint64_t | startOffset ) |
Constructs a new container for the specified fileInfo at the specified startOffset.
Definition at line 41 of file matroskacontainer.cpp.
|
override |
Definition at line 54 of file matroskacontainer.cpp.
|
inlineoverridevirtual |
Returns the attachment with the specified index.
index must be less than attachmentCount().
Reimplemented from TagParser::AbstractContainer.
Definition at line 107 of file matroskacontainer.h.
|
inlineoverridevirtual |
Returns the number of attachments the container holds.
Reimplemented from TagParser::AbstractContainer.
Definition at line 112 of file matroskacontainer.h.
|
overridevirtual |
Returns the chapter with the specified index.
index must be less than chapterCount().
Reimplemented from TagParser::AbstractContainer.
Definition at line 314 of file matroskacontainer.cpp.
|
overridevirtual |
Returns the number of chapters the container holds.
Reimplemented from TagParser::AbstractContainer.
Definition at line 327 of file matroskacontainer.cpp.
|
overridevirtual |
Creates and returns a new attachment.
Reimplemented from TagParser::AbstractContainer.
Definition at line 336 of file matroskacontainer.cpp.
| ElementPosition TagParser::MatroskaContainer::determineElementPosition | ( | std::uint64_t | elementId, |
| Diagnostics & | diag ) const |
Determines the position of the element with the specified elementId.
Definition at line 365 of file matroskacontainer.cpp.
|
overridevirtual |
Determines the position of the index.
Reimplemented from TagParser::AbstractContainer.
Definition at line 396 of file matroskacontainer.cpp.
|
overridevirtual |
Determines the position of the tags inside the file.
Reimplemented from TagParser::AbstractContainer.
Definition at line 391 of file matroskacontainer.cpp.
|
inline |
Returns the edition entries.
Definition at line 102 of file matroskacontainer.h.
|
overrideprotectedvirtual |
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 TagParser::AbstractContainer.
Definition at line 861 of file matroskacontainer.cpp.
|
overrideprotectedvirtual |
Internally called to parse the attachments.
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 TagParser::AbstractContainer.
Definition at line 776 of file matroskacontainer.cpp.
|
overrideprotectedvirtual |
Internally called to parse the chapters.
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 TagParser::AbstractContainer.
Definition at line 742 of file matroskacontainer.cpp.
|
overrideprotectedvirtual |
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 TagParser::AbstractContainer.
Definition at line 401 of file matroskacontainer.cpp.
|
overrideprotectedvirtual |
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 TagParser::AbstractContainer.
Definition at line 665 of file matroskacontainer.cpp.
|
overrideprotectedvirtual |
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 TagParser::AbstractContainer.
Definition at line 706 of file matroskacontainer.cpp.
|
inline |
Returns the maximal ID length in bytes.
Definition at line 78 of file matroskacontainer.h.
|
inline |
Returns the maximal size length in bytes.
Definition at line 86 of file matroskacontainer.h.
|
overridevirtual |
Discards all parsing results.
Reimplemented from TagParser::GenericContainer< MediaFileInfo, MatroskaTag, MatroskaTrack, EbmlElement >.
Definition at line 58 of file matroskacontainer.cpp.
|
inline |
Returns seek information read from "SeekHead"-elements when parsing segment info.
Definition at line 94 of file matroskacontainer.h.
|
inlineoverridevirtual |
Returns the number of segments.
Reimplemented from TagParser::AbstractContainer.
Definition at line 122 of file matroskacontainer.h.
|
inlineoverridevirtual |
Returns whether the title property is supported.
Reimplemented from TagParser::AbstractContainer.
Definition at line 117 of file matroskacontainer.h.
| void TagParser::MatroskaContainer::validateIndex | ( | Diagnostics & | diag, |
| AbortableProgressFeedback & | progress ) |
Validates the file index (cue entries).
Definition at line 83 of file matroskacontainer.cpp.