Dopo 14 anni dal precedente rilascio, è stata formata la versione 2.0.1 della libreria SDL_sound (la versione 2.0.0 è stata saltata), che fornisce un layer sopra la libreria SDL con funzioni per la decodifica di popolari formati audio, come MP3, WAV, OGG, FLAC, AIFF, VOC, MOD, MID e AU. Il cambiamento significativo del numero di versione è dovuto alla migrazione del codice dalla licenza copyleft LGPLv2 a una licenza permissiva zlib, compatibile con la GPL. Inoltre, nonostante il mantenimento della retrocompatibilità a livello API, il funzionamento di SDL_sound è ora possibile solo sulla base del ramo SDL 2.0 (il supporto per la costruzione sopra SDL 1.2 è stato interrotto).
Per la decodifica dei formati audio in SDL_sound non vengono utilizzate librerie esterne: tutti i necessari sorgenti per la decodifica sono inclusi nel codice principale. L'API fornita permette di ottenere dati audio sia da file che a livello di flussi audio da una o più fonti esterne. È supportata l'attach di propri handler per l'elaborazione audio o per fornire accesso ai dati decodificati risultanti. Sono possibili varie manipolazioni con la frequenza di campionamento, i formati e i canali audio, inclusa la riconversione al volo.
Principali cambiamenti nel ramo SDL_sound 2.0:
- Modifica della licenza a zlib e transizione verso l'utilizzo di SDL 2.
- Eliminazione del codice da dipendenze esterne e integrazione di tutti i decodificatori nel codice principale. Sostituzione di alcuni decodificatori con handler unificati. Ad esempio, per lavorare con il formato OGG non è più richiesta l'installazione della libreria libogg, poiché il decodificatore stb_vorbis è ora integrato nei sorgenti di SDL_sound.
- Transizione all'uso del sistema di build CMake. Semplificazione del processo di utilizzo del codice SDL_sound nei propri progetti.
- Interruzione del supporto per il decodificatore del formati QuickTime obsoleto, ma su macOS e iOS è ancora possibile utilizzare il decodificatore universale CoreAudio per lavorare con QuickTime.
- Interruzione del supporto per il formato Speex, a causa dell'assenza di un'implementazione del decodificatore sotto la licenza necessaria.
- Interruzione del supporto per il decodificatore MikMod. Per lavorare con gli stessi formati è possibile utilizzare il decodificatore modplug.
Fonte: opennet.ru
