Détecter si le fichier est MP3

Je suis en train d'écrire une bibliothèque C++ pour le décodage et l'encodage de l'audio entre différents formats/codecs. J'ai une routine pour détecter rapidement la le format avant de charger le codec requis à la bibliothèque.

Pour les fichiers WAV un peut simple coup d'oeil pour les valeurs ASCII "RIFF" et "VAGUE" au début du fichier. La même chose s'applique pour FLAC, il suffit de lire les 4 premiers octets, qui sera "fLaC".

Mais comment puis-je détecter rapidement si un fichier MP3? Je ne peux pas compter sur l'extension de fichier. Je ne peux pas essayer de décoder le premier MP3 image, car il pourrait y avoir des données supplémentaires au début du fichier (par exemple: ID3, image de couverture, etc).

source d'informationauteur goocreations