in libheif/api/libheif/heif.cc [400:419]
TriBool is_jpeg(const uint8_t* data, int len)
{
if (len < 12) {
return TriBool::Unknown;
}
if (data[0] == 0xFF && data[1] == 0xD8 && data[2] == 0xFF && data[3] == 0xE0 &&
data[4] == 0x00 && data[5] == 0x10 && data[6] == 0x4A && data[7] == 0x46 &&
data[8] == 0x49 && data[9] == 0x46 && data[10] == 0x00 && data[11] == 0x01) {
return TriBool::Yes;
}
if (data[0] == 0xFF && data[1] == 0xD8 && data[2] == 0xFF && data[3] == 0xE1 &&
data[6] == 0x45 && data[7] == 0x78 && data[8] == 0x69 && data[9] == 0x66 &&
data[10] == 0x00 && data[11] == 0x00) {
return TriBool::Yes;
}
else {
return TriBool::No;
}
}