Le 24 février, aprÚs plus d'un an de développement, la version 0.11.22 de la bibliothÚque multiplateforme de capture et de reproduction audio a été publiée. miniaudio, écrite en C et diffusée comme domaine public.
miniaudio fonctionne sur toutes les principales plates-formes de bureau et mobiles, y compris Windows, macOS, Linux, BSD, iOS, Android et Web (via Emscripten) sans dépendances externes.
La bibliothÚque dispose d'une API simple, flexible et modulaire avec des décodeurs intégrés (WAV, MP3 et FLAC), un mixage avancé et un traitement d'effets (y compris 3D), la gestion des ressources, des filtres, la conversion de données et bien plus encore.
Principales modifications :
- Ă partir de la version 0.12, miniaudio passera Ă une paire de fichiers .c/h sĂ©parĂ©s, abandonnant le fichier d'en-tĂȘte unique. Pour prĂ©parer cela, un fichier miniaudio.c a Ă©tĂ© ajoutĂ© au dĂ©pĂŽt. Pour l'instant, il s'agit simplement d'un wrapper autour de miniaudio.h et de MINIAUDIO_IMPLEMENTATION. Rien n'a changĂ© dans miniaudio.h, cependant, lorsque la version 0.12 sera publiĂ©e, vous devrez utiliser miniaudio.c pour la compilation. Il est recommandĂ© de commencer la transition de l'utilisation de MINIAUDIO_IMPLEMENTATION vers l'utilisation de miniaudio.c. Si vous souhaitez continuer Ă compiler votre projet en tant qu'unitĂ© de compilation unique, vous pouvez faire #include "miniaudio.c". Cette mĂ©thode sera prise en charge dans la version 0.12 et au-delĂ .
- Les fichiers miniaudio_libvorbis.h et miniaudio_libopus.h dans le rĂ©pertoire extras sont dĂ©sormais obsolĂštes. Ils ont Ă©tĂ© sĂ©parĂ©s en fichiers .c et .h distincts dans le rĂ©pertoire extras/decoders. Les anciens fichiers existent toujours pour des raisons de compatibilitĂ©, mais vous devrez passer aux nouvelles versions. La transition devrait ĂȘtre triviale.
- Les options MA_SOUND_FLAG_LOOPING et MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_LOOPING ont Ă©tĂ© ajoutĂ©es. Elles peuvent ĂȘtre utilisĂ©es pour initialiser les sons et les sources de donnĂ©es gĂ©rĂ©es pour un bouclage par dĂ©faut. C'est la mĂ©thode recommandĂ©e pour activer le bouclage pour les flux. Les options de configuration isLooping dans ma_sound_config et ma_resource_manager_data_source_config sont dĂ©sormais obsolĂštes. Si vous les utilisez, vous devriez passer aux nouvelles options, sinon vous rencontrerez des erreurs de compilation lors de la mise Ă jour vers une future version.
- Les fonctions ma_rb_commit_read(), ma_rb_commit_write(), ma_pcm_rb_commit_read() et ma_pcm_rb_commit_write() ne retournent plus MA_AT_END. La raison de ce changement est qu'il n'existe pas de concept de « fin » dans un tampon circulaire, ce qui rendait le code de rĂ©sultat peu clair. De plus, ces fonctions peuvent retourner autre chose que MA_SUCCESS, mĂȘme si l'opĂ©ration a rĂ©ussi, ce qui ajoutait une confusion supplĂ©mentaire. La bonne façon de vĂ©rifier s'il y a encore de la place dans le tampon circulaire est de consulter le compteur de trames retournĂ© par les fonctions rb_acquire_read/write().
- L'implĂ©mentation de la source de donnĂ©es ma_pcm_rb a Ă©tĂ© modifiĂ©e de sorte que les sorties soient remplies de silence si le tampon circulaire ne dispose pas de suffisamment de donnĂ©es pour exĂ©cuter la requĂȘte. Cela signifie que ma_data_source_read_pcm_frames() pour ma_pcm_rb ne doit plus retourner un nombre de trames infĂ©rieur Ă celui que vous avez demandĂ© et ne retournera donc jamais MA_AT_END, ce qui n'a pas de sens pour un tampon circulaire puisqu'il n'a pas de concept de fin. Ce changement devrait considĂ©rablement faciliter l'utilisation du tampon circulaire en tant que source de donnĂ©es pour ma_sound.
- Une légÚre modification a été apportée à la fonction ma_calculate_buffer_size_in_milliseconds_from_frames(), qui maintenant retourne une valeur arrondie à l'entier le plus proche.
- En cas d'initialisation échouée du décodeur, le premier code d'erreur rencontré est maintenant retourné, et non plus MA_NO_BACKEND indépendamment de l'erreur, comme c'était le cas auparavant.
- Une fonction ma_device_id_equal() a été ajoutée pour comparer les identifiants d'appareils.
- Support pour MA_NO_RUNTIME_LINKING ajouté dans le backend AAudio.
- La documentation a été mise à jour.
- Des bogues détectés ont été corrigés.
Source : linux.org.ru
