Tag Parser: mediaformat.cpp Source File

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

Loading...
Searching...
No Matches
mediaformat.cpp
Go to the documentation of this file.
1#include "./mediaformat.h"
2
3namespace TagParser {
4
5using namespace SubFormats;
6
11
17std::string_view MediaFormat::name() const
18{
19 switch (general) {
20 case GeneralMediaFormat::Aac:
21 switch (sub) {
22 case AacMpeg2MainProfile:
23 return "Advanced Audio Coding Main Profile";
24 case AacMpeg2LowComplexityProfile:
25 return "Advanced Audio Coding Low Complexity Profile";
26 case AacMpeg2ScalableSamplingRateProfile:
27 return "Advanced Audio Coding Scalable Sampling Rate Profile";
28 case AacMpeg4MainProfile:
29 return "Advanced Audio Coding Main Profile";
30 case AacMpeg4LowComplexityProfile:
31 return "Advanced Audio Coding Low Complexity Profile";
32 case AacMpeg4ScalableSamplingRateProfile:
33 return "Advanced Audio Coding Scalable Sampling Rate Profile";
34 case AacMpeg4LongTermPrediction:
35 return "Advanced Audio Coding Long Term Predicition";
36 case AacMpeg4ERLowComplecityProfile:
37 return "Advanced Audio Coding Error Resilient Low Complexity Profile";
38 case AacMpeg4ERScalableSampingRateProfile:
39 return "Advanced Audio Coding Error Resilient Scalable Sampling Rate Profile";
40 case AacMpeg4ERLongTermPrediction:
41 return "Advanced Audio Coding Error Resilient Long Term Predicition";
42 case AacMpeg4ERLowDelay:
43 return "Advanced Audio Coding Error Resilient Low Delay";
44 case AacMpeg4EREnhancedLowDelay:
45 return "Advanced Audio Coding Error Resilient Enhanced Low Delay";
46 default:
47 return "Advanced Audio Coding";
48 }
49 case GeneralMediaFormat::Ac3:
50 return "Dolby Digital";
51 case GeneralMediaFormat::Ac4:
52 return "AC-4";
53 case GeneralMediaFormat::AdpcmAcm:
54 return "ADPCM ACM";
55 case GeneralMediaFormat::AfxStream:
56 return "AFX Stream";
57 case GeneralMediaFormat::Alac:
58 return "Apple Lossless Audio Codec";
59 case GeneralMediaFormat::Als:
60 return "ALS";
61 case GeneralMediaFormat::Amr:
62 return "Adaptive Multi-Rate audio codec";
63 case GeneralMediaFormat::Avc:
64 switch (sub) {
65 case AvcCavlc444IntraProfile:
66 return "Advanced Video Coding CAVLC 4:4:4 Intra Profile";
67 case AvcBaselineProfile:
68 return "Advanced Video Coding Basline Profile";
69 case AvcMainProfile:
70 return "Advanced Video Coding Main Profile";
71 case AvcScalableBaselineProfile:
72 return "Advanced Video Coding Scalable Basline Profile";
73 case AvcScalableHighProfile:
74 return "Advanced Video Coding Scalable High Profile";
75 case AvcExtendedProfile:
76 return "Advanced Video Coding Extended Profile";
77 case AvcHighProfile:
78 return "Advanced Video Coding High Profile";
79 case AvcHigh10Profile:
80 return "Advanced Video Coding High 10 Profile";
81 case AvcHighMultiviewProfile:
82 return "Advanced Video Coding Multiview Profile";
83 case AvcHigh422Profile:
84 return "Advanced Video Coding High 4:2:2 Profile";
85 case AvcStereoHighProfile:
86 return "Advanced Video Coding Stereo High Profile";
87 case AvcHighMultiviewDepthProfile:
88 return "Advanced Video Coding Multiview Depth High Profile";
89 case AvcHigh444Profile:
90 return "Advanced Video Coding High 4:4:4 Profile";
91 case AvcHigh444PredictiveProfile:
92 return "Advanced Video Coding High 4:4:4 Predictive Profile";
93 default:
94 return "Advanced Video Coding";
95 }
96 case GeneralMediaFormat::Av1:
97 return "AOMedia Video 1";
98 case GeneralMediaFormat::Bitmap:
99 return "Windows Bitmap";
100 case GeneralMediaFormat::Daala:
101 return "Daala";
102 case GeneralMediaFormat::Dirac:
103 return "Dirac";
104 case GeneralMediaFormat::Dts:
105 switch (sub) {
106 case DtsLossless:
107 return "DTS Lossless";
108 case DtsExpress:
109 return "DTS Express";
110 default:
111 return "DTS";
112 }
113 case GeneralMediaFormat::DtsHd:
114 switch (sub) {
115 case DtsHdHighResolution:
116 return "DTS-HD High Resolution";
117 case DtsHdMasterAudio:
118 return "DTS-HD Master Audio";
119 case DtsExpress:
120 return "DTS-HD Express";
121 default:
122 return "DTS-HD";
123 }
124 case GeneralMediaFormat::EAc3:
125 return "Dolby Digital Plus";
126 case GeneralMediaFormat::Evrc:
127 return "EVRC";
128 case GeneralMediaFormat::Flac:
129 return "Free Lossless Audio Codec";
130 case GeneralMediaFormat::FontDataStream:
131 return "Font Data Stream";
132 case GeneralMediaFormat::Gif:
133 return "GIF";
134 case GeneralMediaFormat::Gpp2Cmf:
135 return "3GPP2 Compact Multimedia Format (CMF)";
136 case GeneralMediaFormat::Hevc:
137 return "High Efficiency Video Coding";
138 case GeneralMediaFormat::Vcc:
139 return "Versatile Video Coding";
140 case GeneralMediaFormat::ImaadpcmAcm:
141 return "IMAADPCM ACM";
142 case GeneralMediaFormat::ImageSubtitle:
143 switch (sub) {
144 case SubFormats::ImgSubBmp:
145 return "Bitmap subtitle";
146 default:
147 return "Image subtitle";
148 }
149 case GeneralMediaFormat::InteractionStream:
150 return "Interaction Stream";
151 case GeneralMediaFormat::Jpeg:
152 return "JPEG";
153 case GeneralMediaFormat::OggKate:
154 return "Karaoke And Text Encapsulation";
155 case GeneralMediaFormat::Opus:
156 return "Opus";
157 case GeneralMediaFormat::MicrosoftAudioCodecManager:
158 return "Microsoft Audio Codec Manager";
159 case GeneralMediaFormat::MicrosoftMpeg4:
160 switch (sub) {
161 case 1:
162 return "Microsoft MPEG-4 version 1";
163 case 2:
164 return "Microsoft MPEG-4 version 2";
165 case 3:
166 return "Microsoft MPEG-4 version 3";
167 default:
168 return "Microsoft MPEG-4";
169 }
170 case GeneralMediaFormat::MicrosoftVideoCodecManager:
171 return "Microsoft Video Codec Manager";
172 case GeneralMediaFormat::DolbyMlp:
173 return "Dolby TrueHD";
174 case GeneralMediaFormat::Mpeg1Audio:
175 switch (sub) {
176 case Mpeg1Layer1:
177 return "MPEG-1 Layer 1";
178 case Mpeg1Layer2:
179 return "MPEG-1 Layer 2";
180 case Mpeg1Layer3:
181 return "MPEG-1 Layer 3";
182 default:
183 return "MPEG-1 Audio";
184 }
185 case GeneralMediaFormat::Mpeg1Video:
186 return "MPEG-1 Video";
187 case GeneralMediaFormat::Mpeg2Audio:
188 switch (sub) {
189 case Mpeg1Layer1:
190 return "MPEG-2 Layer 1";
191 case Mpeg1Layer2:
192 return "MPEG-2 Layer 2";
193 case Mpeg1Layer3:
194 return "MPEG-2 Layer 3";
195 default:
196 return "MPEG-2 Audio";
197 }
198 case GeneralMediaFormat::Mpeg2Video:
199 switch (sub) {
200 case Mpeg2SimpleProfile:
201 return "MPEG-2 Video Simple Profile";
202 case Mpeg2MainProfile:
203 return "MPEG-2 Video Main Profile";
204 case Mpeg2SnrProfile:
205 return "MPEG-2 Video SNR Profile";
206 case Mpeg2SpatialProfile:
207 return "MPEG-2 Video Spatial Profile";
208 case Mpeg2HighProfile:
209 return "MPEG-2 Video High Profile";
210 case Mpeg2422Profile:
211 return "MPEG-2 Video 422 Profile";
212 default:
213 return "MPEG-2 Video";
214 }
215 case GeneralMediaFormat::Mpeg4Video:
216 switch (sub) {
217 case Mpeg4SimpleProfile1:
218 return "MPEG-4 Simple Profile L1";
219 case Mpeg4SimpleProfile2:
220 return "MPEG-4 Simple Profile L2";
221 case Mpeg4SimpleProfile3:
222 return "MPEG-4 Simple Profile L2";
223 case Mpeg4SimpleProfile0:
224 return "MPEG-4 Simple Profile";
225 case Mpeg4SimpleScalableProfile0:
226 return "MPEG-4 Simple Scalable Profile";
227 case Mpeg4SimpleScalableProfile1:
228 return "MPEG-4 Simple Scalable Profile L1";
229 case Mpeg4SimpleScalableProfile2:
230 return "MPEG-4 Simple Scalable Profile L2";
231 case Mpeg4CoreProfile1:
232 return "MPEG-4 Core Profile L1";
233 case Mpeg4CoreProfiel2:
234 return "MPEG-4 Core Profile L2";
235 case Mpeg4MainProfile2:
236 return "MPEG-4 Main Profile L2";
237 case Mpeg4MainProfile3:
238 return "MPEG-4 Main Profile L3";
239 case Mpeg4MainProfile4:
240 return "MPEG-4 Main Profile L4";
241 case Mpeg4NBitPrifle2:
242 return "MPEG-4 N-Bit Profile L2";
243 case Mpeg4ScalableTextureProfile1:
244 return "MPEG-4 Scalable Texture Profile L1";
245 case Mpeg4SimpleFaceAnimationProfile1:
246 return "MPEG-4 Simple Face Animation Profile L1";
247 case Mpeg4SimpleFaceAnimationProfile2:
248 return "MPEG-4 Simple Face Animation Profile L2";
249 case Mpeg4SimpleFbaProfile1:
250 return "MPEG-4 Simple FBA Profile L1";
251 case Mpeg4SimpleFbaProfile2:
252 return "MPEG-4 Simple FBA Profile L2";
253 case Mpeg4BasicAnimatedTextureProfiel1:
254 return "MPEG-4 Basic Animated Texture Profile L1";
255 case Mpeg4BasicAnimatedTextureProfiel2:
256 return "MPEG-4 Basic Animated Texture Profile L2";
257 case Mpeg4AvcProfile:
258 return "MPEG-4 Advanced Audio Coding Profile";
259 case Mpeg4HybridProfile1:
260 return "MPEG-4 Hybrid Profile L1";
261 case Mpeg4HybridProfile2:
262 return "MPEG-4 Hybrid Profile L2";
263 case Mpeg4AdvancedRealTimeSimpleProfile1:
264 return "MPEG-4 Basic Animated Texture Profile L1";
265 case Mpeg4AdvancedRealTimeSimpleProfile2:
266 return "MPEG-4 Basic Animated Texture Profile L2";
267 case Mpeg4AdvancedRealTimeSimpleProfile3:
268 return "MPEG-4 Basic Animated Texture Profile L3";
269 case Mpeg4AdvancedRealTimeSimpleProfile4:
270 return "MPEG-4 Basic Animated Texture Profile L4";
271 case Mpeg4CoreScalableProfile1:
272 return "MPEG-4 Core Scalable Profile L1";
273 case Mpeg4CoreScalableProfile2:
274 return "MPEG-4 Core Scalable Profile L2";
275 case Mpeg4CoreScalableProfile3:
276 return "MPEG-4 Core Scalable Profile L3";
277 case Mpeg4AdvancedCodingEfficiencyProfile1:
278 return "MPEG-4 Advanced Coding Efficiency Profile L1";
279 case Mpeg4AdvancedCodingEfficiencyProfile2:
280 return "MPEG-4 Advanced Coding Efficiency Profile L2";
281 case Mpeg4AdvancedCodingEfficiencyProfile3:
282 return "MPEG-4 Advanced Coding Efficiency Profile L3";
283 case Mpeg4AdvancedCodingEfficiencyProfile4:
284 return "MPEG-4 Advanced Coding Efficiency Profile L4";
285 case Mpeg4AdvancedCoreProfile1:
286 return "MPEG-4 Advanced Core Profile L1";
287 case Mpeg4AdvancedCoreProfile2:
288 return "MPEG-4 Advanced Core Profile L2";
289 case Mpeg4AdvancedScalableTexture1:
290 return "MPEG-4 Advanced Scalable Texture L1";
291 case Mpeg4AdvancedScalableTexture2:
292 return "MPEG-4 Advanced Scalable Texture L2";
293 case Mpeg4SimpleStudioProfile1:
294 return "MPEG-4 Simple Studio Profile L1";
295 case Mpeg4SimpleStudioProfile2:
296 return "MPEG-4 Simple Studio Profile L2";
297 case Mpeg4SimpleStudioProfile3:
298 return "MPEG-4 Simple Studio Profile L3";
299 case Mpeg4SimpleStudioProfile4:
300 return "MPEG-4 Simple Studio Profile L4";
301 case Mpeg4CoreStudioProfile1:
302 return "MPEG-4 Core Studio Profile L1";
303 case Mpeg4CoreStudioProfile2:
304 return "MPEG-4 Core Studio Profile L2";
305 case Mpeg4CoreStudioProfile3:
306 return "MPEG-4 Core Studio Profile L3";
307 case Mpeg4CoreStudioProfile4:
308 return "MPEG-4 Core Studio Profile L4";
309 case Mpeg4AdvancedSimpleProfile0:
310 return "MPEG-4 Advanced Simple Profile";
311 case Mpeg4AdvancedSimpleProfile1:
312 return "MPEG-4 Advanced Simple Profile L1";
313 case Mpeg4AdvancedSimpleProfile2:
314 return "MPEG-4 Advanced Simple Profile L2";
315 case Mpeg4AdvancedSimpleProfile3:
316 return "MPEG-4 Advanced Simple Profile L3";
317 case Mpeg4AdvancedSimpleProfile4:
318 return "MPEG-4 Advanced Simple Profile L4";
319 case Mpeg4AdvancedSimpleProfile5:
320 return "MPEG-4 Advanced Simple Profile L5";
321 case Mpeg4AdvancedSimpleProfile3b:
322 return "MPEG-4 Advanced Simple Profile L3b";
323 case Mpeg4FineGranularityScalableProfile0:
324 return "MPEG-4 Fine Granularity Scalable Profile";
325 case Mpeg4FineGranularityScalableProfile1:
326 return "MPEG-4 Fine Granularity Scalable Profile L1";
327 case Mpeg4FineGranularityScalableProfile2:
328 return "MPEG-4 Fine Granularity Scalable Profile L2";
329 case Mpeg4FineGranularityScalableProfile3:
330 return "MPEG-4 Fine Granularity Scalable Profile L3";
331 case Mpeg4FineGranularityScalableProfile4:
332 return "MPEG-4 Fine Granularity Scalable Profile L4";
333 case Mpeg4FineGranularityScalableProfile5:
334 return "MPEG-4 Fine Granularity Scalable Profile L5";
335 default:
336 return "MPEG-4 Visual";
337 }
338 case GeneralMediaFormat::Mpeg4TimedText:
339 return "MPEG-4 Timed Text";
340 case GeneralMediaFormat::Mpc:
341 return "Musepack SV8";
342 case GeneralMediaFormat::Pcm:
343 switch (sub) {
344 case PcmIntBe:
345 return "Pulse Code Modulation (integer, big endian)";
346 case PcmIntLe:
347 return "Pulse Code Modulation (integer, little endian)";
348 case PcmFloatIeee:
349 return "Pulse Code Modulation (float, IEEE)";
350 default:
351 return "Pulse Code Modulation";
352 }
353 case GeneralMediaFormat::Png:
354 return "Portable Network Graphics";
355 case GeneralMediaFormat::ProRes:
356 return "ProRes";
357 case GeneralMediaFormat::Qcelp:
358 return "QCELP";
359 case GeneralMediaFormat::QuicktimeAudio:
360 return "Quicktime Audio";
361 case GeneralMediaFormat::QuicktimeVideo:
362 return "Quicktime Video";
363 case GeneralMediaFormat::RealAudio:
364 return "Real Audio";
365 case GeneralMediaFormat::RealVideo:
366 return "Real Video";
367 case GeneralMediaFormat::Sa0c:
368 return "SAOC";
369 case GeneralMediaFormat::Smv:
370 return "SMV";
371 case GeneralMediaFormat::StreamingTextStream:
372 return "Streaming Text Stream";
373 case GeneralMediaFormat::SynthesizedTextureStream:
374 return "Synthesized Texture Stream";
375 case GeneralMediaFormat::Systems:
376 switch (sub) {
377 case 2:
378 return "Systems v2";
379 default:
380 return "Systems";
381 }
382 case GeneralMediaFormat::TextSubtitle:
383 switch (sub) {
384 case SubFormats::PlainUtf8Subtitle:
385 return "plain UTF-8 subtitle";
386 case SubFormats::SubStationAlpha:
387 return "SubStation Alpha";
388 case SubFormats::AdvancedSubStationAlpha:
389 return "Advanced SubStation Alpha";
390 case SubFormats::UniversalSubtitleFormat:
391 return "Universal Subtitle Format";
392 case SubFormats::WebVideoTextTracksFormat:
393 return "Web Video Text Tracks Format";
394 default:
395 return "Text subtitle";
396 }
397 case GeneralMediaFormat::Theora:
398 return "Theora";
399 case GeneralMediaFormat::Tiff:
400 return "Tagged Image File Format";
401 case GeneralMediaFormat::TimedText:
402 return "Timed Text";
403 case GeneralMediaFormat::Tta:
404 return "The True Audio";
405 case GeneralMediaFormat::UncompressedVideoFrames:
406 return "uncompressed video frames";
407 case GeneralMediaFormat::Vc1:
408 return "Windows Media Video";
409 case GeneralMediaFormat::VobBtn:
410 return "VobBtn Buttons";
411 case GeneralMediaFormat::VobSub:
412 return "VobSub";
413 case GeneralMediaFormat::Vorbis:
414 return "Vorbis";
415 case GeneralMediaFormat::Vp8:
416 return "VP8";
417 case GeneralMediaFormat::Vp9:
418 return "VP9";
419 case GeneralMediaFormat::WavPack:
420 return "WavPack";
421 case GeneralMediaFormat::WindowsMediaAudio:
422 return "Windows Media Audio";
423 case GeneralMediaFormat::WindowsMediaVideo:
424 switch (sub) {
425 case 1:
426 return "Windows Media Video v1/v7";
427 case 2:
428 return "Windows Media Video v2/v8";
429 default:
430 return "Windows Media Video";
431 }
432 case GeneralMediaFormat::DvbSub:
433 return "DVB subtitles";
434 case GeneralMediaFormat::Speex:
435 return "Speex";
436 case GeneralMediaFormat::MonkeysAudio:
437 return "Monkey's Audio";
438 default:
439 return "unknown";
440 }
441}
442
448std::string_view MediaFormat::abbreviation() const
449{
450 switch (general) {
451 case GeneralMediaFormat::Aac:
452 switch (sub) {
453 case AacMpeg2MainProfile:
454 return "MPEG-2 AAC Main";
455 case AacMpeg2LowComplexityProfile:
456 return "MPEG-2 AAC-LC";
457 case AacMpeg2ScalableSamplingRateProfile:
458 return "MPEG-2 AAC-SSR";
459 case AacMpeg4MainProfile:
460 return "MPEG-4 AAC Main";
461 case AacMpeg4LowComplexityProfile:
462 return "MPEG-4 AAC-LC";
463 case AacMpeg4ScalableSamplingRateProfile:
464 return "MPEG-4 AAC-SSR";
465 case AacMpeg4LongTermPrediction:
466 return "MPEG-4 AAC-LTP";
467 case AacMpeg4ERLowComplecityProfile:
468 return "MPEG-4 ER AAC-LC";
469 case AacMpeg4ERScalableSampingRateProfile:
470 return "MPEG-4 ER AAC-LC";
471 case AacMpeg4ERLongTermPrediction:
472 return "MPEG-4 ER AAC-LTP";
473 case AacMpeg4ERLowDelay:
474 return "MPEG-4 ER AAC-LD";
475 case AacMpeg4EREnhancedLowDelay:
476 return "MPEG-4 ER AAC-ELD";
477 default:
478 return "AAC";
479 }
480 case GeneralMediaFormat::Ac3:
481 return "AC-3";
482 case GeneralMediaFormat::Ac4:
483 return "AC-4";
484 case GeneralMediaFormat::AdpcmAcm:
485 return "ADPCM ACM";
486 case GeneralMediaFormat::AfxStream:
487 return "AFX";
488 case GeneralMediaFormat::Alac:
489 return "ALAC";
490 case GeneralMediaFormat::Als:
491 return "ALS";
492 case GeneralMediaFormat::Amr:
493 return "AMR";
494 case GeneralMediaFormat::Avc:
495 switch (sub) {
496 case AvcCavlc444IntraProfile:
497 return "H.264 CAVLC 4:4:4 Intra";
498 case AvcBaselineProfile:
499 return "H.264 Basline";
500 case AvcMainProfile:
501 return "H.264 Main";
502 case AvcScalableBaselineProfile:
503 return "H.264 Scalable Basline";
504 case AvcScalableHighProfile:
505 return "H.264 Scalable High";
506 case AvcExtendedProfile:
507 return "H.264 Extended";
508 case AvcHighProfile:
509 return "H.264 High";
510 case AvcHigh10Profile:
511 return "H.264 High 10";
512 case AvcHighMultiviewProfile:
513 return "H.264 Multiview";
514 case AvcHigh422Profile:
515 return "H.264 High 4:2:2";
516 case AvcStereoHighProfile:
517 return "H.264 Stereo High";
518 case AvcHighMultiviewDepthProfile:
519 return "H.264 Multiview Depth High";
520 case AvcHigh444Profile:
521 return "H.264 High 4:4:4";
522 case AvcHigh444PredictiveProfile:
523 return "H.264 High 4:4:4 Predictive";
524 default:
525 return "H.264";
526 }
527 case GeneralMediaFormat::Av1:
528 return "AV1";
529 case GeneralMediaFormat::Bitmap:
530 return "BMP";
531 case GeneralMediaFormat::Daala:
532 return "Daala";
533 case GeneralMediaFormat::Dirac:
534 return "Dirac";
535 case GeneralMediaFormat::Dts:
536 switch (sub) {
537 case DtsLossless:
538 return "DTS Lossless";
539 case DtsExpress:
540 return "DTS LBR";
541 default:
542 return "DTS";
543 }
544 case GeneralMediaFormat::DtsHd:
545 switch (sub) {
546 case DtsHdHighResolution:
547 return "DTS-HD High Resolution";
548 case DtsHdMasterAudio:
549 return "DTS-HD Master Audio";
550 case DtsExpress:
551 return "DTS-HD Express";
552 default:
553 return "DTS-HD";
554 }
555 case GeneralMediaFormat::EAc3:
556 return "E-AC-3";
557 case GeneralMediaFormat::Evrc:
558 return "EVRC";
559 case GeneralMediaFormat::Flac:
560 return "FLAC";
561 case GeneralMediaFormat::FontDataStream:
562 return "FDS";
563 case GeneralMediaFormat::Gif:
564 return "GIF";
565 case GeneralMediaFormat::Gpp2Cmf:
566 return "3GPP2 CMF";
567 case GeneralMediaFormat::Hevc:
568 return "H.265";
569 case GeneralMediaFormat::Vcc:
570 return "H.266";
571 case GeneralMediaFormat::ImaadpcmAcm:
572 return "IMAADPCM ACM";
573 case GeneralMediaFormat::ImageSubtitle:
574 switch (sub) {
575 case SubFormats::ImgSubBmp:
576 return "BMP subtitle";
577 default:
578 return "Image subtitle";
579 }
580 case GeneralMediaFormat::InteractionStream:
581 return "Interaction Stream";
582 case GeneralMediaFormat::Jpeg:
583 return "JPEG";
584 case GeneralMediaFormat::OggKate:
585 return "OggKate";
586 case GeneralMediaFormat::Opus:
587 return "Opus";
588 case GeneralMediaFormat::MicrosoftAudioCodecManager:
589 return "MS ACM";
590 case GeneralMediaFormat::MicrosoftMpeg4:
591 switch (sub) {
592 case 1:
593 return "MS MPEG-4 v1";
594 case 2:
595 return "MS MPEG-4 v2";
596 case 3:
597 return "MS MPEG-4 v3";
598 default:
599 return "MS MPEG-4";
600 }
601 case GeneralMediaFormat::MicrosoftVideoCodecManager:
602 return "MS VCM";
603 case GeneralMediaFormat::DolbyMlp:
604 return "Dolby TrueHD";
605 case GeneralMediaFormat::Mpeg1Audio:
606 switch (sub) {
607 case Mpeg1Layer1:
608 return "MP1";
609 case Mpeg1Layer2:
610 return "MP2";
611 case Mpeg1Layer3:
612 return "MP3";
613 default:
614 return "MPEG-1 Audio";
615 }
616 case GeneralMediaFormat::Mpeg1Video:
617 return "MP1";
618 case GeneralMediaFormat::Mpeg2Audio:
619 switch (sub) {
620 case Mpeg1Layer1:
621 return "MP1";
622 case Mpeg1Layer2:
623 return "MP2";
624 case Mpeg1Layer3:
625 return "MP3";
626 default:
627 return "MPEG-2 Audio";
628 }
629 case GeneralMediaFormat::Mpeg2Video:
630 switch (sub) {
631 case Mpeg2SimpleProfile:
632 return "MPEG-2 SP";
633 case Mpeg2MainProfile:
634 return "MPEG-2 Main";
635 case Mpeg2SnrProfile:
636 return "MPEG-2 SNR";
637 case Mpeg2SpatialProfile:
638 return "MPEG-2 Spatial";
639 case Mpeg2HighProfile:
640 return "MPEG-2 High";
641 case Mpeg2422Profile:
642 return "MPEG-2 422";
643 default:
644 return "MPEG-2 Video";
645 }
646 case GeneralMediaFormat::Mpeg4Video:
647 switch (sub) {
648 case Mpeg4SimpleProfile1:
649 case Mpeg4SimpleProfile2:
650 case Mpeg4SimpleProfile3:
651 case Mpeg4SimpleProfile0:
652 return "MPEG-4 SP";
653 case Mpeg4AdvancedSimpleProfile0:
654 case Mpeg4AdvancedSimpleProfile1:
655 case Mpeg4AdvancedSimpleProfile2:
656 case Mpeg4AdvancedSimpleProfile3:
657 case Mpeg4AdvancedSimpleProfile4:
658 case Mpeg4AdvancedSimpleProfile5:
659 case Mpeg4AdvancedSimpleProfile3b:
660 return "MPEG-4 ASP";
661 case Mpeg4AvcProfile:
662 return "H.264";
663 default:
664 return "MPEG-4 Visual";
665 }
666 case GeneralMediaFormat::Mpc:
667 return "MPC";
668 case GeneralMediaFormat::Pcm:
669 switch (sub) {
670 case PcmIntBe:
671 return "PCM (int, BE)";
672 case PcmIntLe:
673 return "PCM (int, LE)";
674 case PcmFloatIeee:
675 return "PCM IEEE";
676 default:
677 return "PCM";
678 }
679 case GeneralMediaFormat::Png:
680 return "PNG";
681 case GeneralMediaFormat::ProRes:
682 return "ProRes";
683 case GeneralMediaFormat::Qcelp:
684 return "QCELP";
685 case GeneralMediaFormat::QuicktimeAudio:
686 return "Quicktime Audio";
687 case GeneralMediaFormat::QuicktimeVideo:
688 return "Quicktime Video";
689 case GeneralMediaFormat::RealAudio:
690 return "Real Audio";
691 case GeneralMediaFormat::RealVideo:
692 return "Real Video";
693 case GeneralMediaFormat::Sa0c:
694 return "SAOC";
695 case GeneralMediaFormat::Smv:
696 return "SMV";
697 case GeneralMediaFormat::StreamingTextStream:
698 return "Streaming Text Stream";
699 case GeneralMediaFormat::SynthesizedTextureStream:
700 return "Synthesized Texture Stream";
701 case GeneralMediaFormat::Systems:
702 switch (sub) {
703 case 2:
704 return "Systems v2";
705 default:
706 return "Systems";
707 }
708 case GeneralMediaFormat::TextSubtitle:
709 switch (sub) {
710 case SubFormats::PlainUtf8Subtitle:
711 return "";
712 case SubFormats::SubStationAlpha:
713 return "SSA";
714 case SubFormats::AdvancedSubStationAlpha:
715 return "ASS";
716 case SubFormats::UniversalSubtitleFormat:
717 return "USF";
718 case SubFormats::WebVideoTextTracksFormat:
719 return "WebVTT";
720 default:
721 return "";
722 }
723 case GeneralMediaFormat::Theora:
724 return "Theora";
725 case GeneralMediaFormat::Tiff:
726 return "TIFF";
727 case GeneralMediaFormat::TimedText:
728 return "Timed Text";
729 case GeneralMediaFormat::Tta:
730 return "TTA";
731 case GeneralMediaFormat::UncompressedVideoFrames:
732 return "uncompressed video frames";
733 case GeneralMediaFormat::Vc1:
734 return "VC-1";
735 case GeneralMediaFormat::VobBtn:
736 return "VobBtn";
737 case GeneralMediaFormat::VobSub:
738 return "VobSub";
739 case GeneralMediaFormat::Vorbis:
740 return "Vorbis";
741 case GeneralMediaFormat::Vp8:
742 return "VP8";
743 case GeneralMediaFormat::Vp9:
744 return "VP9";
745 case GeneralMediaFormat::WavPack:
746 return "WavPack";
747 case GeneralMediaFormat::WindowsMediaAudio:
748 return "WMA";
749 case GeneralMediaFormat::WindowsMediaVideo:
750 return "WMV";
751 case GeneralMediaFormat::DvbSub:
752 return "DVBSUB";
753 case GeneralMediaFormat::Speex:
754 return "Speex";
755 default:
756 return "";
757 }
758}
759
765std::string_view MediaFormat::shortAbbreviation() const
766{
767 switch (general) {
768 case GeneralMediaFormat::Aac:
769 switch (sub) {
770 case AacMpeg2MainProfile:
771 case AacMpeg4MainProfile:
772 return "AAC-Main";
773 case AacMpeg2LowComplexityProfile:
774 case AacMpeg4LowComplexityProfile:
775 case AacMpeg4ERLowComplecityProfile:
776 switch (extension) {
777 using namespace ExtensionFormats;
778 case SpectralBandReplication:
779 case ParametricStereo:
780 case (SpectralBandReplication | ParametricStereo):
781 return "HE-AAC";
782 default:
783 return "AAC-LC";
784 }
785 case AacMpeg4ERScalableSampingRateProfile:
786 return "AAC-LC";
787 case AacMpeg2ScalableSamplingRateProfile:
788 case AacMpeg4ScalableSamplingRateProfile:
789 return "AAC-SSR";
790 case AacMpeg4LongTermPrediction:
791 case AacMpeg4ERLongTermPrediction:
792 return "AAC-LTP";
793 case AacMpeg4ERLowDelay:
794 return "AAC-LD";
795 case AacMpeg4EREnhancedLowDelay:
796 return "AAC-ELD";
797 default:
798 return "AAC";
799 }
800 case GeneralMediaFormat::Ac3:
801 return "AC3";
802 case GeneralMediaFormat::Ac4:
803 return "AC4";
804 case GeneralMediaFormat::AdpcmAcm:
805 return "ADPCM-ACM";
806 case GeneralMediaFormat::AfxStream:
807 return "AFX";
808 case GeneralMediaFormat::Alac:
809 return "ALAC";
810 case GeneralMediaFormat::Als:
811 return "ALS";
812 case GeneralMediaFormat::Amr:
813 return "AMR";
814 case GeneralMediaFormat::Avc:
815 switch (sub) {
816 case AvcCavlc444IntraProfile:
817 return "H.264-CAVLC";
818 case AvcBaselineProfile:
819 return "H.264-Basline";
820 case AvcMainProfile:
821 return "H.264-Main";
822 case AvcScalableBaselineProfile:
823 return "H.264-Scalable-Basline";
824 case AvcScalableHighProfile:
825 return "H.264-Scalable-High";
826 case AvcExtendedProfile:
827 return "H.264-Extended";
828 case AvcHighProfile:
829 return "H.264-High";
830 case AvcHigh10Profile:
831 return "H.264-High-10";
832 case AvcHighMultiviewProfile:
833 return "H.264-Multiview";
834 case AvcHigh422Profile:
835 return "H.264-High-4:2:2";
836 case AvcStereoHighProfile:
837 return "H.264-Stereo-High";
838 case AvcHighMultiviewDepthProfile:
839 return "H.264-Multiview-Depth-High";
840 case AvcHigh444Profile:
841 return "H.264-High-4:4:4";
842 case AvcHigh444PredictiveProfile:
843 return "H.264-High-4:4:4-Predictive";
844 default:
845 return "H.264";
846 }
847 case GeneralMediaFormat::Av1:
848 return "AV1";
849 case GeneralMediaFormat::Bitmap:
850 return "BMP";
851 case GeneralMediaFormat::Daala:
852 return "Daala";
853 case GeneralMediaFormat::Dirac:
854 return "Dirac";
855 case GeneralMediaFormat::Dts:
856 switch (sub) {
857 case DtsLossless:
858 return "DTS-Lossless";
859 case DtsExpress:
860 return "DTS-LBR";
861 default:
862 return "DTS";
863 }
864 case GeneralMediaFormat::DtsHd:
865 return "DTS-HD";
866 case GeneralMediaFormat::EAc3:
867 return "E-AC-3";
868 case GeneralMediaFormat::Evrc:
869 return "EVRC";
870 case GeneralMediaFormat::Flac:
871 return "FLAC";
872 case GeneralMediaFormat::FontDataStream:
873 return "FDS";
874 case GeneralMediaFormat::Gif:
875 return "GIF";
876 case GeneralMediaFormat::Gpp2Cmf:
877 return "3GPP2-CMF";
878 case GeneralMediaFormat::Hevc:
879 return "H.265";
880 case GeneralMediaFormat::Vcc:
881 return "H.266";
882 case GeneralMediaFormat::ImaadpcmAcm:
883 return "IMAADPCM-ACM";
884 case GeneralMediaFormat::ImageSubtitle:
885 return "BMP";
886 case GeneralMediaFormat::Jpeg:
887 return "JPEG";
888 case GeneralMediaFormat::OggKate:
889 return "OggKate";
890 case GeneralMediaFormat::Opus:
891 return "Opus";
892 case GeneralMediaFormat::MicrosoftAudioCodecManager:
893 return "MS-ACM";
894 case GeneralMediaFormat::MicrosoftMpeg4:
895 return "MS-MPEG-4";
896 case GeneralMediaFormat::MicrosoftVideoCodecManager:
897 return "MS-VCM";
898 case GeneralMediaFormat::DolbyMlp:
899 return "TrueHD";
900 case GeneralMediaFormat::Mpeg1Audio:
901 switch (sub) {
902 case Mpeg1Layer1:
903 return "MP1";
904 case Mpeg1Layer2:
905 return "MP2";
906 default:
907 // since MP3 is backward compatible, it is ok to use it also as fallback
908 return "MP3";
909 }
910 case GeneralMediaFormat::Mpeg1Video:
911 return "MP1";
912 case GeneralMediaFormat::Mpeg2Audio:
913 switch (sub) {
914 case Mpeg1Layer1:
915 return "MP1";
916 case Mpeg1Layer2:
917 return "MP2";
918 default:
919 // since MP3 is backward compatible, it is ok to use it also as fallback
920 return "MP3";
921 }
922 case GeneralMediaFormat::Mpeg2Video:
923 switch (sub) {
924 case Mpeg2SimpleProfile:
925 return "MPEG-2-SP";
926 case Mpeg2MainProfile:
927 return "MPEG-2-Main";
928 case Mpeg2SnrProfile:
929 return "MPEG-2-SNR";
930 case Mpeg2SpatialProfile:
931 return "MPEG-2-Spatial";
932 case Mpeg2HighProfile:
933 return "MPEG-2-High";
934 case Mpeg2422Profile:
935 return "MPEG-2-422";
936 default:
937 return "MPEG-2";
938 }
939 case GeneralMediaFormat::Mpeg4Video:
940 switch (sub) {
941 case Mpeg4SimpleProfile1:
942 case Mpeg4SimpleProfile2:
943 case Mpeg4SimpleProfile3:
944 case Mpeg4SimpleProfile0:
945 return "MPEG-4-SP";
946 case Mpeg4AdvancedSimpleProfile0:
947 case Mpeg4AdvancedSimpleProfile1:
948 case Mpeg4AdvancedSimpleProfile2:
949 case Mpeg4AdvancedSimpleProfile3:
950 case Mpeg4AdvancedSimpleProfile4:
951 case Mpeg4AdvancedSimpleProfile5:
952 case Mpeg4AdvancedSimpleProfile3b:
953 return "MPEG-4-ASP";
954 case Mpeg4AvcProfile:
955 return "H.264";
956 default:
957 return "MPEG-4-Visual";
958 }
959 case GeneralMediaFormat::Mpc:
960 return "MPC";
961 case GeneralMediaFormat::Pcm:
962 return "PCM";
963 case GeneralMediaFormat::Png:
964 return "PNG";
965 case GeneralMediaFormat::ProRes:
966 return "ProRes";
967 case GeneralMediaFormat::Qcelp:
968 return "QCELP";
969 case GeneralMediaFormat::QuicktimeAudio:
970 return "Qt-Audio";
971 case GeneralMediaFormat::QuicktimeVideo:
972 return "Qt-Video";
973 case GeneralMediaFormat::RealAudio:
974 return "Real-Audio";
975 case GeneralMediaFormat::RealVideo:
976 return "Real-Video";
977 case GeneralMediaFormat::Sa0c:
978 return "SAOC";
979 case GeneralMediaFormat::Smv:
980 return "SMV";
981 case GeneralMediaFormat::Systems:
982 return "Systems";
983 case GeneralMediaFormat::TextSubtitle:
984 switch (sub) {
985 case SubFormats::PlainUtf8Subtitle:
986 return "UTF-8";
987 case SubFormats::SubStationAlpha:
988 return "SSA";
989 case SubFormats::AdvancedSubStationAlpha:
990 return "ASS";
991 case SubFormats::UniversalSubtitleFormat:
992 return "USF";
993 case SubFormats::WebVideoTextTracksFormat:
994 return "WebVTT";
995 default:
996 return "";
997 }
998 case GeneralMediaFormat::Theora:
999 return "Theora";
1000 case GeneralMediaFormat::Tiff:
1001 return "TIFF";
1002 case GeneralMediaFormat::TimedText:
1003 return "Timed-Text";
1004 case GeneralMediaFormat::Tta:
1005 return "TTA";
1006 case GeneralMediaFormat::UncompressedVideoFrames:
1007 return "RAW";
1008 case GeneralMediaFormat::Vc1:
1009 return "VC-1";
1010 case GeneralMediaFormat::VobBtn:
1011 return "VobBtn";
1012 case GeneralMediaFormat::VobSub:
1013 return "VobSub";
1014 case GeneralMediaFormat::Vorbis:
1015 return "Vorbis";
1016 case GeneralMediaFormat::Vp8:
1017 return "VP8";
1018 case GeneralMediaFormat::Vp9:
1019 return "VP9";
1020 case GeneralMediaFormat::WavPack:
1021 return "WavPack";
1022 case GeneralMediaFormat::WindowsMediaAudio:
1023 return "WMA";
1024 case GeneralMediaFormat::WindowsMediaVideo:
1025 return "WMV";
1026 case GeneralMediaFormat::DvbSub:
1027 return "DVBSUB";
1028 case GeneralMediaFormat::Speex:
1029 return "Speex";
1030 case GeneralMediaFormat::MonkeysAudio:
1031 return "APE";
1032 default:
1033 return "";
1034 }
1035}
1036
1042std::string_view MediaFormat::extensionName() const
1043{
1044 switch (general) {
1045 using namespace ExtensionFormats;
1046 case GeneralMediaFormat::Aac:
1047 switch (extension) {
1048 case SpectralBandReplication:
1049 return "Spectral Band Replication / HE-AAC";
1050 case ParametricStereo:
1051 return "Parametric Stereo / HE-AAC v2"; // PS always implies SBR?
1052 case (SpectralBandReplication | ParametricStereo):
1053 return "Spectral Band Replication and Parametric Stereo / HE-AAC v2";
1054 default:;
1055 }
1056 break;
1057 default:;
1058 }
1059 return "";
1060}
1061
1065std::string_view mediaTypeName(MediaType mediaType)
1066{
1067 switch (mediaType) {
1068 case MediaType::Unknown:
1069 return "Other";
1070 case MediaType::Audio:
1071 return "Audio";
1072 case MediaType::Video:
1073 return "Video";
1074 case MediaType::Text:
1075 return "Subititle";
1076 case MediaType::Buttons:
1077 return "Buttons";
1078 case MediaType::Control:
1079 return "Control";
1080 case MediaType::Hint:
1081 return "Hint";
1082 case MediaType::Meta:
1083 return "Meta-data";
1084 }
1085 return "";
1086}
1087
1088} // namespace TagParser
TagParser::MediaFormat::sub
unsigned char sub
Definition mediaformat.h:261
TagParser::MediaFormat::abbreviation
std::string_view abbreviation() const
Returns the abbreviation of the media format as C-style string.
Definition mediaformat.cpp:448
TagParser::MediaFormat::shortAbbreviation
std::string_view shortAbbreviation() const
Returns a short abbreviation of the media format as C-style string.
Definition mediaformat.cpp:765
TagParser::MediaFormat::name
std::string_view name() const
Returns the name of the media format as C-style string.
Definition mediaformat.cpp:17
TagParser::MediaFormat::extensionName
std::string_view extensionName() const
Returns the abbreviation of the media format as C-style string.
Definition mediaformat.cpp:1042
TagParser::MediaFormat::extension
unsigned char extension
Definition mediaformat.h:262
TagParser::MediaFormat::general
GeneralMediaFormat general
Definition mediaformat.h:260
mediaformat.h
TagParser::ExtensionFormats
Encapsulates extension formats.
Definition mediaformat.h:243
TagParser::SubFormats
Encapsulates sub formats.
Definition mediaformat.h:110
TagParser::SubFormats::AacMpeg4MainProfile
@ AacMpeg4MainProfile
Definition mediaformat.h:120
TagParser::SubFormats::AacMpeg4LowComplexityProfile
@ AacMpeg4LowComplexityProfile
Definition mediaformat.h:121
TagParser::SubFormats::AacMpeg2LowComplexityProfile
@ AacMpeg2LowComplexityProfile
Definition mediaformat.h:118
TagParser::SubFormats::AacMpeg4ERLowComplecityProfile
@ AacMpeg4ERLowComplecityProfile
Definition mediaformat.h:124
TagParser::SubFormats::AacMpeg2ScalableSamplingRateProfile
@ AacMpeg2ScalableSamplingRateProfile
Definition mediaformat.h:119
TagParser::SubFormats::AacMpeg4ERLongTermPrediction
@ AacMpeg4ERLongTermPrediction
Definition mediaformat.h:126
TagParser::SubFormats::AacMpeg2MainProfile
@ AacMpeg2MainProfile
Definition mediaformat.h:117
TagParser::SubFormats::AacMpeg4ScalableSamplingRateProfile
@ AacMpeg4ScalableSamplingRateProfile
Definition mediaformat.h:122
TagParser::SubFormats::AacMpeg4EREnhancedLowDelay
@ AacMpeg4EREnhancedLowDelay
Definition mediaformat.h:128
TagParser::SubFormats::AacMpeg4ERLowDelay
@ AacMpeg4ERLowDelay
Definition mediaformat.h:127
TagParser::SubFormats::AacMpeg4LongTermPrediction
@ AacMpeg4LongTermPrediction
Definition mediaformat.h:123
TagParser::SubFormats::AacMpeg4ERScalableSampingRateProfile
@ AacMpeg4ERScalableSampingRateProfile
Definition mediaformat.h:125
TagParser::SubFormats::DtsLossless
@ DtsLossless
Definition mediaformat.h:221
TagParser::SubFormats::DtsExpress
@ DtsExpress
Definition mediaformat.h:220
TagParser::SubFormats::DtsHdMasterAudio
@ DtsHdMasterAudio
Definition mediaformat.h:223
TagParser::SubFormats::DtsHdHighResolution
@ DtsHdHighResolution
Definition mediaformat.h:222
TagParser::SubFormats::Mpeg1Layer2
@ Mpeg1Layer2
Definition mediaformat.h:114
TagParser::SubFormats::Mpeg1Layer1
@ Mpeg1Layer1
Definition mediaformat.h:114
TagParser::SubFormats::Mpeg1Layer3
@ Mpeg1Layer3
Definition mediaformat.h:114
TagParser::SubFormats::PcmIntBe
@ PcmIntBe
Definition mediaformat.h:226
TagParser::SubFormats::PcmIntLe
@ PcmIntLe
Definition mediaformat.h:226
TagParser::SubFormats::PcmFloatIeee
@ PcmFloatIeee
Definition mediaformat.h:226
TagParser::SubFormats::Mpeg2HighProfile
@ Mpeg2HighProfile
Definition mediaformat.h:136
TagParser::SubFormats::Mpeg2SnrProfile
@ Mpeg2SnrProfile
Definition mediaformat.h:134
TagParser::SubFormats::Mpeg2SimpleProfile
@ Mpeg2SimpleProfile
Definition mediaformat.h:132
TagParser::SubFormats::Mpeg2422Profile
@ Mpeg2422Profile
Definition mediaformat.h:137
TagParser::SubFormats::Mpeg2MainProfile
@ Mpeg2MainProfile
Definition mediaformat.h:133
TagParser::SubFormats::Mpeg2SpatialProfile
@ Mpeg2SpatialProfile
Definition mediaformat.h:135
TagParser::SubFormats::Mpeg4MainProfile3
@ Mpeg4MainProfile3
Definition mediaformat.h:151
TagParser::SubFormats::Mpeg4SimpleScalableProfile1
@ Mpeg4SimpleScalableProfile1
Definition mediaformat.h:146
TagParser::SubFormats::Mpeg4CoreStudioProfile2
@ Mpeg4CoreStudioProfile2
Definition mediaformat.h:184
TagParser::SubFormats::Mpeg4BasicAnimatedTextureProfiel2
@ Mpeg4BasicAnimatedTextureProfiel2
Definition mediaformat.h:160
TagParser::SubFormats::Mpeg4AdvancedCodingEfficiencyProfile2
@ Mpeg4AdvancedCodingEfficiencyProfile2
Definition mediaformat.h:172
TagParser::SubFormats::Mpeg4CoreProfiel2
@ Mpeg4CoreProfiel2
Definition mediaformat.h:149
TagParser::SubFormats::Mpeg4FineGranularityScalableProfile2
@ Mpeg4FineGranularityScalableProfile2
Definition mediaformat.h:196
TagParser::SubFormats::Mpeg4SimpleFbaProfile2
@ Mpeg4SimpleFbaProfile2
Definition mediaformat.h:158
TagParser::SubFormats::Mpeg4SimpleProfile2
@ Mpeg4SimpleProfile2
Definition mediaformat.h:142
TagParser::SubFormats::Mpeg4CoreStudioProfile3
@ Mpeg4CoreStudioProfile3
Definition mediaformat.h:185
TagParser::SubFormats::Mpeg4FineGranularityScalableProfile4
@ Mpeg4FineGranularityScalableProfile4
Definition mediaformat.h:198
TagParser::SubFormats::Mpeg4AdvancedSimpleProfile2
@ Mpeg4AdvancedSimpleProfile2
Definition mediaformat.h:189
TagParser::SubFormats::Mpeg4AvcProfile
@ Mpeg4AvcProfile
Definition mediaformat.h:161
TagParser::SubFormats::Mpeg4SimpleStudioProfile4
@ Mpeg4SimpleStudioProfile4
Definition mediaformat.h:182
TagParser::SubFormats::Mpeg4AdvancedCoreProfile1
@ Mpeg4AdvancedCoreProfile1
Definition mediaformat.h:175
TagParser::SubFormats::Mpeg4SimpleFaceAnimationProfile1
@ Mpeg4SimpleFaceAnimationProfile1
Definition mediaformat.h:155
TagParser::SubFormats::Mpeg4AdvancedSimpleProfile3
@ Mpeg4AdvancedSimpleProfile3
Definition mediaformat.h:190
TagParser::SubFormats::Mpeg4CoreScalableProfile2
@ Mpeg4CoreScalableProfile2
Definition mediaformat.h:169
TagParser::SubFormats::Mpeg4FineGranularityScalableProfile1
@ Mpeg4FineGranularityScalableProfile1
Definition mediaformat.h:195
TagParser::SubFormats::Mpeg4BasicAnimatedTextureProfiel1
@ Mpeg4BasicAnimatedTextureProfiel1
Definition mediaformat.h:159
TagParser::SubFormats::Mpeg4FineGranularityScalableProfile3
@ Mpeg4FineGranularityScalableProfile3
Definition mediaformat.h:197
TagParser::SubFormats::Mpeg4AdvancedCodingEfficiencyProfile3
@ Mpeg4AdvancedCodingEfficiencyProfile3
Definition mediaformat.h:173
TagParser::SubFormats::Mpeg4AdvancedRealTimeSimpleProfile4
@ Mpeg4AdvancedRealTimeSimpleProfile4
Definition mediaformat.h:167
TagParser::SubFormats::Mpeg4AdvancedSimpleProfile0
@ Mpeg4AdvancedSimpleProfile0
Definition mediaformat.h:187
TagParser::SubFormats::Mpeg4AdvancedCoreProfile2
@ Mpeg4AdvancedCoreProfile2
Definition mediaformat.h:176
TagParser::SubFormats::Mpeg4SimpleStudioProfile1
@ Mpeg4SimpleStudioProfile1
Definition mediaformat.h:179
TagParser::SubFormats::Mpeg4AdvancedScalableTexture2
@ Mpeg4AdvancedScalableTexture2
Definition mediaformat.h:178
TagParser::SubFormats::Mpeg4SimpleFaceAnimationProfile2
@ Mpeg4SimpleFaceAnimationProfile2
Definition mediaformat.h:156
TagParser::SubFormats::Mpeg4SimpleProfile3
@ Mpeg4SimpleProfile3
Definition mediaformat.h:143
TagParser::SubFormats::Mpeg4AdvancedSimpleProfile5
@ Mpeg4AdvancedSimpleProfile5
Definition mediaformat.h:192
TagParser::SubFormats::Mpeg4AdvancedSimpleProfile4
@ Mpeg4AdvancedSimpleProfile4
Definition mediaformat.h:191
TagParser::SubFormats::Mpeg4SimpleScalableProfile2
@ Mpeg4SimpleScalableProfile2
Definition mediaformat.h:147
TagParser::SubFormats::Mpeg4FineGranularityScalableProfile0
@ Mpeg4FineGranularityScalableProfile0
Definition mediaformat.h:194
TagParser::SubFormats::Mpeg4SimpleProfile0
@ Mpeg4SimpleProfile0
Definition mediaformat.h:144
TagParser::SubFormats::Mpeg4SimpleStudioProfile3
@ Mpeg4SimpleStudioProfile3
Definition mediaformat.h:181
TagParser::SubFormats::Mpeg4CoreProfile1
@ Mpeg4CoreProfile1
Definition mediaformat.h:148
TagParser::SubFormats::Mpeg4HybridProfile1
@ Mpeg4HybridProfile1
Definition mediaformat.h:162
TagParser::SubFormats::Mpeg4HybridProfile2
@ Mpeg4HybridProfile2
Definition mediaformat.h:163
TagParser::SubFormats::Mpeg4AdvancedCodingEfficiencyProfile1
@ Mpeg4AdvancedCodingEfficiencyProfile1
Definition mediaformat.h:171
TagParser::SubFormats::Mpeg4SimpleFbaProfile1
@ Mpeg4SimpleFbaProfile1
Definition mediaformat.h:157
TagParser::SubFormats::Mpeg4AdvancedSimpleProfile3b
@ Mpeg4AdvancedSimpleProfile3b
Definition mediaformat.h:193
TagParser::SubFormats::Mpeg4AdvancedRealTimeSimpleProfile1
@ Mpeg4AdvancedRealTimeSimpleProfile1
Definition mediaformat.h:164
TagParser::SubFormats::Mpeg4ScalableTextureProfile1
@ Mpeg4ScalableTextureProfile1
Definition mediaformat.h:154
TagParser::SubFormats::Mpeg4SimpleStudioProfile2
@ Mpeg4SimpleStudioProfile2
Definition mediaformat.h:180
TagParser::SubFormats::Mpeg4CoreScalableProfile1
@ Mpeg4CoreScalableProfile1
Definition mediaformat.h:168
TagParser::SubFormats::Mpeg4AdvancedRealTimeSimpleProfile3
@ Mpeg4AdvancedRealTimeSimpleProfile3
Definition mediaformat.h:166
TagParser::SubFormats::Mpeg4MainProfile2
@ Mpeg4MainProfile2
Definition mediaformat.h:150
TagParser::SubFormats::Mpeg4CoreStudioProfile1
@ Mpeg4CoreStudioProfile1
Definition mediaformat.h:183
TagParser::SubFormats::Mpeg4AdvancedSimpleProfile1
@ Mpeg4AdvancedSimpleProfile1
Definition mediaformat.h:188
TagParser::SubFormats::Mpeg4SimpleProfile1
@ Mpeg4SimpleProfile1
Definition mediaformat.h:141
TagParser::SubFormats::Mpeg4MainProfile4
@ Mpeg4MainProfile4
Definition mediaformat.h:152
TagParser::SubFormats::Mpeg4FineGranularityScalableProfile5
@ Mpeg4FineGranularityScalableProfile5
Definition mediaformat.h:199
TagParser::SubFormats::Mpeg4CoreStudioProfile4
@ Mpeg4CoreStudioProfile4
Definition mediaformat.h:186
TagParser::SubFormats::Mpeg4SimpleScalableProfile0
@ Mpeg4SimpleScalableProfile0
Definition mediaformat.h:145
TagParser::SubFormats::Mpeg4AdvancedScalableTexture1
@ Mpeg4AdvancedScalableTexture1
Definition mediaformat.h:177
TagParser::SubFormats::Mpeg4AdvancedRealTimeSimpleProfile2
@ Mpeg4AdvancedRealTimeSimpleProfile2
Definition mediaformat.h:165
TagParser::SubFormats::Mpeg4CoreScalableProfile3
@ Mpeg4CoreScalableProfile3
Definition mediaformat.h:170
TagParser::SubFormats::Mpeg4NBitPrifle2
@ Mpeg4NBitPrifle2
Definition mediaformat.h:153
TagParser::SubFormats::Mpeg4AdvancedCodingEfficiencyProfile4
@ Mpeg4AdvancedCodingEfficiencyProfile4
Definition mediaformat.h:174
TagParser::SubFormats::SubStationAlpha
@ SubStationAlpha
Definition mediaformat.h:230
TagParser::SubFormats::PlainUtf8Subtitle
@ PlainUtf8Subtitle
Definition mediaformat.h:229
TagParser::SubFormats::WebVideoTextTracksFormat
@ WebVideoTextTracksFormat
Definition mediaformat.h:233
TagParser::SubFormats::AdvancedSubStationAlpha
@ AdvancedSubStationAlpha
Definition mediaformat.h:231
TagParser::SubFormats::UniversalSubtitleFormat
@ UniversalSubtitleFormat
Definition mediaformat.h:232
TagParser::SubFormats::AvcHigh10Profile
@ AvcHigh10Profile
Definition mediaformat.h:210
TagParser::SubFormats::AvcScalableBaselineProfile
@ AvcScalableBaselineProfile
Definition mediaformat.h:206
TagParser::SubFormats::AvcHigh444PredictiveProfile
@ AvcHigh444PredictiveProfile
Definition mediaformat.h:216
TagParser::SubFormats::AvcBaselineProfile
@ AvcBaselineProfile
Definition mediaformat.h:204
TagParser::SubFormats::AvcHighMultiviewDepthProfile
@ AvcHighMultiviewDepthProfile
Definition mediaformat.h:214
TagParser::SubFormats::AvcExtendedProfile
@ AvcExtendedProfile
Definition mediaformat.h:208
TagParser::SubFormats::AvcCavlc444IntraProfile
@ AvcCavlc444IntraProfile
Definition mediaformat.h:203
TagParser::SubFormats::AvcStereoHighProfile
@ AvcStereoHighProfile
Definition mediaformat.h:213
TagParser::SubFormats::AvcHigh422Profile
@ AvcHigh422Profile
Definition mediaformat.h:212
TagParser::SubFormats::AvcHighMultiviewProfile
@ AvcHighMultiviewProfile
Definition mediaformat.h:211
TagParser::SubFormats::AvcScalableHighProfile
@ AvcScalableHighProfile
Definition mediaformat.h:207
TagParser::SubFormats::AvcHigh444Profile
@ AvcHigh444Profile
Definition mediaformat.h:215
TagParser::SubFormats::AvcMainProfile
@ AvcMainProfile
Definition mediaformat.h:205
TagParser::SubFormats::AvcHighProfile
@ AvcHighProfile
Definition mediaformat.h:209
TagParser::SubFormats::ImgSubBmp
@ ImgSubBmp
Definition mediaformat.h:236
TagParser
Contains all classes and functions of the TagInfo library.
Definition aaccodebook.h:10
TagParser::MediaType
MediaType
The MediaType enum specifies the type of media data (audio, video, text, ...).
Definition mediaformat.h:14
TagParser::MediaType::Video
@ Video
Definition mediaformat.h:17
TagParser::MediaType::Buttons
@ Buttons
Definition mediaformat.h:19
TagParser::MediaType::Unknown
@ Unknown
Definition mediaformat.h:15
TagParser::MediaType::Text
@ Text
Definition mediaformat.h:18
TagParser::MediaType::Control
@ Control
Definition mediaformat.h:20
TagParser::MediaType::Audio
@ Audio
Definition mediaformat.h:16
TagParser::MediaType::Meta
@ Meta
Definition mediaformat.h:22
TagParser::MediaType::Hint
@ Hint
Definition mediaformat.h:21
TagParser::GeneralMediaFormat::Vp8
@ Vp8
Definition mediaformat.h:97
TagParser::GeneralMediaFormat::Alac
@ Alac
Definition mediaformat.h:37
TagParser::GeneralMediaFormat::Vorbis
@ Vorbis
Definition mediaformat.h:96
TagParser::GeneralMediaFormat::RealVideo
@ RealVideo
Definition mediaformat.h:80
TagParser::GeneralMediaFormat::Tta
@ Tta
Definition mediaformat.h:91
TagParser::GeneralMediaFormat::Vp9
@ Vp9
Definition mediaformat.h:98
TagParser::GeneralMediaFormat::MicrosoftVideoCodecManager
@ MicrosoftVideoCodecManager
Definition mediaformat.h:62
TagParser::GeneralMediaFormat::Amr
@ Amr
Definition mediaformat.h:39
TagParser::GeneralMediaFormat::Hevc
@ Hevc
Definition mediaformat.h:55
TagParser::GeneralMediaFormat::Mpeg4TimedText
@ Mpeg4TimedText
Definition mediaformat.h:69
TagParser::GeneralMediaFormat::Av1
@ Av1
Definition mediaformat.h:41
TagParser::GeneralMediaFormat::VobBtn
@ VobBtn
Definition mediaformat.h:94
TagParser::GeneralMediaFormat::DtsHd
@ DtsHd
Definition mediaformat.h:47
TagParser::GeneralMediaFormat::Speex
@ Speex
Definition mediaformat.h:83
TagParser::GeneralMediaFormat::QuicktimeVideo
@ QuicktimeVideo
Definition mediaformat.h:78
TagParser::GeneralMediaFormat::RealAudio
@ RealAudio
Definition mediaformat.h:79
TagParser::GeneralMediaFormat::MonkeysAudio
@ MonkeysAudio
Definition mediaformat.h:63
TagParser::GeneralMediaFormat::Ac3
@ Ac3
Definition mediaformat.h:33
TagParser::GeneralMediaFormat::Jpeg
@ Jpeg
Definition mediaformat.h:59
TagParser::GeneralMediaFormat::Flac
@ Flac
Definition mediaformat.h:51
TagParser::GeneralMediaFormat::Pcm
@ Pcm
Definition mediaformat.h:73
TagParser::GeneralMediaFormat::Theora
@ Theora
Definition mediaformat.h:88
TagParser::GeneralMediaFormat::InteractionStream
@ InteractionStream
Definition mediaformat.h:58
TagParser::GeneralMediaFormat::Mpc
@ Mpc
Definition mediaformat.h:64
TagParser::GeneralMediaFormat::MicrosoftAudioCodecManager
@ MicrosoftAudioCodecManager
Definition mediaformat.h:60
TagParser::GeneralMediaFormat::Tiff
@ Tiff
Definition mediaformat.h:89
TagParser::GeneralMediaFormat::Avc
@ Avc
Definition mediaformat.h:40
TagParser::GeneralMediaFormat::Aac
@ Aac
Definition mediaformat.h:32
TagParser::GeneralMediaFormat::DolbyMlp
@ DolbyMlp
Definition mediaformat.h:45
TagParser::GeneralMediaFormat::MicrosoftMpeg4
@ MicrosoftMpeg4
Definition mediaformat.h:61
TagParser::GeneralMediaFormat::DvbSub
@ DvbSub
Definition mediaformat.h:48
TagParser::GeneralMediaFormat::OggKate
@ OggKate
Definition mediaformat.h:71
TagParser::GeneralMediaFormat::Bitmap
@ Bitmap
Definition mediaformat.h:42
TagParser::GeneralMediaFormat::StreamingTextStream
@ StreamingTextStream
Definition mediaformat.h:84
TagParser::GeneralMediaFormat::FontDataStream
@ FontDataStream
Definition mediaformat.h:52
TagParser::GeneralMediaFormat::AdpcmAcm
@ AdpcmAcm
Definition mediaformat.h:35
TagParser::GeneralMediaFormat::WindowsMediaVideo
@ WindowsMediaVideo
Definition mediaformat.h:101
TagParser::GeneralMediaFormat::Gpp2Cmf
@ Gpp2Cmf
Definition mediaformat.h:54
TagParser::GeneralMediaFormat::WavPack
@ WavPack
Definition mediaformat.h:99
TagParser::GeneralMediaFormat::Dirac
@ Dirac
Definition mediaformat.h:44
TagParser::GeneralMediaFormat::Qcelp
@ Qcelp
Definition mediaformat.h:76
TagParser::GeneralMediaFormat::Gif
@ Gif
Definition mediaformat.h:53
TagParser::GeneralMediaFormat::UncompressedVideoFrames
@ UncompressedVideoFrames
Definition mediaformat.h:92
TagParser::GeneralMediaFormat::Als
@ Als
Definition mediaformat.h:38
TagParser::GeneralMediaFormat::WindowsMediaAudio
@ WindowsMediaAudio
Definition mediaformat.h:100
TagParser::GeneralMediaFormat::ProRes
@ ProRes
Definition mediaformat.h:75
TagParser::GeneralMediaFormat::VobSub
@ VobSub
Definition mediaformat.h:95
TagParser::GeneralMediaFormat::TextSubtitle
@ TextSubtitle
Definition mediaformat.h:87
TagParser::GeneralMediaFormat::Vcc
@ Vcc
Definition mediaformat.h:102
TagParser::GeneralMediaFormat::ImageSubtitle
@ ImageSubtitle
Definition mediaformat.h:57
TagParser::GeneralMediaFormat::Systems
@ Systems
Definition mediaformat.h:86
TagParser::GeneralMediaFormat::Ac4
@ Ac4
Definition mediaformat.h:34
TagParser::GeneralMediaFormat::Mpeg2Video
@ Mpeg2Video
Definition mediaformat.h:68
TagParser::GeneralMediaFormat::SynthesizedTextureStream
@ SynthesizedTextureStream
Definition mediaformat.h:85
TagParser::GeneralMediaFormat::Smv
@ Smv
Definition mediaformat.h:82
TagParser::GeneralMediaFormat::Evrc
@ Evrc
Definition mediaformat.h:50
TagParser::GeneralMediaFormat::ImaadpcmAcm
@ ImaadpcmAcm
Definition mediaformat.h:56
TagParser::GeneralMediaFormat::Mpeg1Video
@ Mpeg1Video
Definition mediaformat.h:66
TagParser::GeneralMediaFormat::TimedText
@ TimedText
Definition mediaformat.h:90
TagParser::GeneralMediaFormat::QuicktimeAudio
@ QuicktimeAudio
Definition mediaformat.h:77
TagParser::GeneralMediaFormat::Mpeg1Audio
@ Mpeg1Audio
Definition mediaformat.h:65
TagParser::GeneralMediaFormat::Mpeg4Video
@ Mpeg4Video
Definition mediaformat.h:70
TagParser::GeneralMediaFormat::Vc1
@ Vc1
Definition mediaformat.h:93
TagParser::GeneralMediaFormat::AfxStream
@ AfxStream
Definition mediaformat.h:36
TagParser::GeneralMediaFormat::Opus
@ Opus
Definition mediaformat.h:72
TagParser::GeneralMediaFormat::EAc3
@ EAc3
Definition mediaformat.h:49
TagParser::GeneralMediaFormat::Dts
@ Dts
Definition mediaformat.h:46
TagParser::GeneralMediaFormat::Daala
@ Daala
Definition mediaformat.h:43
TagParser::GeneralMediaFormat::Png
@ Png
Definition mediaformat.h:74
TagParser::GeneralMediaFormat::Sa0c
@ Sa0c
Definition mediaformat.h:81
TagParser::GeneralMediaFormat::Mpeg2Audio
@ Mpeg2Audio
Definition mediaformat.h:67
TagParser::mediaTypeName
TAG_PARSER_EXPORT std::string_view mediaTypeName(MediaType mediaType)
Returns the string representation for the specified mediaType.
Definition mediaformat.cpp:1065