1#ifndef FILETYPE_TYPES_VIDEO_TYPES_HPP
2#define FILETYPE_TYPES_VIDEO_TYPES_HPP
6#include "filetype/type.hpp"
11using Type = ::filetype::Type;
20inline const std::array<uint8_t, 8> MP4_MAGIC = {0x00, 0x00, 0x00, 0x18, 0x66, 0x74, 0x79, 0x70};
21inline const Type TYPE_MP4{
"video/mp4",
"mp4"};
25inline const std::array<uint8_t, 12> AVI_MAGIC = {
26 0x52, 0x49, 0x46, 0x46, 0x00, 0x00, 0x00, 0x00, 0x41, 0x56, 0x49, 0x20};
27inline const Type TYPE_AVI{
"video/x-msvideo",
"avi"};
31inline const std::array<uint8_t, 4> MKV_MAGIC = {0x1A, 0x45, 0xDF, 0xA3};
32inline const Type TYPE_MKV{
"video/x-matroska",
"mkv"};
36inline const std::array<uint8_t, 4> WEBM_MAGIC = {0x1A, 0x45, 0xDF, 0xA3};
37inline const Type TYPE_WEBM{
"video/webm",
"webm"};
41inline const std::array<uint8_t, 12> MOV_MAGIC = {
42 0x00, 0x00, 0x00, 0x14, 0x66, 0x74, 0x79, 0x70, 0x71, 0x74, 0x20, 0x20};
43inline const Type TYPE_MOV{
"video/quicktime",
"mov"};
47inline const std::array<uint8_t, 4> FLV_MAGIC = {0x46, 0x4C, 0x56, 0x01};
48inline const Type TYPE_FLV{
"video/x-flv",
"flv"};
52inline const std::array<uint8_t, 8> WMV_MAGIC = {0x30, 0x26, 0xB2, 0x75, 0x8E, 0x66, 0xCF, 0x11};
53inline const Type TYPE_WMV{
"video/x-ms-wmv",
"wmv"};
57inline const std::array<uint8_t, 4> MPEG_MAGIC = {0x00, 0x00, 0x01, 0xBA};
58inline const std::array<uint8_t, 4> MPEG_MAGIC_ALT = {0x00, 0x00, 0x01, 0xB3};
59inline const Type TYPE_MPEG{
"video/mpeg",
"mpg"};
63inline const std::array<uint8_t, 11> THREEGP_MAGIC = {
64 0x00, 0x00, 0x00, 0x14, 0x66, 0x74, 0x79, 0x70, 0x33, 0x67, 0x70};
65inline const Type TYPE_3GP{
"video/3gpp",
"3gp"};