miniaudio 0.11.22

miniaudio 0.11.22

Am 24. Februar, nach mehr als einem Jahr Entwicklung, wurde die Version 0.11.22 der plattformübergreifenden Audioaufnahme- und -wiedergabebibliothek veröffentlicht. miniaudio, die in C geschrieben ist und als Public Domain verbreitet wird.
miniaudio funktioniert auf allen gängigen Desktop- und Mobilplattformen, einschließlich Windows, macOS, Linux, BSD, iOS, Android und Web (über Emscripten), ohne externe Abhängigkeiten.
Die Bibliothek bietet eine einfache, flexible und modulare API mit integrierten Decodern (WAV, MP3 und FLAC), erweiterten Mixing- und Effektverarbeitungsfunktionen (einschließlich 3D), Ressourcenmanagement, Filtern, Datenkonvertierung und vielem mehr.

Hauptänderungen:

  • Ab Version 0.12 wird miniaudio auf ein separates Paar von .c/.h-Dateien umsteigen, anstelle einer einzigen Header-Datei. Zur Vorbereitung darauf wurde die Datei miniaudio.c in das Repository aufgenommen. Aktuell ist dies nur eine Wrapper um miniaudio.h und MINIAUDIO_IMPLEMENTATION. In miniaudio.h hat sich nichts geändert, allerdings wird es ab der Version 0.12 notwendig sein, miniaudio.c für die Kompilierung zu verwenden. Es wird empfohlen, den Wechsel von MINIAUDIO_IMPLEMENTATION zu miniaudio.c zu beginnen. Wenn Sie Ihr Projekt weiterhin als eine einzige Kompilationseinheit bauen möchten, können Sie #include "miniaudio.c" verwenden. Diese Methode wird in Version 0.12 und darüber unterstützt.
  • Die Dateien miniaudio_libvorbis.h und miniaudio_libopus.h im Verzeichnis extras sind als veraltet markiert. Sie wurden jetzt in separate .c- und .h-Dateien im Verzeichnis extras/decoders aufgeteilt. Die alten Dateien sind weiterhin zur Kompatibilität vorhanden, aber Sie sollten auf die neuen Versionen umsteigen. Der Wechsel sollte unkompliziert sein.
  • Die Optionen MA_SOUND_FLAG_LOOPING und MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_LOOPING wurden hinzugefügt. Diese können verwendet werden, um Sounds und verwaltete Datenquellen standardmäßig für das Looping zu initialisieren. Dies ist die empfohlene Methode, um das Looping für Streams zu aktivieren. Die Konfigurationsoptionen isLooping in ma_sound_config und ma_resource_manager_data_source_config sind als veraltet markiert. Wenn Sie diese verwenden, sollten Sie auf die neuen Optionen umsteigen, anderenfalls werden Sie beim Update auf zukünftige Versionen Compilerfehler erhalten.
  • ma_rb_commit_read(), ma_rb_commit_write(), ma_pcm_rb_commit_read() und ma_pcm_rb_commit_write() geben nicht mehr MA_AT_END zurück. Der Grund für diese Änderung ist, dass es im Ringpuffer kein Konzept für ein 'Ende' gibt, was den Rückgabewert unklar machte. Darüber hinaus können diese Funktionen etwas anderes als MA_SUCCESS zurückgeben, auch wenn die Operation erfolgreich abgeschlossen wurde, was zusätzliche Verwirrung stiftete. Die richtige Vorgehensweise, um zu prüfen, ob im Ringpuffer noch Platz vorhanden ist, besteht darin, den von den Funktionen rb_acquire_read/write() zurückgegebenen Frame-Zähler zu betrachten.
  • Die Implementierung der Datenquelle ma_pcm_rb wurde so geändert, dass der Ausgang mit Stille gefüllt wird, wenn im Ringpuffer nicht genügend Daten vorhanden sind, um die Anfrage zu erfüllen. Das bedeutet, dass ma_data_source_read_pcm_frames() für ma_pcm_rb nicht mehr eine Anzahl von Frames zurückgeben darf, die kleiner ist als die angeforderte, und daher nie MA_AT_END zurückgeben wird, was für einen Ringpuffer keinen Sinn macht, da er kein Konzept für ein Ende hat. Diese Änderung sollte die Verwendung des Ringpuffers als Datenquelle für ma_sound erheblich vereinfachen.
  • Die Funktion ma_calculate_buffer_size_in_milliseconds_from_frames() wurde geringfügig geändert, sodass sie nun einen Wert zurückgibt, der auf die nächste ganze Zahl gerundet ist.
  • Bei einer fehlgeschlagenen Dekoderinitialisierung wird jetzt der erste gefundene Fehlercode zurückgegeben und nicht mehr MA_NO_BACKEND, unabhängig von der Fehlerursache, wie es zuvor der Fall war.
  • Die Funktion ma_device_id_equal() wurde hinzugefügt, um Geräte-IDs zu vergleichen.
  • Unterstützung für MA_NO_RUNTIME_LINKING wurde im AAudio-Backend hinzugefügt.
  • Die Dokumentation wurde aktualisiert.
  • Entdeckte Fehler wurden behoben.

Quelle: linux.org.ru

60GB SSD 8Gb DDR4