diff options
Diffstat (limited to 'src/FileAnalyzer.cpp')
-rw-r--r-- | src/FileAnalyzer.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/FileAnalyzer.cpp b/src/FileAnalyzer.cpp index 61eff7b..9efdc52 100644 --- a/src/FileAnalyzer.cpp +++ b/src/FileAnalyzer.cpp @@ -21,7 +21,7 @@ namespace QuickMedia { // https://mimesniff.spec.whatwg.org/ // TODO: Test all of these - static const std::array<MagicNumber, 33> magic_numbers = { + static const std::array<MagicNumber, 34> magic_numbers = { MagicNumber{ {'R', 'I', 'F', 'F', -1, -1, -1, -1, 'A', 'V', 'I', ' '}, 12, ContentType::VIDEO_AVI }, MagicNumber{ {0x00, 0x00, 0x00, -1, 'f', 't', 'y', 'p', 'i', 's', 'o', 'm'}, 12, ContentType::VIDEO_MP4 }, MagicNumber{ {0x00, 0x00, 0x00, -1, 'f', 't', 'y', 'p', 'i', 's', 'o', '5'}, 12, ContentType::VIDEO_MP4 }, @@ -32,6 +32,7 @@ namespace QuickMedia { MagicNumber{ {0x00, 0x00, 0x00, -1, 'f', 't', 'y', 'm', 'p', '4', '2'}, 11, ContentType::VIDEO_MP4 }, MagicNumber{ {0x00, 0x00, 0x00, -1, 'f', 't', 'y', '3', 'g', 'p', '5'}, 11, ContentType::VIDEO_MP4 }, MagicNumber{ {0x00, 0x00, 0x00, -1, 'f', 't', 'y', 'p', 'q', 't'}, 10, ContentType::VIDEO_MP4 }, + MagicNumber{ {0x00, 0x00, 0x00, -1, 'f', 't', 'y', 'p', 'a', 'v', 'i', 'f'}, 12, ContentType::IMAGE_AVIF }, MagicNumber{ {0x00, 0x00, 0x01, 0xBA}, 4, ContentType::VIDEO_MPEG }, MagicNumber{ {0x00, 0x00, 0x01, 0xB3}, 4, ContentType::VIDEO_MPEG }, MagicNumber{ {0x1A, 0x45, 0xDF, 0xA3}, 4, ContentType::VIDEO_WEBM }, @@ -91,6 +92,7 @@ namespace QuickMedia { case ContentType::IMAGE_PNG: return "image/png"; case ContentType::IMAGE_GIF: return "image/gif"; case ContentType::IMAGE_BMP: return "image/bmp"; + case ContentType::IMAGE_AVIF: return "image/avif"; case ContentType::IMAGE_WEBP: return "image/webp"; } return "application/octet-stream"; @@ -101,7 +103,9 @@ namespace QuickMedia { || strcase_equals(ext, ".jpeg") || strcase_equals(ext, ".png") || strcase_equals(ext, ".gif") - || strcase_equals(ext, ".webp"); + || strcase_equals(ext, ".webp") + || strcase_equals(ext, ".bmp") + || strcase_equals(ext, ".avif"); } bool is_video_ext(const char *ext) { |