Nach 14 Jahren seit der letzten Veröffentlichung wurde die Bibliothek SDL_sound 2.0.1 (Version 2.0.0 wurde ausgelassen) veröffentlicht, die eine Schnittstelle zur SDL-Bibliothek mit Funktionen zum Dekodieren beliebter Audioformatdateien wie MP3, WAV, OGG, FLAC, AIFF, VOC, MOD, MID und AU bietet. Die signifikante Änderung der Versionsnummer steht im Zusammenhang mit der Migration des Codes von der Copyleft-Lizenz LGPLv2 auf die permissive Lizenz zlib, die GPL-kompatibel ist. Darüber hinaus ist die Verwendung von SDL_sound jetzt, trotz der Beibehaltung der Abwärtskompatibilität auf API-Ebene, nur noch auf Basis des SDL 2.0-Zweiges möglich (die Unterstützung für den Bau auf SDL 1.2 wurde eingestellt).
Für das Dekodieren von Audioformaten in SDL_sound werden keine externen Bibliotheken verwendet – alle erforderlichen Quelltexte sind im Hauptbestand enthalten. Die bereitgestellte API ermöglicht das Abrufen von Audiodaten sowohl aus Dateien als auch auf Grundlage von Audio-Streams aus einer oder mehreren externen Quellen. Benutzerdefinierte Handler können zur Audioverarbeitung oder zur Bereitstellung des Zugangs zu den dekodierten Ergebnisdaten angehängt werden. Es sind verschiedene Manipulationen mit Abtastraten, Formaten und Audiokanälen möglich, einschließlich der On-the-Fly-Konvertierung.
Die wesentlichen Änderungen in der SDL_sound 2.0-Zweig:
- Lizenzwechsel zu zlib und Übergang zur Verwendung von SDL 2.
- Beseitigung externer Abhängigkeiten und Integration aller Dekodierer in den Hauptbestand. Austausch einiger Dekodierer durch vereinheitlichte Handler. Zum Beispiel ist für die Arbeit mit dem OGG-Format keine Installation der libogg-Bibliothek mehr erforderlich, da der Dekodierer stb_vorbis nun in die Quelltexte von SDL_sound integriert ist.
- Übergang zur Verwendung des Build-Systems CMake. Vereinfachung des Prozesses zur Verwendung des Codes von SDL_sound in eigenen Projekten.
- Einstellung der Unterstützung für den Dekodierer des veralteten QuickTime-Formats, aber auf macOS und iOS kann zur Arbeit mit QuickTime weiterhin der universelle Dekodierer CoreAudio verwendet werden.
- Einstellung der Unterstützung für das Speex-Format aufgrund fehlender Implementierung des Dekodierers unter der erforderlichen Lizenz.
- Einstellung der Unterstützung für den MikMod-Dekodierer. Für die Arbeit mit denselben Formaten kann der Dekodierer modplug verwendet werden.
Quelle: opennet.ru
