Tag Parser
12.5.3
C++ library for reading and writing MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags
Toggle main menu visibility
Loading...
Searching...
No Matches
signature.cpp
Go to the documentation of this file.
1
#include "
./signature.h
"
2
#include "
./matroska/matroskatagid.h
"
3
4
#include <c++utilities/conversion/binaryconversion.h>
5
6
#include <cstdint>
7
8
using namespace
CppUtilities
;
9
10
namespace
TagParser
{
11
15
enum
Sig64
: std::uint64_t {
16
ApeTag
= 0x4150455441474558ul,
// APETAGEX
17
Ar
= 0x213C617263683E0A,
18
Asf1
= 0x3026B2758E66CF11ul,
19
Asf2
= 0xA6D900AA0062CE6Cul,
20
Png
= 0x89504E470D0A1A0Aul,
21
RiffAvi
= 0x415649204C495354ul,
22
YUV4Mpeg2
= 0x595556344D504547ul,
23
};
24
28
enum
Sig56
: std::uint64_t {
29
Rar
= 0x526172211A0700ul,
30
};
31
35
enum
Sig48
: std::uint64_t {
36
Gif87a
= 0x474946383761ul,
37
Gif89a
= 0x474946383961ul,
38
SevenZ
= 0x377ABCAF271Cul,
39
Xz
= 0xFD377A585A00ul,
40
};
41
45
enum
Sig40
: std::uint64_t {
46
Aiff
= 0x464F524D00ul,
47
};
48
52
enum
Sig32
: std::uint32_t {
53
Dirac
= 0x42424344u,
54
Elf
= 0x7F454C46u,
55
Flac
= 0x664C6143u,
56
Ivf
= 0x444B4946u,
57
JavaClassFile
= 0xCAFEBABEu,
58
Ebml
= 0x1A45DFA3u,
59
Midi
= 0x4D546864u,
60
MonkeysAudio
= 0x4D414320u,
61
Mp4
= 0x66747970u,
62
Ogg
= 0x4F676753u,
63
PhotoshopDocument
= 0x38425053u,
64
QuickTime
= 0x6D6F6F76u,
65
Riff
= 0x52494646u,
66
RiffWave
= 0x57415645u,
67
TiffBigEndian
= 0x4D4D002Au,
68
TiffLittleEndian
= 0x49492A00u,
69
Utf32Text
= 0xFFFE0000u,
70
WavPack
= 0x7776706Bu,
71
WindowsIcon
= 0x00000100u,
72
Lzip
= 0x4C5A4950u,
73
Zip1
= 0x504B0304u,
74
Zip2
= 0x504B0506u,
75
Zip3
= 0x504B0708u,
76
Zstd
= 0x28b52ffdu,
77
};
78
82
enum
Sig24
: std::uint32_t {
83
Bzip2
= 0x425A68u,
84
Flv
= 0x464C56u,
85
Gzip
= 0x1F8B08u,
86
Id3v2
= 0x494433u,
87
Utf8Text
= 0xEFBBBFu,
88
};
89
93
enum
Sig16
: std::uint16_t {
94
Ac3
= 0x0B77u,
95
Adts
= 0xFFF0u,
96
AdtsMask
= 0xFFF6u,
97
Jpeg
= 0xffd8u,
98
Lha
= 0x1FA0u,
99
Lzw
= 0x1F9Du,
100
MpegAudioFrames
= 0x7FFu,
101
PortableExecutable
= 0x4D5Au,
102
Utf16Text
= 0xFFFEu,
103
WindowsBitmap
= 0x424du,
104
};
105
113
ContainerFormat
parseSignature
(std::string_view buffer)
114
{
115
// read signature
116
std::uint64_t sig = 0;
117
if
(buffer.size() >= 8) {
118
sig = BE::toInt<std::uint64_t>(buffer.data());
119
}
else
if
(buffer.size() >= 4) {
120
sig = BE::toInt<std::uint32_t>(buffer.data());
121
sig <<= 4;
122
}
else
if
(buffer.size() >= 2) {
123
sig = BE::toInt<std::uint16_t>(buffer.data());
124
sig <<= 6;
125
}
else
{
126
return
ContainerFormat::Unknown
;
127
}
128
// return corresponding container format
129
switch
(sig) {
// check 64-bit signatures
130
case
ApeTag
:
131
return
ContainerFormat::ApeTag
;
132
case
Ar
:
133
return
ContainerFormat::Ar
;
134
case
Asf1
:
135
return
ContainerFormat::Asf
;
136
case
Asf2
:
137
return
ContainerFormat::Asf
;
138
case
Png
:
139
return
ContainerFormat::Png
;
140
case
YUV4Mpeg2
:
141
if
(buffer.size() >= 10 && buffer[8] == 0x32 && buffer[9] == 0x20) {
142
return
ContainerFormat::YUV4Mpeg2
;
143
}
144
break
;
145
default
:;
146
}
147
switch
(sig & 0x00000000FFFFFFFF) {
// check 32-bit signatures @ bit 31
148
case
Mp4
:
149
return
ContainerFormat::Mp4
;
150
case
QuickTime
:
151
return
ContainerFormat::QuickTime
;
152
default
:;
153
}
154
switch
(sig >> 8) {
// check 56-bit signatures
155
case
Rar
:
156
return
ContainerFormat::Rar
;
157
default
:;
158
}
159
switch
(sig >> 16) {
// check 48-bit signatures
160
case
Gif87a
:
161
return
ContainerFormat::Gif87a
;
162
case
Gif89a
:
163
return
ContainerFormat::Gif89a
;
164
case
SevenZ
:
165
return
ContainerFormat::SevenZ
;
166
case
Xz
:
167
return
ContainerFormat::Xz
;
168
default
:;
169
}
170
switch
(sig >> 24) {
// check 40-bit signatures
171
case
Aiff
:
172
return
ContainerFormat::Aiff
;
173
default
:;
174
}
175
switch
(sig >> 32) {
// check 32-bit signatures
176
case
Dirac
:
177
return
ContainerFormat::Dirac
;
178
case
Elf
:
179
return
ContainerFormat::Elf
;
180
case
Flac
:
181
return
ContainerFormat::Flac
;
182
case
Ivf
:
183
return
ContainerFormat::Ivf
;
184
case
JavaClassFile
:
185
return
ContainerFormat::JavaClassFile
;
186
case
Ebml
:
187
return
ContainerFormat::Ebml
;
188
case
Midi
:
189
return
ContainerFormat::Midi
;
190
case
MonkeysAudio
:
191
return
ContainerFormat::MonkeysAudio
;
192
case
Ogg
:
193
return
ContainerFormat::Ogg
;
194
case
PhotoshopDocument
:
195
return
ContainerFormat::PhotoshopDocument
;
196
case
Riff
:
197
if
(buffer.size() >= 16 && BE::toInt<std::uint64_t>(buffer.data() + 8) ==
Sig64::RiffAvi
) {
198
return
ContainerFormat::RiffAvi
;
199
}
else
if
(buffer.size() >= 12 && BE::toInt<std::uint32_t>(buffer.data() + 8) ==
RiffWave
) {
200
return
ContainerFormat::RiffWave
;
201
}
else
{
202
return
ContainerFormat::Riff
;
203
}
204
case
TiffBigEndian
:
205
return
ContainerFormat::TiffBigEndian
;
206
case
TiffLittleEndian
:
207
return
ContainerFormat::TiffLittleEndian
;
208
case
Utf32Text
:
209
return
ContainerFormat::Utf32Text
;
210
case
WavPack
:
211
return
ContainerFormat::WavPack
;
212
case
WindowsIcon
:
213
return
ContainerFormat::WindowsIcon
;
214
case
Lzip
:
215
return
ContainerFormat::Lzip
;
216
case
Zip1
:
217
case
Zip2
:
218
case
Zip3
:
219
return
ContainerFormat::Zip
;
220
case
Zstd
:
221
return
ContainerFormat::Zstd
;
222
default
:;
223
}
224
switch
(sig >> 40) {
// check 24-bit signatures
225
case
Bzip2
:
226
return
ContainerFormat::Bzip2
;
227
case
Flv
:
228
return
ContainerFormat::FlashVideo
;
229
case
Gzip
:
230
return
ContainerFormat::Gzip
;
231
case
Id3v2
:
232
return
ContainerFormat::Id3v2Tag
;
233
case
Utf8Text
:
234
return
ContainerFormat::Utf8Text
;
235
}
236
switch
(sig >> 48) {
// check 16-bit signatures
237
case
Ac3
:
238
return
ContainerFormat::Ac3Frames
;
239
case
Jpeg
:
240
return
ContainerFormat::Jpeg
;
241
case
Lha
:
242
return
ContainerFormat::Lha
;
243
case
Lzw
:
244
return
ContainerFormat::Lzw
;
245
case
PortableExecutable
:
246
return
ContainerFormat::PortableExecutable
;
247
case
Utf16Text
:
248
return
ContainerFormat::Utf16Text
;
249
case
WindowsBitmap
:
250
return
ContainerFormat::WindowsBitmap
;
251
default
:;
252
}
253
// check other signatures
254
if
(((sig >> 48) &
AdtsMask
) ==
Adts
) {
255
return
ContainerFormat::Adts
;
256
}
257
if
((sig >> 53) ==
MpegAudioFrames
) {
258
return
ContainerFormat::MpegAudioFrames
;
259
}
260
return
ContainerFormat::Unknown
;
261
}
262
268
std::string_view
containerFormatAbbreviation
(
ContainerFormat
containerFormat,
MediaType
mediaType,
unsigned
int
version)
269
{
270
switch
(containerFormat) {
271
case
ContainerFormat::Ac3Frames
:
272
return
"ac3"
;
273
case
ContainerFormat::Ar
:
274
return
"a"
;
275
case
ContainerFormat::Asf
:
276
return
"asf"
;
277
case
ContainerFormat::Dirac
:
278
return
"drc"
;
279
case
ContainerFormat::Elf
:
280
return
"elf"
;
281
case
ContainerFormat::Flac
:
282
return
"flac"
;
283
case
ContainerFormat::FlashVideo
:
284
return
"flv"
;
285
case
ContainerFormat::Gif87a
:
286
case
ContainerFormat::Gif89a
:
287
return
"gif"
;
288
case
ContainerFormat::Ivf
:
289
return
"ivf"
;
290
case
ContainerFormat::JavaClassFile
:
291
return
"class"
;
292
case
ContainerFormat::Jpeg
:
293
return
"jpeg"
;
294
case
ContainerFormat::Lha
:
295
return
"lzh"
;
296
case
ContainerFormat::Lzw
:
297
return
"lzw"
;
298
case
ContainerFormat::Mp4
:
299
switch
(mediaType) {
300
case
MediaType::Audio
:
301
return
"m4a"
;
302
default
:
303
return
"mp4"
;
304
}
305
case
ContainerFormat::Ogg
:
306
switch
(mediaType) {
307
case
MediaType::Video
:
308
return
"ogv"
;
309
default
:
310
switch
(version) {
311
case
static_cast<
unsigned
int
>
(
GeneralMediaFormat::Opus
):
312
return
"opus"
;
313
case
static_cast<
unsigned
int
>
(
GeneralMediaFormat::Speex
):
314
return
"spx"
;
315
default
:
316
return
"ogg"
;
317
}
318
}
319
case
ContainerFormat::PhotoshopDocument
:
320
return
"psd"
;
321
case
ContainerFormat::Png
:
322
return
"png"
;
323
case
ContainerFormat::PortableExecutable
:
324
return
"exe"
;
325
case
ContainerFormat::Rar
:
326
return
"rar"
;
327
case
ContainerFormat::Matroska
:
328
switch
(mediaType) {
329
case
MediaType::Audio
:
330
return
"mka"
;
331
default
:
332
return
"mkv"
;
333
}
334
case
ContainerFormat::MpegAudioFrames
:
335
switch
(version) {
336
case
1:
337
return
"mp1"
;
338
case
2:
339
return
"mp2"
;
340
default
:
341
return
"mp3"
;
342
}
343
case
ContainerFormat::Riff
:
344
return
"riff"
;
345
case
ContainerFormat::RiffWave
:
346
return
"wav"
;
347
case
ContainerFormat::RiffAvi
:
348
return
"avi"
;
349
case
ContainerFormat::Tar
:
350
return
"tar"
;
351
case
ContainerFormat::TiffBigEndian
:
352
case
ContainerFormat::TiffLittleEndian
:
353
return
"tiff"
;
354
case
ContainerFormat::WindowsBitmap
:
355
return
"bmp"
;
356
case
ContainerFormat::WindowsIcon
:
357
return
"ico"
;
358
case
ContainerFormat::Bzip2
:
359
return
"bz"
;
360
case
ContainerFormat::Gzip
:
361
return
"gz"
;
362
case
ContainerFormat::Lzip
:
363
return
"lz"
;
364
case
ContainerFormat::QuickTime
:
365
return
"mov"
;
366
case
ContainerFormat::Zip
:
367
return
"zip"
;
368
case
ContainerFormat::SevenZ
:
369
return
"7z"
;
370
case
ContainerFormat::Xz
:
371
return
"xz"
;
372
case
ContainerFormat::YUV4Mpeg2
:
373
return
"y4m"
;
374
case
ContainerFormat::WavPack
:
375
return
"wv"
;
376
case
ContainerFormat::MonkeysAudio
:
377
return
"ape"
;
378
case
ContainerFormat::Midi
:
379
return
"mid"
;
380
case
ContainerFormat::Aiff
:
381
return
"aiff"
;
382
case
ContainerFormat::Zstd
:
383
return
"zst"
;
384
default
:
385
return
""
;
386
}
387
}
388
393
std::string_view
containerFormatName
(
ContainerFormat
containerFormat)
394
{
395
switch
(containerFormat) {
396
case
ContainerFormat::Ac3Frames
:
397
return
"raw Dolby Digital"
;
398
case
ContainerFormat::Adts
:
399
return
"Audio Data Transport Stream"
;
400
case
ContainerFormat::Ar
:
401
return
"Archive (GNU ar)"
;
402
case
ContainerFormat::Asf
:
403
return
"Advanced Systems Format"
;
404
case
ContainerFormat::Dirac
:
405
return
"raw Dirac"
;
406
case
ContainerFormat::Elf
:
407
return
"Executable and Linkable Format"
;
408
case
ContainerFormat::Flac
:
409
return
"raw Free Lossless Audio Codec frames"
;
410
case
ContainerFormat::FlashVideo
:
411
return
"Flash Video"
;
412
case
ContainerFormat::Gif87a
:
413
case
ContainerFormat::Gif89a
:
414
return
"Graphics Interchange Format"
;
415
case
ContainerFormat::Ivf
:
416
return
"IVF"
;
417
case
ContainerFormat::JavaClassFile
:
418
return
"Java class file"
;
419
case
ContainerFormat::Jpeg
:
420
return
"JPEG File Interchange Format"
;
421
case
ContainerFormat::Lha
:
422
return
"LHA compressed file"
;
423
case
ContainerFormat::Lzw
:
424
return
"LZW compressed file"
;
425
case
ContainerFormat::Mp4
:
426
return
"MPEG-4 Part 14"
;
427
case
ContainerFormat::Ogg
:
428
return
"Ogg transport bitstream"
;
429
case
ContainerFormat::PhotoshopDocument
:
430
return
"Photoshop document"
;
431
case
ContainerFormat::Png
:
432
return
"Portable Network Graphics"
;
433
case
ContainerFormat::PortableExecutable
:
434
return
"Portable Executable"
;
435
case
ContainerFormat::Rar
:
436
return
"RAR Archive"
;
437
case
ContainerFormat::Ebml
:
438
return
"EBML"
;
439
case
ContainerFormat::Matroska
:
440
return
"Matroska"
;
441
case
ContainerFormat::Webm
:
442
return
"WebM"
;
443
case
ContainerFormat::MpegAudioFrames
:
444
return
"MPEG-1 Layer 1/2/3 frames"
;
445
case
ContainerFormat::Riff
:
446
return
"Resource Interchange File Format"
;
447
case
ContainerFormat::RiffWave
:
448
return
"RIFF/WAVE"
;
449
case
ContainerFormat::RiffAvi
:
450
return
"RIFF/Audio Video Interleave"
;
451
case
ContainerFormat::Tar
:
452
return
"TAR archive"
;
453
case
ContainerFormat::TiffBigEndian
:
454
case
ContainerFormat::TiffLittleEndian
:
455
return
"Tagged Image File Format"
;
456
case
ContainerFormat::Utf16Text
:
457
return
"UTF-16 text"
;
458
case
ContainerFormat::Utf32Text
:
459
return
"UTF-32 text"
;
460
case
ContainerFormat::Utf8Text
:
461
return
"UTF-8 text"
;
462
case
ContainerFormat::WavPack
:
463
return
"WavPack"
;
464
case
ContainerFormat::WindowsBitmap
:
465
return
"Microsoft Windows Bitmap"
;
466
case
ContainerFormat::WindowsIcon
:
467
return
"Microsoft Windows Icon"
;
468
case
ContainerFormat::Bzip2
:
469
return
"bzip2 compressed file"
;
470
case
ContainerFormat::Gzip
:
471
return
"gzip compressed file"
;
472
case
ContainerFormat::Lzip
:
473
return
"lzip compressed file"
;
474
case
ContainerFormat::SevenZ
:
475
return
"7z archive"
;
476
case
ContainerFormat::QuickTime
:
477
return
"Quick Time"
;
478
case
ContainerFormat::Xz
:
479
return
"xz compressed file"
;
480
case
ContainerFormat::YUV4Mpeg2
:
481
return
"YUV4MPEG2"
;
482
case
ContainerFormat::Zip
:
483
return
"ZIP archive"
;
484
case
ContainerFormat::MonkeysAudio
:
485
return
"Monkey's Audio"
;
486
case
ContainerFormat::Midi
:
487
return
"MIDI"
;
488
case
ContainerFormat::Aiff
:
489
return
"Audio Interchange File Format"
;
490
case
ContainerFormat::Zstd
:
491
return
"Zstandard compressed file"
;
492
case
ContainerFormat::Id3v2Tag
:
493
return
"ID3v2 tag"
;
494
case
ContainerFormat::ApeTag
:
495
return
"APE tag"
;
496
default
:
497
return
"unknown"
;
498
}
499
}
500
505
std::string_view
containerFormatSubversion
(
ContainerFormat
containerFormat)
506
{
507
switch
(containerFormat) {
508
case
ContainerFormat::Gif87a
:
509
return
"87a"
;
510
case
ContainerFormat::Gif89a
:
511
return
"89a"
;
512
case
ContainerFormat::TiffBigEndian
:
513
return
"big endian"
;
514
case
ContainerFormat::TiffLittleEndian
:
515
return
"little endian"
;
516
default
:
517
return
""
;
518
}
519
}
520
525
std::string_view
containerMimeType
(
ContainerFormat
containerFormat,
MediaType
mediaType)
526
{
527
switch
(containerFormat) {
528
case
ContainerFormat::Ac3Frames
:
529
return
"audio/ac3"
;
530
case
ContainerFormat::Asf
:
531
return
"video/x-ms-asf"
;
532
case
ContainerFormat::Flac
:
533
return
"audio/flac"
;
534
case
ContainerFormat::FlashVideo
:
535
return
"video/x-flv"
;
536
case
ContainerFormat::Gif87a
:
537
case
ContainerFormat::Gif89a
:
538
return
"image/gif"
;
539
case
ContainerFormat::Jpeg
:
540
return
"image/jpeg"
;
541
case
ContainerFormat::Png
:
542
return
"image/png"
;
543
case
ContainerFormat::MpegAudioFrames
:
544
return
"audio/mpeg"
;
545
case
ContainerFormat::Mp4
:
546
switch
(mediaType) {
547
case
MediaType::Audio
:
548
return
"audio/mp4"
;
549
default
:
550
return
"video/mp4"
;
551
}
552
case
ContainerFormat::Ogg
:
553
switch
(mediaType) {
554
case
MediaType::Audio
:
555
return
"audio/ogg"
;
556
default
:
557
return
"video/ogg"
;
558
}
559
case
ContainerFormat::Matroska
:
560
switch
(mediaType) {
561
case
MediaType::Audio
:
562
return
"audio/x-matroska"
;
563
default
:
564
return
"video/x-matroska"
;
565
}
566
case
ContainerFormat::Midi
:
567
return
"audio/midi"
;
568
case
ContainerFormat::Bzip2
:
569
return
"application/x-bzip"
;
570
case
ContainerFormat::Gzip
:
571
return
"application/gzip"
;
572
case
ContainerFormat::Lha
:
573
return
"application/x-lzh-compressed"
;
574
case
ContainerFormat::Rar
:
575
return
"application/x-rar-compressed"
;
576
case
ContainerFormat::Lzip
:
577
return
"application/x-lzip"
;
578
case
ContainerFormat::QuickTime
:
579
return
"video/quicktime"
;
580
case
ContainerFormat::Zip
:
581
return
"application/zip"
;
582
case
ContainerFormat::SevenZ
:
583
return
"application/x-7z-compressed"
;
584
case
ContainerFormat::Xz
:
585
return
"application/x-xz"
;
586
case
ContainerFormat::WindowsBitmap
:
587
return
"image/bmp"
;
588
case
ContainerFormat::WindowsIcon
:
589
return
"image/vnd.microsoft.icon"
;
590
case
ContainerFormat::Zstd
:
591
return
"application/zstd"
;
592
default
:
593
return
""
;
594
}
595
}
596
600
TagTargetLevel
containerTargetLevel
(
ContainerFormat
containerFormat, std::uint64_t targetLevelValue)
601
{
602
switch
(containerFormat) {
603
case
ContainerFormat::Matroska
:
604
case
ContainerFormat::Webm
:
605
return
matroskaTagTargetLevel
(targetLevelValue);
606
default
:
607
return
TagTargetLevel::Unspecified
;
608
}
609
}
610
614
std::uint64_t
containerTargetLevelValue
(
ContainerFormat
containerFormat,
TagTargetLevel
targetLevel)
615
{
616
switch
(containerFormat) {
617
case
ContainerFormat::Matroska
:
618
case
ContainerFormat::Webm
:
619
return
matroskaTagTargetLevelValue
(targetLevel);
620
default
:
621
return
0;
622
}
623
}
624
625
}
// namespace TagParser
matroskatagid.h
CppUtilities
Definition
abstractcontainer.h:16
TagParser
Contains all classes and functions of the TagInfo library.
Definition
aaccodebook.h:10
TagParser::containerFormatSubversion
TAG_PARSER_EXPORT std::string_view containerFormatSubversion(ContainerFormat containerFormat)
Returns the subversion of the container format.
Definition
signature.cpp:505
TagParser::Sig16
Sig16
Holds 16-bit signatures.
Definition
signature.cpp:93
TagParser::Lzw
@ Lzw
Definition
signature.cpp:99
TagParser::Adts
@ Adts
Definition
signature.cpp:95
TagParser::AdtsMask
@ AdtsMask
Definition
signature.cpp:96
TagParser::Utf16Text
@ Utf16Text
Definition
signature.cpp:102
TagParser::PortableExecutable
@ PortableExecutable
Definition
signature.cpp:101
TagParser::Ac3
@ Ac3
Definition
signature.cpp:94
TagParser::MpegAudioFrames
@ MpegAudioFrames
Definition
signature.cpp:100
TagParser::WindowsBitmap
@ WindowsBitmap
Definition
signature.cpp:103
TagParser::Lha
@ Lha
Definition
signature.cpp:98
TagParser::Jpeg
@ Jpeg
Definition
signature.cpp:97
TagParser::TagTargetLevel
TagTargetLevel
The TagTargetLevel enum specifies tag target levels.
Definition
tagtarget.h:16
TagParser::TagTargetLevel::Unspecified
@ Unspecified
Definition
tagtarget.h:16
TagParser::containerFormatAbbreviation
TAG_PARSER_EXPORT std::string_view containerFormatAbbreviation(ContainerFormat containerFormat, MediaType mediaType=MediaType::Unknown, unsigned int version=0)
Returns the abbreviation of the container format considering the specified media type and version.
Definition
signature.cpp:268
TagParser::Sig24
Sig24
Holds 24-bit signatures.
Definition
signature.cpp:82
TagParser::Flv
@ Flv
Definition
signature.cpp:84
TagParser::Bzip2
@ Bzip2
Definition
signature.cpp:83
TagParser::Utf8Text
@ Utf8Text
Definition
signature.cpp:87
TagParser::Id3v2
@ Id3v2
Definition
signature.cpp:86
TagParser::Gzip
@ Gzip
Definition
signature.cpp:85
TagParser::Sig48
Sig48
Holds 48-bit signatures.
Definition
signature.cpp:35
TagParser::SevenZ
@ SevenZ
Definition
signature.cpp:38
TagParser::Xz
@ Xz
Definition
signature.cpp:39
TagParser::Gif87a
@ Gif87a
Definition
signature.cpp:36
TagParser::Gif89a
@ Gif89a
Definition
signature.cpp:37
TagParser::matroskaTagTargetLevelValue
constexpr TAG_PARSER_EXPORT std::uint64_t matroskaTagTargetLevelValue(TagTargetLevel targetLevel)
Returns the Matroska specific target level value for the specified general targetLevel.
Definition
matroskatagid.h:532
TagParser::containerFormatName
TAG_PARSER_EXPORT std::string_view containerFormatName(ContainerFormat containerFormat)
Returns the name of the specified container format.
Definition
signature.cpp:393
TagParser::parseSignature
TAG_PARSER_EXPORT ContainerFormat parseSignature(const char *buffer, std::size_t bufferSize)
Definition
signature.h:83
TagParser::containerMimeType
TAG_PARSER_EXPORT std::string_view containerMimeType(ContainerFormat containerFormat, MediaType mediaType=MediaType::Unknown)
Returns the MIME-type of the container format.
Definition
signature.cpp:525
TagParser::matroskaTagTargetLevel
constexpr TAG_PARSER_EXPORT TagTargetLevel matroskaTagTargetLevel(std::uint64_t targetLevelValue)
Returns the general TagTargetLevel for the Matroska specific targetLevelValue.
Definition
matroskatagid.h:524
TagParser::Sig56
Sig56
Holds 52-bit signatures.
Definition
signature.cpp:28
TagParser::Rar
@ Rar
Definition
signature.cpp:29
TagParser::containerTargetLevel
TAG_PARSER_EXPORT TagTargetLevel containerTargetLevel(ContainerFormat containerFormat, std::uint64_t targetLevelValue)
Returns the general TagTargetLevel for the specified container format and raw targetLevelValue.
Definition
signature.cpp:600
TagParser::Sig32
Sig32
Holds 32-bit signatures.
Definition
signature.cpp:52
TagParser::Midi
@ Midi
Definition
signature.cpp:59
TagParser::Ogg
@ Ogg
Definition
signature.cpp:62
TagParser::Zip1
@ Zip1
Definition
signature.cpp:73
TagParser::Zip3
@ Zip3
Definition
signature.cpp:75
TagParser::QuickTime
@ QuickTime
Definition
signature.cpp:64
TagParser::Zip2
@ Zip2
Definition
signature.cpp:74
TagParser::TiffBigEndian
@ TiffBigEndian
Definition
signature.cpp:67
TagParser::Elf
@ Elf
Definition
signature.cpp:54
TagParser::PhotoshopDocument
@ PhotoshopDocument
Definition
signature.cpp:63
TagParser::Zstd
@ Zstd
Definition
signature.cpp:76
TagParser::Riff
@ Riff
Definition
signature.cpp:65
TagParser::Ebml
@ Ebml
Definition
signature.cpp:58
TagParser::Dirac
@ Dirac
Definition
signature.cpp:53
TagParser::Ivf
@ Ivf
Definition
signature.cpp:56
TagParser::WavPack
@ WavPack
Definition
signature.cpp:70
TagParser::Flac
@ Flac
Definition
signature.cpp:55
TagParser::TiffLittleEndian
@ TiffLittleEndian
Definition
signature.cpp:68
TagParser::MonkeysAudio
@ MonkeysAudio
Definition
signature.cpp:60
TagParser::JavaClassFile
@ JavaClassFile
Definition
signature.cpp:57
TagParser::RiffWave
@ RiffWave
Definition
signature.cpp:66
TagParser::Utf32Text
@ Utf32Text
Definition
signature.cpp:69
TagParser::Lzip
@ Lzip
Definition
signature.cpp:72
TagParser::WindowsIcon
@ WindowsIcon
Definition
signature.cpp:71
TagParser::Mp4
@ Mp4
Definition
signature.cpp:61
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::Audio
@ Audio
Definition
mediaformat.h:16
TagParser::Sig64
Sig64
Holds 64-bit signatures.
Definition
signature.cpp:15
TagParser::YUV4Mpeg2
@ YUV4Mpeg2
Definition
signature.cpp:22
TagParser::Ar
@ Ar
Definition
signature.cpp:17
TagParser::Asf2
@ Asf2
Definition
signature.cpp:19
TagParser::ApeTag
@ ApeTag
Definition
signature.cpp:16
TagParser::Png
@ Png
Definition
signature.cpp:20
TagParser::RiffAvi
@ RiffAvi
Definition
signature.cpp:21
TagParser::Asf1
@ Asf1
Definition
signature.cpp:18
TagParser::containerTargetLevelValue
TAG_PARSER_EXPORT std::uint64_t containerTargetLevelValue(ContainerFormat containerFormat, TagTargetLevel targetLevel)
Returns the raw target level value for the specified containerFormat and general targetLevel.
Definition
signature.cpp:614
TagParser::GeneralMediaFormat::Speex
@ Speex
Definition
mediaformat.h:83
TagParser::GeneralMediaFormat::Opus
@ Opus
Definition
mediaformat.h:72
TagParser::ContainerFormat
ContainerFormat
Specifies the container format.
Definition
signature.h:18
TagParser::ContainerFormat::Xz
@ Xz
Definition
signature.h:65
TagParser::ContainerFormat::Zstd
@ Zstd
Definition
signature.h:69
TagParser::ContainerFormat::FlashVideo
@ FlashVideo
Definition
signature.h:29
TagParser::ContainerFormat::TiffLittleEndian
@ TiffLittleEndian
Definition
signature.h:57
TagParser::ContainerFormat::Utf32Text
@ Utf32Text
Definition
signature.h:59
TagParser::ContainerFormat::Ebml
@ Ebml
Definition
signature.h:26
TagParser::ContainerFormat::Gzip
@ Gzip
Definition
signature.h:32
TagParser::ContainerFormat::ApeTag
@ ApeTag
Definition
signature.h:70
TagParser::ContainerFormat::Webm
@ Webm
Definition
signature.h:62
TagParser::ContainerFormat::Lha
@ Lha
Definition
signature.h:37
TagParser::ContainerFormat::Ivf
@ Ivf
Definition
signature.h:34
TagParser::ContainerFormat::Lzip
@ Lzip
Definition
signature.h:38
TagParser::ContainerFormat::Midi
@ Midi
Definition
signature.h:41
TagParser::ContainerFormat::TiffBigEndian
@ TiffBigEndian
Definition
signature.h:56
TagParser::ContainerFormat::MonkeysAudio
@ MonkeysAudio
Definition
signature.h:42
TagParser::ContainerFormat::Jpeg
@ Jpeg
Definition
signature.h:36
TagParser::ContainerFormat::Flac
@ Flac
Definition
signature.h:28
TagParser::ContainerFormat::Elf
@ Elf
Definition
signature.h:27
TagParser::ContainerFormat::Utf16Text
@ Utf16Text
Definition
signature.h:58
TagParser::ContainerFormat::PortableExecutable
@ PortableExecutable
Definition
signature.h:48
TagParser::ContainerFormat::Asf
@ Asf
Definition
signature.h:23
TagParser::ContainerFormat::Riff
@ Riff
Definition
signature.h:51
TagParser::ContainerFormat::Ogg
@ Ogg
Definition
signature.h:45
TagParser::ContainerFormat::Mp4
@ Mp4
Definition
signature.h:43
TagParser::ContainerFormat::RiffWave
@ RiffWave
Definition
signature.h:53
TagParser::ContainerFormat::Rar
@ Rar
Definition
signature.h:50
TagParser::ContainerFormat::Ar
@ Ar
Definition
signature.h:22
TagParser::ContainerFormat::RiffAvi
@ RiffAvi
Definition
signature.h:52
TagParser::ContainerFormat::Unknown
@ Unknown
Definition
signature.h:19
TagParser::ContainerFormat::Matroska
@ Matroska
Definition
signature.h:40
TagParser::ContainerFormat::Utf8Text
@ Utf8Text
Definition
signature.h:60
TagParser::ContainerFormat::Zip
@ Zip
Definition
signature.h:67
TagParser::ContainerFormat::WavPack
@ WavPack
Definition
signature.h:61
TagParser::ContainerFormat::Bzip2
@ Bzip2
Definition
signature.h:24
TagParser::ContainerFormat::Dirac
@ Dirac
Definition
signature.h:25
TagParser::ContainerFormat::Lzw
@ Lzw
Definition
signature.h:39
TagParser::ContainerFormat::WindowsIcon
@ WindowsIcon
Definition
signature.h:64
TagParser::ContainerFormat::Ac3Frames
@ Ac3Frames
Definition
signature.h:20
TagParser::ContainerFormat::WindowsBitmap
@ WindowsBitmap
Definition
signature.h:63
TagParser::ContainerFormat::Aiff
@ Aiff
Definition
signature.h:68
TagParser::ContainerFormat::JavaClassFile
@ JavaClassFile
Definition
signature.h:35
TagParser::ContainerFormat::Gif89a
@ Gif89a
Definition
signature.h:31
TagParser::ContainerFormat::MpegAudioFrames
@ MpegAudioFrames
Definition
signature.h:44
TagParser::ContainerFormat::PhotoshopDocument
@ PhotoshopDocument
Definition
signature.h:46
TagParser::ContainerFormat::Id3v2Tag
@ Id3v2Tag
Definition
signature.h:33
TagParser::ContainerFormat::Adts
@ Adts
Definition
signature.h:21
TagParser::ContainerFormat::SevenZ
@ SevenZ
Definition
signature.h:54
TagParser::ContainerFormat::QuickTime
@ QuickTime
Definition
signature.h:49
TagParser::ContainerFormat::Tar
@ Tar
Definition
signature.h:55
TagParser::ContainerFormat::YUV4Mpeg2
@ YUV4Mpeg2
Definition
signature.h:66
TagParser::ContainerFormat::Png
@ Png
Definition
signature.h:47
TagParser::ContainerFormat::Gif87a
@ Gif87a
Definition
signature.h:30
TagParser::Sig40
Sig40
Holds 40-bit signatures.
Definition
signature.cpp:45
TagParser::Aiff
@ Aiff
Definition
signature.cpp:46
signature.h
Generated on
for Tag Parser by
1.18.0