1#ifndef TAG_PARSER_MEDIAINFO_H
2#define TAG_PARSER_MEDIAINFO_H
11#include <unordered_set>
14#include <c++utilities/misc/flagenumclass.h>
34enum class TagType :
unsigned int;
118 std::vector<AbstractChapter *>
chapters()
const;
122 std::vector<AbstractAttachment *>
attachments()
const;
127 std::vector<AbstractTrack *>
tracks()
const;
129 CppUtilities::TimeSpan
duration()
const;
140 const std::vector<std::unique_ptr<Id3v2Tag>> &
id3v2Tags()
const;
141 void tags(std::vector<Tag *> &
tags)
const;
142 std::vector<Tag *>
tags()
const;
146 const std::vector<std::unique_ptr<MatroskaTag>> &
matroskaTags()
const;
214 std::streamoff m_containerOffset;
215 std::uint64_t m_paddingSize;
216 std::uint64_t m_effectiveSize;
217 std::vector<std::streamoff> m_actualId3v2TagOffsets;
218 std::unique_ptr<AbstractContainer> m_container;
223 std::unique_ptr<AbstractTrack> m_singleTrack;
227 std::unique_ptr<Id3v1Tag> m_id3v1Tag;
228 std::vector<std::unique_ptr<Id3v2Tag>> m_id3v2Tags;
235 std::string m_backupDirectory;
236 std::string m_saveFilePath;
237 std::string m_writingApplication;
238 std::size_t m_minPadding;
239 std::size_t m_maxPadding;
240 std::size_t m_preferredPadding;
244 std::uint64_t m_maxFullParseSize;
245 std::unique_ptr<MediaFileInfoPrivate> m_p;
253 return m_containerParsingStatus;
264 return m_containerFormat;
302 return static_cast<std::uint64_t
>(m_containerOffset);
310 return m_paddingSize;
319 return m_effectiveSize;
327 return m_tagsParsingStatus;
335 return m_tracksParsingStatus;
348 return m_singleTrack ? 1 : (m_container ? m_container->trackCount() : 0);
356 return m_chaptersParsingStatus;
364 return m_attachmentsParsingStatus;
372 return m_id3v1Tag !=
nullptr;
380 return !m_id3v2Tags.empty();
392 return m_id3v1Tag.get();
413 m_paddingSize = newPaddingSize;
423 return m_backupDirectory;
450 return m_saveFilePath;
487 return m_writingApplication;
513 return m_container.get();
521 return m_fileHandlingFlags;
529 m_fileHandlingFlags = flags;
634 return m_preferredPadding;
654 return m_tagPosition;
699 return m_indexPosition;
747 return m_maxFullParseSize;
The AbortableProgressFeedback class provides feedback about an ongoing operation via callbacks.
The AbstractContainer class provides an interface and common functionality to parse and make a certai...
The AbstractTrack class parses and stores technical information about video, audio and other kinds of...
BasicFileInfo()
Constructs a new BasicFileInfo for the specified file.
const std::string & path() const
Returns the path of the current file.
std::uint64_t size() const
Returns size of the current file in bytes.
The Diagnostics class is a container for DiagMessage.
The EbmlElement class helps to parse EBML files such as Matroska files.
Implementation of TagParser::Tag for ID3v1 tags.
Implementation of TagParser::Tag for ID3v2 tags.
Implementation of GenericContainer<MediaFileInfo, MatroskaTag, MatroskaTrack, EbmlElement>.
Implementation of TagParser::Tag for the Matroska container.
The Mp4Atom class helps to parse MP4 files.
Implementation of GenericContainer<MediaFileInfo, Mp4Tag, Mp4Track, Mp4Atom>.
Implementation of TagParser::Tag for the MP4 container.
Implementation of TagParser::AbstractContainer for Ogg files.
The Tag class is used to store, read and write tag information.
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.
Contains all classes and functions of the TagInfo library.
TAG_PARSER_EXPORT std::string_view containerFormatSubversion(ContainerFormat containerFormat)
Returns the subversion of the container format as C-style string.
TAG_PARSER_EXPORT std::string_view containerFormatName(ContainerFormat containerFormat)
Returns the name of the specified container format as C-style string.
TagType
Specifies the tag type.
ParsingStatus
The ParsingStatus enum specifies whether a certain part of the file (tracks, tags,...
MediaType
The MediaType enum specifies the type of media data (audio, video, text, ...).
MediaFileStructureFlags
The MediaFileStructureFlags enum specifies flags which describing the structure of a media file.
ContainerFormat
Specifies the container format.
MediaFileHandlingFlags
The MediaFileHandlingFlags enum specifies flags which controls the behavior of MediaFileInfo objects.
@ PreserveWritingApplication
@ NormalizeKnownTagFieldIds
@ PreserveRawTimingValues
@ PreserveMuxingApplication
CPP_UTILITIES_MARK_FLAG_ENUM_CLASS(TagParser, TagParser::TagCreationFlags)
The TagSettings struct contains settings which can be passed to MediaFileInfo::createAppropriateTags(...