Tag Parser  9.1.1
C++ library for reading and writing MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags
mediaformat.h
Go to the documentation of this file.
1 #ifndef TAG_PARSER_MEDIAFORMAT_H
2 #define TAG_PARSER_MEDIAFORMAT_H
3 
4 #include "./global.h"
5 
6 #include <utility>
7 
8 namespace TagParser {
9 
13 enum class MediaType : unsigned int {
14  Unknown,
15  Audio,
16  Video,
17  Text,
18  Buttons,
19  Control,
20  Hint,
21  Meta,
22 };
23 
24 TAG_PARSER_EXPORT const char *mediaTypeName(MediaType mediaType);
25 
29 enum class GeneralMediaFormat : unsigned int {
30  Unknown,
31  Aac,
32  Ac3,
33  Ac4,
34  AdpcmAcm,
35  AfxStream,
36  Alac,
37  Als,
38  Amr,
39  Avc,
40  Av1,
41  Bitmap,
42  Daala,
43  Dirac,
44  DolbyMlp,
45  Dts,
46  DtsHd,
47  DvbSub,
48  EAc3,
49  Evrc,
50  Flac,
52  Gif,
53  Gpp2Cmf,
54  Hevc,
55  ImaadpcmAcm,
58  Jpeg,
62  MonkeysAudio,
63  Mpc,
64  Mpeg1Audio,
65  Mpeg1Video,
66  Mpeg2Audio,
67  Mpeg2Video,
69  Mpeg4Video,
70  OggKate,
71  Opus,
72  Pcm,
73  Png,
74  ProRes,
75  Qcelp,
78  RealAudio,
79  RealVideo,
80  Sa0c,
81  Smv,
82  Speex,
85  Systems,
86  TextSubtitle,
87  Theora,
88  Tiff,
89  TimedText,
90  Tta,
92  Vc1,
93  VobBtn,
94  VobSub,
95  Vorbis,
96  Vp8,
97  Vp9,
98  WavPack,
101 };
102 
108 namespace SubFormats {
109 
110 enum : unsigned char { None };
111 
112 enum Mpeg1AudioLayer : unsigned char { Mpeg1Layer1 = 1, Mpeg1Layer2, Mpeg1Layer3 };
113 
114 enum AacProfile : unsigned char {
127 };
128 
129 enum Mpeg2VideoProfile : unsigned char {
136 };
137 
138 enum Mpeg4VideoProfile : unsigned char {
198 };
199 
200 enum AvcProfile : unsigned char {
215 };
216 
217 enum DtsSpecifier : unsigned char {
222 };
223 
224 enum PcmVersion : unsigned char { PcmIntBe = 1, PcmIntLe, PcmFloatIeee };
225 
226 enum TextSubtitle : unsigned char {
232 };
233 
234 enum ImageSubtitle : unsigned char { ImgSubBmp = 1 };
235 
236 } // namespace SubFormats
237 
241 namespace ExtensionFormats {
243 }
244 
246 public:
247  constexpr MediaFormat(GeneralMediaFormat general = GeneralMediaFormat::Unknown, unsigned char sub = 0, unsigned char extension = 0);
248 
249  const char *name() const;
250  const char *abbreviation() const;
251  const char *shortAbbreviation() const;
252  const char *extensionName() const;
253  constexpr operator bool() const;
254  constexpr MediaFormat &operator+=(const MediaFormat &other);
255  constexpr bool operator==(GeneralMediaFormat general) const;
256  constexpr bool operator!=(GeneralMediaFormat general) const;
257 
259  unsigned char sub;
260  unsigned char extension;
261 };
262 
266 constexpr MediaFormat::MediaFormat(GeneralMediaFormat general, unsigned char sub, unsigned char extension)
267  : general(general)
268  , sub(sub)
269  , extension(extension)
270 {
271 }
272 
277 {
278  if (other) {
279  general = other.general;
280  if (other.sub) {
281  sub = other.sub;
282  }
283  if (other.extension) {
284  extension = other.extension;
285  }
286  }
287  return *this;
288 }
289 
293 constexpr bool MediaFormat::operator==(GeneralMediaFormat general) const
294 {
295  return this->general == general;
296 }
297 
301 constexpr bool MediaFormat::operator!=(GeneralMediaFormat general) const
302 {
303  return this->general != general;
304 }
305 
309 constexpr MediaFormat::operator bool() const
310 {
311  return general != GeneralMediaFormat::Unknown;
312 }
313 
314 } // namespace TagParser
315 
316 #endif // TAG_PARSER_MEDIAFORMAT_H
TagParser::SubFormats::Mpeg4SimpleScalableProfile1
Definition: mediaformat.h:144
TagParser::GeneralMediaFormat::ImageSubtitle
TagParser::SubFormats::DtsLossless
Definition: mediaformat.h:219
TagParser::GeneralMediaFormat::Mpeg4Video
TagParser::SubFormats::Mpeg4SimpleStudioProfile1
Definition: mediaformat.h:177
global.h
TagParser::MediaType::Text
TagParser::SubFormats::Mpeg4FineGranularityScalableProfile3
Definition: mediaformat.h:195
TagParser::GeneralMediaFormat::Aac
TagParser::MediaType::Audio
TagParser::SubFormats::ImgSubBmp
Definition: mediaformat.h:234
TagParser::SubFormats::None
Definition: mediaformat.h:110
TagParser::SubFormats::Mpeg4AdvancedCodingEfficiencyProfile3
Definition: mediaformat.h:171
TagParser::SubFormats::PcmIntBe
Definition: mediaformat.h:224
TagParser::SubFormats::ImageSubtitle
ImageSubtitle
Definition: mediaformat.h:234
TagParser::SubFormats::AvcHighProfile
Definition: mediaformat.h:207
TagParser::SubFormats::AvcStereoHighProfile
Definition: mediaformat.h:211
TagParser::MediaFormat::extension
unsigned char extension
Definition: mediaformat.h:260
TagParser::SubFormats::Mpeg4AdvancedCoreProfile2
Definition: mediaformat.h:174
TagParser::SubFormats::Mpeg2VideoProfile
Mpeg2VideoProfile
Definition: mediaformat.h:129
TagParser::SubFormats::AacMpeg4ERLowComplecityProfile
Definition: mediaformat.h:122
TagParser::GeneralMediaFormat::Vp8
TagParser::SubFormats::AacMpeg4LongTermPrediction
Definition: mediaformat.h:121
TagParser::GeneralMediaFormat
GeneralMediaFormat
The GeneralMediaFormat enum specifies the general format of media data (PCM, MPEG-4,...
Definition: mediaformat.h:29
TagParser::SubFormats::Mpeg4FineGranularityScalableProfile4
Definition: mediaformat.h:196
TagParser::GeneralMediaFormat::MicrosoftVideoCodecManager
TagParser::SubFormats::Mpeg4FineGranularityScalableProfile0
Definition: mediaformat.h:192
TagParser::GeneralMediaFormat::DvbSub
TagParser::GeneralMediaFormat::ProRes
TagParser::SubFormats::Mpeg4CoreScalableProfile3
Definition: mediaformat.h:168
TagParser::SubFormats::Mpeg4SimpleScalableProfile0
Definition: mediaformat.h:143
TagParser::SubFormats::PlainUtf8Subtitle
Definition: mediaformat.h:227
TagParser::GeneralMediaFormat::OggKate
TagParser::GeneralMediaFormat::Tiff
TagParser::GeneralMediaFormat::Mpeg2Audio
TagParser::MediaFormat::operator==
constexpr bool operator==(GeneralMediaFormat general) const
Returns whether the media format is the specified general media format.
Definition: mediaformat.h:293
TagParser::GeneralMediaFormat::RealAudio
TagParser::SubFormats::Mpeg4AdvancedSimpleProfile3
Definition: mediaformat.h:188
TagParser::SubFormats::PcmFloatIeee
Definition: mediaformat.h:224
TagParser::SubFormats::AacMpeg2MainProfile
Definition: mediaformat.h:115
TagParser::SubFormats::Mpeg2HighProfile
Definition: mediaformat.h:134
TagParser::SubFormats::Mpeg1Layer3
Definition: mediaformat.h:112
TagParser::SubFormats::Mpeg4SimpleStudioProfile4
Definition: mediaformat.h:180
TagParser::SubFormats::Mpeg4SimpleFbaProfile1
Definition: mediaformat.h:155
TagParser::MonkeysAudio
Definition: signature.cpp:52
TagParser::GeneralMediaFormat::DtsHd
TagParser::SubFormats::SubStationAlpha
Definition: mediaformat.h:228
TagParser::SubFormats::Mpeg4SimpleProfile1
Definition: mediaformat.h:139
TagParser::SubFormats::Mpeg4SimpleFaceAnimationProfile1
Definition: mediaformat.h:153
TagParser::SubFormats::Mpeg4CoreScalableProfile1
Definition: mediaformat.h:166
TagParser::SubFormats::Mpeg4BasicAnimatedTextureProfiel2
Definition: mediaformat.h:158
TagParser::GeneralMediaFormat::Qcelp
TagParser::GeneralMediaFormat::Smv
TagParser::GeneralMediaFormat::Speex
TagParser::ExtensionFormats::SpectralBandReplication
Definition: mediaformat.h:242
TagParser::SubFormats::UniversalSubtitleFormat
Definition: mediaformat.h:230
TagParser::GeneralMediaFormat::Sa0c
TagParser::SubFormats::DtsHdMasterAudio
Definition: mediaformat.h:221
TagParser::GeneralMediaFormat::Av1
TagParser::GeneralMediaFormat::UncompressedVideoFrames
TagParser::SubFormats::AacMpeg2ScalableSamplingRateProfile
Definition: mediaformat.h:117
TagParser::GeneralMediaFormat::MicrosoftAudioCodecManager
TagParser::MediaType::Buttons
TagParser::Jpeg
Definition: signature.cpp:88
TagParser
Contains all classes and functions of the TagInfo library.
Definition: aaccodebook.h:10
TagParser::SubFormats::DtsExpress
Definition: mediaformat.h:218
TagParser::SubFormats::Mpeg4AdvancedSimpleProfile3b
Definition: mediaformat.h:191
TagParser::SubFormats::AacMpeg4ERLongTermPrediction
Definition: mediaformat.h:124
TagParser::GeneralMediaFormat::Mpeg4TimedText
TagParser::SubFormats::Mpeg4AvcProfile
Definition: mediaformat.h:159
TagParser::SubFormats::AvcHigh444Profile
Definition: mediaformat.h:213
TagParser::SubFormats::Mpeg4MainProfile2
Definition: mediaformat.h:148
TagParser::MediaType::Control
TagParser::SubFormats::AacMpeg4ERLowDelay
Definition: mediaformat.h:125
TagParser::SubFormats::Mpeg4AdvancedScalableTexture1
Definition: mediaformat.h:175
TagParser::SubFormats::Mpeg4HybridProfile1
Definition: mediaformat.h:160
TagParser::SubFormats::Mpeg4AdvancedRealTimeSimpleProfile3
Definition: mediaformat.h:164
TagParser::GeneralMediaFormat::Gif
TagParser::SubFormats::AacMpeg4LowComplexityProfile
Definition: mediaformat.h:119
TagParser::GeneralMediaFormat::QuicktimeVideo
TagParser::SubFormats::Mpeg4ScalableTextureProfile1
Definition: mediaformat.h:152
TagParser::SubFormats::Mpeg4AdvancedSimpleProfile4
Definition: mediaformat.h:189
TagParser::GeneralMediaFormat::Opus
TagParser::GeneralMediaFormat::Gpp2Cmf
TagParser::SubFormats::Mpeg4SimpleFaceAnimationProfile2
Definition: mediaformat.h:154
TagParser::GeneralMediaFormat::ImaadpcmAcm
TagParser::GeneralMediaFormat::AfxStream
TagParser::SubFormats::Mpeg1Layer1
Definition: mediaformat.h:112
TagParser::SubFormats::Mpeg4AdvancedSimpleProfile0
Definition: mediaformat.h:185
TagParser::GeneralMediaFormat::Pcm
TagParser::SubFormats::Mpeg4BasicAnimatedTextureProfiel1
Definition: mediaformat.h:157
TagParser::SubFormats::TextSubtitle
TextSubtitle
Definition: mediaformat.h:226
TagParser::SubFormats::Mpeg4AdvancedSimpleProfile1
Definition: mediaformat.h:186
TagParser::GeneralMediaFormat::TextSubtitle
TagParser::GeneralMediaFormat::Evrc
TagParser::SubFormats::AvcHighMultiviewDepthProfile
Definition: mediaformat.h:212
TagParser::operator==
constexpr bool operator==(std::uint8_t lhs, FlacMetaDataBlockType type)
Definition: flacmetadata.h:18
TagParser::SubFormats::Mpeg4CoreProfiel2
Definition: mediaformat.h:147
TagParser::GeneralMediaFormat::Mpeg1Video
TagParser::SubFormats::AacProfile
AacProfile
Definition: mediaformat.h:114
TagParser::MediaFormat::MediaFormat
constexpr MediaFormat(GeneralMediaFormat general=GeneralMediaFormat::Unknown, unsigned char sub=0, unsigned char extension=0)
Constructs a new media format.
Definition: mediaformat.h:266
TagParser::SubFormats::AacMpeg4MainProfile
Definition: mediaformat.h:118
TagParser::SubFormats::PcmVersion
PcmVersion
Definition: mediaformat.h:224
TagParser::Ac3
Definition: signature.cpp:85
TagParser::SubFormats::AvcScalableHighProfile
Definition: mediaformat.h:205
TagParser::SubFormats::Mpeg4SimpleProfile0
Definition: mediaformat.h:142
TagParser::GeneralMediaFormat::Systems
TagParser::SubFormats::AvcScalableBaselineProfile
Definition: mediaformat.h:204
TagParser::SubFormats::AvcExtendedProfile
Definition: mediaformat.h:206
TagParser::MediaType
MediaType
The MediaType enum specifies the type of media data (audio, video, text, ...).
Definition: mediaformat.h:13
TagParser::SubFormats::Mpeg2SpatialProfile
Definition: mediaformat.h:133
TagParser::GeneralMediaFormat::Vc1
TagParser::SubFormats::Mpeg4AdvancedCodingEfficiencyProfile1
Definition: mediaformat.h:169
TagParser::SubFormats::Mpeg4MainProfile4
Definition: mediaformat.h:150
TagParser::MediaType::Hint
TagParser::GeneralMediaFormat::WindowsMediaAudio
TagParser::GeneralMediaFormat::EAc3
TagParser::SubFormats::AacMpeg4EREnhancedLowDelay
Definition: mediaformat.h:126
TagParser::SubFormats::Mpeg4CoreStudioProfile3
Definition: mediaformat.h:183
TagParser::SubFormats::Mpeg4SimpleFbaProfile2
Definition: mediaformat.h:156
TagParser::SubFormats::Mpeg4SimpleStudioProfile2
Definition: mediaformat.h:178
TagParser::GeneralMediaFormat::Bitmap
TagParser::SubFormats::AvcBaselineProfile
Definition: mediaformat.h:202
TagParser::SubFormats::Mpeg4CoreStudioProfile2
Definition: mediaformat.h:182
TagParser::GeneralMediaFormat::Daala
TagParser::GeneralMediaFormat::FontDataStream
TagParser::GeneralMediaFormat::DolbyMlp
TagParser::SubFormats::Mpeg4AdvancedSimpleProfile2
Definition: mediaformat.h:187
TagParser::GeneralMediaFormat::Ac4
TagParser::SubFormats::Mpeg4SimpleScalableProfile2
Definition: mediaformat.h:145
TagParser::SubFormats::DtsHdHighResolution
Definition: mediaformat.h:220
TagParser::MediaFormat::operator+=
constexpr MediaFormat & operator+=(const MediaFormat &other)
"Adds" information from another instance to the object.
Definition: mediaformat.h:276
TagParser::operator!=
constexpr bool operator!=(std::uint8_t lhs, FlacMetaDataBlockType type)
Definition: flacmetadata.h:23
TagParser::SubFormats::Mpeg2422Profile
Definition: mediaformat.h:135
TagParser::SubFormats::Mpeg1Layer2
Definition: mediaformat.h:112
TagParser::SubFormats::Mpeg4NBitPrifle2
Definition: mediaformat.h:151
TagParser::MediaFormat::general
GeneralMediaFormat general
Definition: mediaformat.h:258
TagParser::Dirac
Definition: signature.cpp:45
TagParser::SubFormats::AvcHigh10Profile
Definition: mediaformat.h:208
TagParser::SubFormats::AvcHigh444PredictiveProfile
Definition: mediaformat.h:214
TagParser::SubFormats::Mpeg4CoreProfile1
Definition: mediaformat.h:146
TagParser::SubFormats::Mpeg4HybridProfile2
Definition: mediaformat.h:161
TagParser::SubFormats::Mpeg4AdvancedRealTimeSimpleProfile2
Definition: mediaformat.h:163
TagParser::Flac
Definition: signature.cpp:47
TagParser::SubFormats::Mpeg4VideoProfile
Mpeg4VideoProfile
Definition: mediaformat.h:138
TagParser::mediaTypeName
const TAG_PARSER_EXPORT char * mediaTypeName(MediaType mediaType)
Returns the string representation for the specified mediaType.
Definition: mediaformat.cpp:997
TagParser::SubFormats::Mpeg4AdvancedCodingEfficiencyProfile4
Definition: mediaformat.h:172
TagParser::GeneralMediaFormat::Alac
TagParser::SubFormats::Mpeg4AdvancedRealTimeSimpleProfile1
Definition: mediaformat.h:162
TagParser::MediaFormat::operator!=
constexpr bool operator!=(GeneralMediaFormat general) const
Returns whether the media format is not the specified general media format.
Definition: mediaformat.h:301
TagParser::SubFormats::DtsSpecifier
DtsSpecifier
Definition: mediaformat.h:217
TagParser::SubFormats::Mpeg2SnrProfile
Definition: mediaformat.h:132
TagParser::SubFormats::Mpeg4CoreStudioProfile1
Definition: mediaformat.h:181
TagParser::SubFormats::Mpeg4AdvancedSimpleProfile5
Definition: mediaformat.h:190
TagParser::GeneralMediaFormat::TimedText
TagParser::GeneralMediaFormat::Hevc
TagParser::SubFormats::Mpeg4CoreScalableProfile2
Definition: mediaformat.h:167
TagParser::GeneralMediaFormat::RealVideo
TagParser::SubFormats::AvcProfile
AvcProfile
Definition: mediaformat.h:200
TagParser::SubFormats::AvcCavlc444IntraProfile
Definition: mediaformat.h:201
TagParser::SubFormats::AacMpeg4ScalableSamplingRateProfile
Definition: mediaformat.h:120
TagParser::SubFormats::Mpeg4CoreStudioProfile4
Definition: mediaformat.h:184
TagParser::ExtensionFormats::AudioFormatExtensions
AudioFormatExtensions
Definition: mediaformat.h:242
TAG_PARSER_EXPORT
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.
TagParser::SubFormats::Mpeg4AdvancedScalableTexture2
Definition: mediaformat.h:176
TagParser::SubFormats::AacMpeg2LowComplexityProfile
Definition: mediaformat.h:116
TagParser::GeneralMediaFormat::Vp9
TagParser::GeneralMediaFormat::Amr
TagParser::SubFormats::Mpeg4MainProfile3
Definition: mediaformat.h:149
TagParser::Png
Definition: signature.cpp:19
TagParser::SubFormats::WebVideoTextTracksFormat
Definition: mediaformat.h:231
TagParser::SubFormats::Mpeg1AudioLayer
Mpeg1AudioLayer
Definition: mediaformat.h:112
TagParser::GeneralMediaFormat::WindowsMediaVideo
TagParser::GeneralMediaFormat::Als
TagParser::SubFormats::Mpeg4FineGranularityScalableProfile5
Definition: mediaformat.h:197
TagParser::SubFormats::Mpeg4SimpleStudioProfile3
Definition: mediaformat.h:179
TagParser::GeneralMediaFormat::Mpeg1Audio
TagParser::SubFormats::Mpeg4SimpleProfile3
Definition: mediaformat.h:141
TagParser::GeneralMediaFormat::MicrosoftMpeg4
TagParser::MediaType::Video
TagParser::WavPack
Definition: signature.cpp:62
TagParser::GeneralMediaFormat::VobSub
TagParser::GeneralMediaFormat::QuicktimeAudio
TagParser::GeneralMediaFormat::Mpeg2Video
TagParser::SubFormats::Mpeg4AdvancedCoreProfile1
Definition: mediaformat.h:173
TagParser::GeneralMediaFormat::Tta
TagParser::SubFormats::AvcHighMultiviewProfile
Definition: mediaformat.h:209
TagParser::GeneralMediaFormat::Theora
TagParser::SubFormats::PcmIntLe
Definition: mediaformat.h:224
TagParser::SubFormats::AvcMainProfile
Definition: mediaformat.h:203
TagParser::GeneralMediaFormat::StreamingTextStream
TagParser::SubFormats::AvcHigh422Profile
Definition: mediaformat.h:210
TagParser::GeneralMediaFormat::InteractionStream
TagParser::SubFormats::Mpeg4FineGranularityScalableProfile2
Definition: mediaformat.h:194
TagParser::GeneralMediaFormat::Vorbis
TagParser::SubFormats::Mpeg2MainProfile
Definition: mediaformat.h:131
TagParser::GeneralMediaFormat::VobBtn
TagParser::SubFormats::Mpeg4SimpleProfile2
Definition: mediaformat.h:140
TagParser::MediaFormat::sub
unsigned char sub
Definition: mediaformat.h:259
TagParser::GeneralMediaFormat::SynthesizedTextureStream
TagParser::SubFormats::AacMpeg4ERScalableSampingRateProfile
Definition: mediaformat.h:123
TagParser::ExtensionFormats::ParametricStereo
Definition: mediaformat.h:242
TagParser::GeneralMediaFormat::Mpc
TagParser::MediaFormat
The MediaFormat class specifies the format of media data.
Definition: mediaformat.h:245
TagParser::GeneralMediaFormat::Avc
TagParser::MatroskaElementLevel::Unknown
TagParser::GeneralMediaFormat::Dts
TagParser::SubFormats::Mpeg2SimpleProfile
Definition: mediaformat.h:130
TagParser::SubFormats::AdvancedSubStationAlpha
Definition: mediaformat.h:229
TagParser::MediaType::Meta
TagParser::SubFormats::Mpeg4FineGranularityScalableProfile1
Definition: mediaformat.h:193
TagParser::SubFormats::Mpeg4AdvancedRealTimeSimpleProfile4
Definition: mediaformat.h:165
TagParser::GeneralMediaFormat::AdpcmAcm
TagParser::SubFormats::Mpeg4AdvancedCodingEfficiencyProfile2
Definition: mediaformat.h:170