4 #include <c++utilities/conversion/binaryconversion.h> 15 Ar = 0x213C617263683E0A,
16 Asf1 = 0x3026B2758E66CF11ul,
17 Asf2 = 0xA6D900AA0062CE6Cul,
18 Png = 0x89504E470D0A1A0Aul,
27 Rar = 0x526172211A0700ul,
106 if(bufferSize >= 8) {
107 sig = ConversionUtilities::BE::toUInt64(buffer);
108 }
else if(bufferSize >= 4) {
109 sig = ConversionUtilities::BE::toUInt32(buffer);
111 }
else if(bufferSize >= 2) {
112 sig = ConversionUtilities::BE::toUInt16(buffer);
115 return ContainerFormat::Unknown;
122 return ContainerFormat::Asf;
124 return ContainerFormat::Asf;
130 switch(sig & 0x00000000FFFFFFFF) {
170 if(bufferSize >= 16 && ConversionUtilities::BE::toUInt64(buffer + 8) ==
Sig64::RiffAvi) {
172 }
else if (bufferSize >= 12 && ConversionUtilities::BE::toUInt32(buffer + 8) ==
RiffWave) {
190 return ContainerFormat::Zip;
198 return ContainerFormat::FlashVideo;
202 return ContainerFormat::Id2v2Tag;
208 return ContainerFormat::Ac3Frames;
231 return ContainerFormat::Unknown;
242 switch(containerFormat) {
243 case ContainerFormat::Ac3Frames:
return "ac3";
245 case ContainerFormat::Asf:
return "asf";
249 case ContainerFormat::FlashVideo:
return "flv";
269 case static_cast<unsigned int>(GeneralMediaFormat::Opus):
279 case ContainerFormat::Matroska:
298 case ContainerFormat::Tar:
return "tar";
307 case ContainerFormat::Zip:
return "zip";
320 switch(containerFormat) {
321 case ContainerFormat::Ac3Frames:
322 return "raw Dolby Digital";
324 return "Audio Data Transport Stream";
326 return "Archive (GNU ar)";
327 case ContainerFormat::Asf:
328 return "Advanced Systems Format";
332 return "Executable and Linkable Format";
334 return "raw Free Lossless Audio Codec frames";
335 case ContainerFormat::FlashVideo:
336 return "Flash Video";
339 return "Graphics Interchange Format";
341 return "Java class file";
343 return "JPEG File Interchange Format";
345 return "LHA compressed file";
347 return "LZW compressed file";
349 return "MPEG-4 Part 14";
351 return "Ogg transport bitstream";
353 return "Photoshop document";
355 return "Portable Network Graphics";
357 return "Portable Executable";
359 return "RAR Archive";
362 case ContainerFormat::Matroska:
364 case ContainerFormat::Webm:
367 return "MPEG-1 Layer 1/2/3 frames";
369 return "Resource Interchange File Format";
373 return "RIFF/Audio Video Interleave";
374 case ContainerFormat::Tar:
375 return "TAR archive";
378 return "Tagged Image File Format";
380 return "UTF-16 text";
382 return "UTF-32 text";
386 return "Microsoft Windows Bitmap";
388 return "Microsoft Windows Icon";
390 return "bzip2 compressed file";
392 return "gzip compressed file";
394 return "lzip compressed file";
399 case ContainerFormat::Zip:
400 return "ZIP archive";
413 switch(containerFormat) {
421 return "little endian";
434 switch(containerFormat) {
435 case ContainerFormat::Ac3Frames:
437 case ContainerFormat::Asf:
438 return "video/x-ms-asf";
441 case ContainerFormat::FlashVideo:
442 return "video/x-flv";
466 case ContainerFormat::Matroska:
469 return "audio/x-matroska";
471 return "video/x-matroska";
474 return "application/x-bzip";
476 return "application/gzip";
478 return "application/x-lzh-compressed";
480 return "application/x-rar-compressed";
482 return "application/x-lzip";
484 return "video/quicktime";
485 case ContainerFormat::Zip:
486 return "application/zip";
488 return "application/x-7z-compressed";
492 return "image/vnd.microsoft.icon";
503 switch(containerFormat) {
504 case ContainerFormat::Matroska:
505 case ContainerFormat::Webm:
508 return TagTargetLevel::Unspecified;
517 switch(containerFormat) {
518 case ContainerFormat::Matroska:
519 case ContainerFormat::Webm: