Tag Parser: mp4/mp4track.h Source File

Tag Parser 12.5.3 C++ library for reading and writing MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags

Loading...
Searching...
No Matches
mp4track.h
Go to the documentation of this file.
1#ifndef TAG_PARSER_MP4TRACK_H
2#define TAG_PARSER_MP4TRACK_H
3
4#include "../abstracttrack.h"
5
6#include <memory>
7#include <tuple>
8#include <vector>
9
10namespace TagParser {
11
12class Mp4Atom;
13class Mpeg4Descriptor;
14struct AvcConfiguration;
15struct Av1Configuration;
16struct TrackHeaderInfo;
17struct Mp4Timings;
18
19 class TAG_PARSER_EXPORT Mpeg4AudioSpecificConfig {
20public:
21 Mpeg4AudioSpecificConfig();
22
23 std::uint8_t audioObjectType;
24 std::uint8_t sampleFrequencyIndex;
25 std::uint32_t sampleFrequency;
26 std::uint8_t channelConfiguration;
27 std::uint8_t extensionAudioObjectType;
28 bool sbrPresent;
29 bool psPresent;
30 std::uint8_t extensionSampleFrequencyIndex;
31 std::uint32_t extensionSampleFrequency;
32 std::uint8_t extensionChannelConfiguration;
33 bool frameLengthFlag;
34 bool dependsOnCoreCoder;
35 std::uint16_t coreCoderDelay;
36 std::uint8_t extensionFlag;
37 std::uint8_t layerNr;
38 std::uint8_t numOfSubFrame;
39 std::uint16_t layerLength;
40 std::uint8_t resilienceFlags;
41 std::uint8_t epConfig;
42};
43
44 class TAG_PARSER_EXPORT Mpeg4VideoSpecificConfig {
45public:
46 Mpeg4VideoSpecificConfig();
47
48 std::uint8_t profile;
49 std::string userData;
50};
51
52 class TAG_PARSER_EXPORT Mpeg4ElementaryStreamInfo {
53public:
54 Mpeg4ElementaryStreamInfo();
55
56 bool dependencyFlag() const;
57 bool urlFlag() const;
58 bool ocrFlag() const;
59 std::uint8_t priority() const;
60 std::uint8_t streamTypeId() const;
61 bool upstream() const;
62
63 std::uint16_t id;
64 std::uint8_t esDescFlags;
65 std::uint16_t dependsOnId;
66 std::string url;
67 std::uint16_t ocrId;
68 std::uint8_t objectTypeId;
69 std::uint8_t decCfgDescFlags;
70 std::uint32_t bufferSize;
71 std::uint32_t maxBitrate;
72 std::uint32_t averageBitrate;
73 std::unique_ptr<Mpeg4AudioSpecificConfig> audioSpecificConfig;
74 std::unique_ptr<Mpeg4VideoSpecificConfig> videoSpecificConfig;
75};
76
77 inline Mpeg4ElementaryStreamInfo::Mpeg4ElementaryStreamInfo()
78 : id(0)
79 , esDescFlags(0)
80 , dependsOnId(0)
81 , ocrId(0)
82 , objectTypeId(0)
83 , decCfgDescFlags(0)
84 , bufferSize(0)
85 , maxBitrate(0)
86 , averageBitrate(0)
87{
88}
89
90 inline bool Mpeg4ElementaryStreamInfo::dependencyFlag() const
91{
92 return esDescFlags & 0x80;
93}
94
95 inline bool Mpeg4ElementaryStreamInfo::urlFlag() const
96{
97 return esDescFlags & 0x40;
98}
99
100 inline bool Mpeg4ElementaryStreamInfo::ocrFlag() const
101{
102 return esDescFlags & 0x20;
103}
104
105 inline std::uint8_t Mpeg4ElementaryStreamInfo::priority() const
106{
107 return esDescFlags & 0x1F;
108}
109
110 inline std::uint8_t Mpeg4ElementaryStreamInfo::streamTypeId() const
111{
112 return decCfgDescFlags >> 2;
113}
114
115 inline bool Mpeg4ElementaryStreamInfo::upstream() const
116{
117 return decCfgDescFlags & 0x02;
118}
119
120 class TAG_PARSER_EXPORT Mp4Track final : public AbstractTrack {
121public:
122 Mp4Track(Mp4Atom &trakAtom);
123 ~Mp4Track() override;
124 TrackType type() const override;
125
126 // getter methods specific for MP4 tracks
127 Mp4Atom &trakAtom();
128 const std::vector<std::uint32_t> &sampleSizes() const;
129 unsigned int chunkOffsetSize() const;
130 void setChunkOffsetSize(unsigned int chunkOffsetSize);
131 std::uint32_t chunkCount() const;
132 std::uint32_t sampleToChunkEntryCount() const;
133 const Mpeg4ElementaryStreamInfo *mpeg4ElementaryStreamInfo() const;
134 const AvcConfiguration *avcConfiguration() const;
135 const Av1Configuration *av1Configuration() const;
136
137 // methods to parse configuration details from the track header
138 static std::unique_ptr<Mpeg4ElementaryStreamInfo> parseMpeg4ElementaryStreamInfo(
139 CppUtilities::BinaryReader &reader, Mp4Atom *esDescAtom, Diagnostics &diag);
140 static std::unique_ptr<Mpeg4AudioSpecificConfig> parseAudioSpecificConfig(
141 std::istream &stream, std::uint64_t startOffset, std::uint64_t size, Diagnostics &diag);
142 static std::unique_ptr<Mpeg4VideoSpecificConfig> parseVideoSpecificConfig(
143 CppUtilities::BinaryReader &reader, std::uint64_t startOffset, std::uint64_t size, Diagnostics &diag);
144
145 // methods to read the "index" (chunk offsets and sizes)
146 std::vector<std::uint64_t> readChunkOffsets(bool parseFragments, Diagnostics &diag);
147 std::vector<std::tuple<std::uint32_t, std::uint32_t, std::uint32_t>> readSampleToChunkTable(Diagnostics &diag);
148 std::vector<std::uint64_t> readChunkSizes(TagParser::Diagnostics &diag);
149
150 // methods to make the track header
151 void bufferTrackAtoms(Diagnostics &diag);
152 std::uint64_t chunkOffsetAtomSize(Diagnostics &diag) const;
153 std::uint64_t requiredSize(Diagnostics &diag) const;
154 void makeTrack(Diagnostics &diag);
155 void makeTrackHeader(Diagnostics &diag);
156 void makeMedia(Diagnostics &diag);
157 void makeMediaInfo(Diagnostics &diag);
158 void makeSampleTable(Diagnostics &diag);
159
160 // methods to update chunk offsets
161 void updateChunkOffsets(const std::vector<std::int64_t> &oldMdatOffsets, const std::vector<std::int64_t> &newMdatOffsets);
162 void updateChunkOffsets(const std::vector<std::uint64_t> &chunkOffsets);
163 void updateChunkOffset(std::uint32_t chunkIndex, std::uint64_t offset);
164
165 static void addInfo(const AvcConfiguration &avcConfig, AbstractTrack &track);
166 static void addInfo(const Av1Configuration &av1Config, AbstractTrack &track);
167
168protected:
169 void internalParseHeader(Diagnostics &diag, AbortableProgressFeedback &progress) override;
170
171private:
172 // private helper methods
173 std::uint64_t accumulateSampleSizes(std::size_t &sampleIndex, std::size_t count, Diagnostics &diag);
174 void addChunkSizeEntries(
175 std::vector<std::uint64_t> &chunkSizeTable, std::size_t count, std::size_t &sampleIndex, std::uint32_t sampleCount, Diagnostics &diag);
176 const TrackHeaderInfo &verifyPresentTrackHeader() const;
177 Mp4Timings computeTimings() const;
178 std::tuple<std::uint64_t, std::uint64_t> calculateSampleTableSize(Diagnostics &diag) const;
179
180 Mp4Atom *m_trakAtom;
181 Mp4Atom *m_tkhdAtom;
182 Mp4Atom *m_mdiaAtom;
183 Mp4Atom *m_mdhdAtom;
184 Mp4Atom *m_hdlrAtom;
185 Mp4Atom *m_minfAtom;
186 Mp4Atom *m_stblAtom;
187 Mp4Atom *m_stsdAtom;
188 Mp4Atom *m_stscAtom;
189 Mp4Atom *m_stcoAtom;
190 Mp4Atom *m_stszAtom;
191 std::uint32_t m_rawMediaType;
192 std::uint16_t m_framesPerSample;
193 std::vector<std::uint32_t> m_sampleSizes;
194 unsigned int m_chunkOffsetSize;
195 std::uint32_t m_chunkCount;
196 std::uint32_t m_sampleToChunkEntryCount;
197 std::uint64_t m_rawTkhdCreationTime;
198 std::uint64_t m_rawMdhdCreationTime;
199 std::uint64_t m_rawTkhdModificationTime;
200 std::uint64_t m_rawMdhdModificationTime;
201 std::uint64_t m_rawTkhdDuration;
202 std::uint64_t m_rawMdhdDuration;
203 std::unique_ptr<Mpeg4ElementaryStreamInfo> m_esInfo;
204 std::unique_ptr<AvcConfiguration> m_avcConfig;
205 std::unique_ptr<Av1Configuration> m_av1Config;
206 mutable std::unique_ptr<TrackHeaderInfo> m_trackHeaderInfo;
207};
208
212 inline Mp4Atom &Mp4Track::trakAtom()
213{
214 return *m_trakAtom;
215}
216
224 inline const std::vector<std::uint32_t> &Mp4Track::sampleSizes() const
225{
226 return m_sampleSizes;
227}
228
237 inline unsigned int Mp4Track::chunkOffsetSize() const
238{
239 return m_chunkOffsetSize;
240}
241
246 inline void Mp4Track::setChunkOffsetSize(unsigned int chunkOffsetSize)
247{
248 m_chunkOffsetSize = chunkOffsetSize;
249}
250
254 inline std::uint32_t Mp4Track::chunkCount() const
255{
256 return m_chunkCount;
257}
258
262 inline std::uint32_t Mp4Track::sampleToChunkEntryCount() const
263{
264 return m_sampleToChunkEntryCount;
265}
266
274 inline const Mpeg4ElementaryStreamInfo *Mp4Track::mpeg4ElementaryStreamInfo() const
275{
276 return m_esInfo.get();
277}
278
285 inline const AvcConfiguration *Mp4Track::avcConfiguration() const
286{
287 return m_avcConfig.get();
288}
289
296 inline const Av1Configuration *Mp4Track::av1Configuration() const
297{
298 return m_av1Config.get();
299}
300
301} // namespace TagParser
302
303#endif // TAG_PARSER_MP4TRACK_H
abstracttrack.h
TagParser::AbortableProgressFeedback
The AbortableProgressFeedback class provides feedback about an ongoing operation via callbacks.
Definition progressfeedback.h:186
TagParser::AbstractTrack::size
std::uint64_t size() const
Returns the size in bytes if known; otherwise returns 0.
Definition abstracttrack.h:394
TagParser::AbstractTrack::startOffset
std::uint64_t startOffset() const
Returns the start offset of the track in the associated stream.
Definition abstracttrack.h:316
TagParser::AbstractTrack::AbstractTrack
AbstractTrack(std::istream &inputStream, std::ostream &outputStream, std::uint64_t startOffset)
Constructs a new track.
Definition abstracttrack.cpp:33
TagParser::AbstractTrack::sampleCount
std::uint64_t sampleCount() const
Returns the number of samples/frames if known; otherwise returns 0.
Definition abstracttrack.h:571
TagParser::AbstractTrack::reader
CppUtilities::BinaryReader & reader()
Returns a binary reader for the associated stream.
Definition abstracttrack.h:289
TagParser::Diagnostics
The Diagnostics class is a container for DiagMessage.
Definition diagnostics.h:156
TagParser::Mp4Atom
The Mp4Atom class helps to parse MP4 files.
Definition mp4atom.h:38
TagParser::Mp4Track::parseVideoSpecificConfig
static std::unique_ptr< Mpeg4VideoSpecificConfig > parseVideoSpecificConfig(CppUtilities::BinaryReader &reader, std::uint64_t startOffset, std::uint64_t size, Diagnostics &diag)
Parses the video specific configuration for the track.
Definition mp4track.cpp:871
TagParser::Mp4Track::parseMpeg4ElementaryStreamInfo
static std::unique_ptr< Mpeg4ElementaryStreamInfo > parseMpeg4ElementaryStreamInfo(CppUtilities::BinaryReader &reader, Mp4Atom *esDescAtom, Diagnostics &diag)
Reads the MPEG-4 elementary stream descriptor for the track.
Definition mp4track.cpp:614
TagParser::Mp4Track::av1Configuration
const Av1Configuration * av1Configuration() const
Returns the AV1 configuration.
Definition mp4track.h:296
TagParser::Mp4Track::chunkCount
std::uint32_t chunkCount() const
Returns the number of chunks denoted by the stco/co64 atom.
Definition mp4track.h:254
TagParser::Mp4Track::setChunkOffsetSize
void setChunkOffsetSize(unsigned int chunkOffsetSize)
Sets the size of a single chunk offset denotation within the stco/co64 atom.
Definition mp4track.h:246
TagParser::Mp4Track::readSampleToChunkTable
std::vector< std::tuple< std::uint32_t, std::uint32_t, std::uint32_t > > readSampleToChunkTable(Diagnostics &diag)
Reads the sample to chunk table.
Definition mp4track.cpp:515
TagParser::Mp4Track::addInfo
static void addInfo(const AvcConfiguration &avcConfig, AbstractTrack &track)
Adds the information from the specified avcConfig to the specified track.
Definition mp4track.cpp:1074
TagParser::Mp4Track::readChunkSizes
std::vector< std::uint64_t > readChunkSizes(TagParser::Diagnostics &diag)
Reads the chunk sizes from the stsz (sample sizes) and stsc (samples per chunk) atom.
Definition mp4track.cpp:564
TagParser::Mp4Track::Mp4Track
Mp4Track(Mp4Atom &trakAtom)
Constructs a new track for the specified trakAtom.
Definition mp4track.cpp:153
TagParser::Mp4Track::updateChunkOffsets
void updateChunkOffsets(const std::vector< std::int64_t > &oldMdatOffsets, const std::vector< std::int64_t > &newMdatOffsets)
Updates the chunk offsets of the track.
Definition mp4track.cpp:947
TagParser::Mp4Track::internalParseHeader
void internalParseHeader(Diagnostics &diag, AbortableProgressFeedback &progress) override
This method is internally called to parse header information.
Definition mp4track.cpp:1565
TagParser::Mp4Track::makeSampleTable
void makeSampleTable(Diagnostics &diag)
Makes the sample table (stbl atom) for the track.
Definition mp4track.cpp:1517
TagParser::Mp4Track::requiredSize
std::uint64_t requiredSize(Diagnostics &diag) const
Returns the number of bytes written when calling makeTrack().
Definition mp4track.cpp:1199
TagParser::Mp4Track::type
TrackType type() const override
Returns the type of the track if known; otherwise returns TrackType::Unspecified.
Definition mp4track.cpp:187
TagParser::Mp4Track::sampleToChunkEntryCount
std::uint32_t sampleToChunkEntryCount() const
Returns the number of "sample to chunk" entries within the stsc atom.
Definition mp4track.h:262
TagParser::Mp4Track::sampleSizes
const std::vector< std::uint32_t > & sampleSizes() const
Returns the sample size table for the track.
Definition mp4track.h:224
TagParser::Mp4Track::makeMedia
void makeMedia(Diagnostics &diag)
Makes the media information (mdia atom) for the track.
Definition mp4track.cpp:1374
TagParser::Mp4Track::chunkOffsetAtomSize
std::uint64_t chunkOffsetAtomSize(Diagnostics &diag) const
Returns the size of the stco/co64 atom for this track based on the parsed/assigned chunkOffsetSize() ...
Definition mp4track.cpp:1152
TagParser::Mp4Track::readChunkOffsets
std::vector< std::uint64_t > readChunkOffsets(bool parseFragments, Diagnostics &diag)
Reads the chunk offsets from the stco atom and fragments if parseFragments is true.
Definition mp4track.cpp:202
TagParser::Mp4Track::chunkOffsetSize
unsigned int chunkOffsetSize() const
Returns the size of a single chunk offset denotation within the stco/co64 atom.
Definition mp4track.h:237
TagParser::Mp4Track::mpeg4ElementaryStreamInfo
const Mpeg4ElementaryStreamInfo * mpeg4ElementaryStreamInfo() const
Returns information about the MPEG-4 elementary stream.
Definition mp4track.h:274
TagParser::Mp4Track::makeTrackHeader
void makeTrackHeader(Diagnostics &diag)
Makes the track header (tkhd atom) for the track.
Definition mp4track.cpp:1286
TagParser::Mp4Track::bufferTrackAtoms
void bufferTrackAtoms(Diagnostics &diag)
Buffers all atoms required by the makeTrack() method.
Definition mp4track.cpp:1121
TagParser::Mp4Track::makeMediaInfo
void makeMediaInfo(Diagnostics &diag)
Makes a media information (minf atom) for the track.
Definition mp4track.cpp:1474
TagParser::Mp4Track::avcConfiguration
const AvcConfiguration * avcConfiguration() const
Returns the AVC configuration.
Definition mp4track.h:285
TagParser::Mp4Track::trakAtom
Mp4Atom & trakAtom()
Returns the trak atom for the current instance.
Definition mp4track.h:212
TagParser::Mp4Track::makeTrack
void makeTrack(Diagnostics &diag)
Makes the track entry ("trak"-atom) for the track.
Definition mp4track.cpp:1257
TagParser::Mp4Track::parseAudioSpecificConfig
static std::unique_ptr< Mpeg4AudioSpecificConfig > parseAudioSpecificConfig(std::istream &stream, std::uint64_t startOffset, std::uint64_t size, Diagnostics &diag)
Parses the audio specific configuration for the track.
Definition mp4track.cpp:706
TagParser::Mp4Track::updateChunkOffset
void updateChunkOffset(std::uint32_t chunkIndex, std::uint64_t offset)
Updates a particular chunk offset.
Definition mp4track.cpp:1052
TagParser::Mpeg4AudioSpecificConfig::sampleFrequency
std::uint32_t sampleFrequency
Definition mp4track.h:25
TagParser::Mpeg4AudioSpecificConfig::layerLength
std::uint16_t layerLength
Definition mp4track.h:39
TagParser::Mpeg4AudioSpecificConfig::psPresent
bool psPresent
Definition mp4track.h:29
TagParser::Mpeg4AudioSpecificConfig::sbrPresent
bool sbrPresent
Definition mp4track.h:28
TagParser::Mpeg4AudioSpecificConfig::extensionSampleFrequency
std::uint32_t extensionSampleFrequency
Definition mp4track.h:31
TagParser::Mpeg4AudioSpecificConfig::resilienceFlags
std::uint8_t resilienceFlags
Definition mp4track.h:40
TagParser::Mpeg4AudioSpecificConfig::extensionChannelConfiguration
std::uint8_t extensionChannelConfiguration
Definition mp4track.h:32
TagParser::Mpeg4AudioSpecificConfig::coreCoderDelay
std::uint16_t coreCoderDelay
Definition mp4track.h:35
TagParser::Mpeg4AudioSpecificConfig::frameLengthFlag
bool frameLengthFlag
Definition mp4track.h:33
TagParser::Mpeg4AudioSpecificConfig::extensionSampleFrequencyIndex
std::uint8_t extensionSampleFrequencyIndex
Definition mp4track.h:30
TagParser::Mpeg4AudioSpecificConfig::channelConfiguration
std::uint8_t channelConfiguration
Definition mp4track.h:26
TagParser::Mpeg4AudioSpecificConfig::layerNr
std::uint8_t layerNr
Definition mp4track.h:37
TagParser::Mpeg4AudioSpecificConfig::dependsOnCoreCoder
bool dependsOnCoreCoder
Definition mp4track.h:34
TagParser::Mpeg4AudioSpecificConfig::extensionFlag
std::uint8_t extensionFlag
Definition mp4track.h:36
TagParser::Mpeg4AudioSpecificConfig::Mpeg4AudioSpecificConfig
Mpeg4AudioSpecificConfig()
Definition mp4track.cpp:96
TagParser::Mpeg4AudioSpecificConfig::sampleFrequencyIndex
std::uint8_t sampleFrequencyIndex
Definition mp4track.h:24
TagParser::Mpeg4AudioSpecificConfig::epConfig
std::uint8_t epConfig
Definition mp4track.h:41
TagParser::Mpeg4AudioSpecificConfig::audioObjectType
std::uint8_t audioObjectType
Definition mp4track.h:23
TagParser::Mpeg4AudioSpecificConfig::extensionAudioObjectType
std::uint8_t extensionAudioObjectType
Definition mp4track.h:27
TagParser::Mpeg4AudioSpecificConfig::numOfSubFrame
std::uint8_t numOfSubFrame
Definition mp4track.h:38
TagParser::Mpeg4Descriptor
The Mpeg4Descriptor class helps to parse MPEG-4 descriptors.
Definition mpeg4descriptor.h:31
TagParser::Mpeg4ElementaryStreamInfo
The Mpeg4ElementaryStreamInfo class holds MPEG-4 elementary stream info parsed using Mp4Track::parseM...
Definition mp4track.h:52
TagParser::Mpeg4ElementaryStreamInfo::audioSpecificConfig
std::unique_ptr< Mpeg4AudioSpecificConfig > audioSpecificConfig
Definition mp4track.h:73
TagParser::Mpeg4ElementaryStreamInfo::priority
std::uint8_t priority() const
Definition mp4track.h:105
TagParser::Mpeg4ElementaryStreamInfo::esDescFlags
std::uint8_t esDescFlags
Definition mp4track.h:64
TagParser::Mpeg4ElementaryStreamInfo::dependencyFlag
bool dependencyFlag() const
Definition mp4track.h:90
TagParser::Mpeg4ElementaryStreamInfo::upstream
bool upstream() const
Definition mp4track.h:115
TagParser::Mpeg4ElementaryStreamInfo::id
std::uint16_t id
Definition mp4track.h:63
TagParser::Mpeg4ElementaryStreamInfo::averageBitrate
std::uint32_t averageBitrate
Definition mp4track.h:72
TagParser::Mpeg4ElementaryStreamInfo::decCfgDescFlags
std::uint8_t decCfgDescFlags
Definition mp4track.h:69
TagParser::Mpeg4ElementaryStreamInfo::ocrFlag
bool ocrFlag() const
Definition mp4track.h:100
TagParser::Mpeg4ElementaryStreamInfo::maxBitrate
std::uint32_t maxBitrate
Definition mp4track.h:71
TagParser::Mpeg4ElementaryStreamInfo::url
std::string url
Definition mp4track.h:66
TagParser::Mpeg4ElementaryStreamInfo::Mpeg4ElementaryStreamInfo
Mpeg4ElementaryStreamInfo()
Definition mp4track.h:77
TagParser::Mpeg4ElementaryStreamInfo::bufferSize
std::uint32_t bufferSize
Definition mp4track.h:70
TagParser::Mpeg4ElementaryStreamInfo::ocrId
std::uint16_t ocrId
Definition mp4track.h:67
TagParser::Mpeg4ElementaryStreamInfo::streamTypeId
std::uint8_t streamTypeId() const
Definition mp4track.h:110
TagParser::Mpeg4ElementaryStreamInfo::dependsOnId
std::uint16_t dependsOnId
Definition mp4track.h:65
TagParser::Mpeg4ElementaryStreamInfo::objectTypeId
std::uint8_t objectTypeId
Definition mp4track.h:68
TagParser::Mpeg4ElementaryStreamInfo::videoSpecificConfig
std::unique_ptr< Mpeg4VideoSpecificConfig > videoSpecificConfig
Definition mp4track.h:74
TagParser::Mpeg4ElementaryStreamInfo::urlFlag
bool urlFlag() const
Definition mp4track.h:95
TagParser::Mpeg4VideoSpecificConfig::Mpeg4VideoSpecificConfig
Mpeg4VideoSpecificConfig()
Definition mp4track.cpp:127
TagParser::Mpeg4VideoSpecificConfig::userData
std::string userData
Definition mp4track.h:49
TagParser::Mpeg4VideoSpecificConfig::profile
std::uint8_t profile
Definition mp4track.h:48
TAG_PARSER_EXPORT
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.
Definition global.h:14
TagParser
Contains all classes and functions of the TagInfo library.
Definition aaccodebook.h:10
TagParser::TrackType
TrackType
The TrackType enum specifies the underlying file type of a track and the concrete class of the track ...
Definition abstracttrack.h:32
TagParser::Av1Configuration
The Av1Configuration struct provides a parser for AV1 configuration found in ISOBMFF files.
Definition av1configuration.h:17
TagParser::AvcConfiguration
The AvcConfiguration struct provides a parser for AVC configuration.
Definition avcconfiguration.h:13
TagParser::Mp4Timings
The Mp4Timings struct holds timing values found in multiple MP4 atoms.
Definition mp4track.cpp:34
TagParser::TrackHeaderInfo
The TrackHeaderInfo struct holds information about the present track header (tkhd atom) and informati...
Definition mp4track.cpp:48