Support detecting AIFF format
This commit is contained in:
parent
49c6b61e0c
commit
bfe6ce8c1e
|
@ -38,6 +38,13 @@ enum Sig48 : std::uint64_t {
|
|||
Xz = 0xFD377A585A00ul,
|
||||
};
|
||||
|
||||
/*!
|
||||
* \brief Holds 40-bit signatures.
|
||||
*/
|
||||
enum Sig40 : std::uint64_t {
|
||||
Aiff = 0x464F524D00ul,
|
||||
};
|
||||
|
||||
/*!
|
||||
* \brief Holds 32-bit signatures.
|
||||
*/
|
||||
|
@ -156,6 +163,11 @@ ContainerFormat parseSignature(std::string_view buffer)
|
|||
return ContainerFormat::Xz;
|
||||
default:;
|
||||
}
|
||||
switch (sig >> 24) { // check 40-bit signatures
|
||||
case Aiff:
|
||||
return ContainerFormat::Aiff;
|
||||
default:;
|
||||
}
|
||||
switch (sig >> 32) { // check 32-bit signatures
|
||||
case Dirac:
|
||||
return ContainerFormat::Dirac;
|
||||
|
@ -360,6 +372,8 @@ std::string_view containerFormatAbbreviation(ContainerFormat containerFormat, Me
|
|||
return "ape";
|
||||
case ContainerFormat::Midi:
|
||||
return "mid";
|
||||
case ContainerFormat::Aiff:
|
||||
return "aiff";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
|
@ -465,6 +479,8 @@ std::string_view containerFormatName(ContainerFormat containerFormat)
|
|||
return "Monkey's Audio";
|
||||
case ContainerFormat::Midi:
|
||||
return "MIDI";
|
||||
case ContainerFormat::Aiff:
|
||||
return "Audio Interchange File Format";
|
||||
default:
|
||||
return "unknown";
|
||||
}
|
||||
|
|
|
@ -65,6 +65,7 @@ enum class ContainerFormat : unsigned int {
|
|||
Xz, /**< xz compressed file */
|
||||
YUV4Mpeg2, /**< YUV4MPEG2 */
|
||||
Zip, /**< ZIP archive */
|
||||
Aiff, /**< Audio Interchange File Format */
|
||||
};
|
||||
|
||||
TAG_PARSER_EXPORT ContainerFormat parseSignature(const char *buffer, std::size_t bufferSize);
|
||||
|
|
Loading…
Reference in New Issue