1#ifndef TAG_PARSER_MP4ATOM_H
2#define TAG_PARSER_MP4ATOM_H
8#include <c++utilities/conversion/stringconversion.h>
32 static constexpr std::uint8_t minimumElementSize()
39 friend class GenericFileElement<Mp4Atom>;
42 Mp4Atom(ContainerType &container, std::uint64_t startOffset);
44 std::string idToString()
const;
45 bool isParent()
const;
46 bool isPadding()
const;
47 std::uint64_t firstChildOffset()
const;
49 static void seekBackAndWriteAtomSize(std::ostream &stream,
const std::ostream::pos_type &startOffset,
Diagnostics &diag);
50 static void seekBackAndWriteAtomSize64(std::ostream &stream,
const std::ostream::pos_type &startOffset);
51 static constexpr void addHeaderSize(std::uint64_t &dataSize);
52 static void makeHeader(std::uint64_t size, std::uint32_t
id, CppUtilities::BinaryWriter &writer);
55 Mp4Atom(ContainerType &container, std::uint64_t startOffset, std::uint64_t maxSize);
61 std::string parsingContext()
const;
69 auto idString = CppUtilities::interpretIntegerAsString<IdentifierType>(
id());
70 for (
char &c : idString) {
The Diagnostics class is a container for DiagMessage.
std::uint64_t DataSizeType
std::uint32_t IdentifierType
Defines traits for the specified ImplementationType.
DataSizeType dataSize() const
The Mp4Atom class helps to parse MP4 files.
static constexpr void addHeaderSize(std::uint64_t &dataSize)
Adds the header size to the specified data size.
Mp4Atom(ContainerType &container, std::uint64_t startOffset, std::uint64_t maxSize)
std::string idToString() const
Converts the specified atom ID to a printable string.
Mp4Atom(ContainerType &container, std::uint64_t startOffset)
Implementation of GenericContainer<MediaFileInfo, Mp4Tag, Mp4Track, Mp4Atom>.
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.
Contains all classes and functions of the TagInfo library.