Bonjour.
Je réalise actuellement une application permettant de lire un fichier audio avec libavcodec et openal.
En ce qui concerne openal, j'ai suivi le tutorial de Laurent Gomila avec libsndfile. Cela fonctionne parfaitement. Les choses se corsent lorsque je passe à libavcodec.
J'utilise cette page http://www.dranger.com/ffmpeg/tutorial03.html pour seule documentation car je n'en trouve malheureusement pas d'autre.
Le problème est que je n'arrive pas à remplir correctement le buffer à envoyer à openal. Avec libsndfile, le buffer contient 2 milliosn d'entiers. Avec libavcodec, un appel à la fonction avcodec_decode_audio2 ne remplit que 2048 valeurs dans le buffer pour un fichier wave, 256 pour un fichier ogg. Si je tente un second appel à cette fonction glibc me gratifie d'un beau double free corruption.
J'ai peur que cela ne soit pas très clair. J'espère que quelqu'un ici peut m'orienter en ce qui concerne la libavcodec car la documentation est tres maigre. Si nécessaire je peux vous fournir le code que j'ai écrit.
En fait, je pense ne pas avoir bien compris comment fonctionne les fichiers audios, la différence entre les frames, les samples, les échantillons, les paquets et les tailles de toutes ces choses.
Merci
Partager