miniaudio 0.11.22

miniaudio 0.11.22

24. února, po více než roce vývoje, byla vydána verze 0.11.22 multiplatformní knihovny pro zachytávání a přehrávání zvuku miniaudio, napsané v jazyce C a distribuované jako veřejná doména.
miniaudio funguje na všech hlavních desktopových a mobilních platformách, včetně Windows, macOS, Linux, BSD, iOS, Android a Web (přes Emscripten) bez externích závislostí.
Knihovna má jednoduché, flexibilní a modulární API s integrovanými dekodéry (WAV, MP3 a FLAC), pokročilým mixováním a efektovou manipulací (včetně 3D), správou zdrojů, filtry, převodem dat a mnoha dalšími funkcemi.

Hlavní změny:

  • Od verze 0.12 bude miniaudio přecházet na oddělenou dvojici souborů .c/.h, čímž dojde ke zrušení jednoho hlavičkového souboru. Na přípravu na toto byl do repozitáře přidán soubor miniaudio.c. Aktuálně se jedná pouze o obal kolem miniaudio.h a MINIAUDIO_IMPLEMENTATION. V miniaudio.h se nic nezměnilo, nicméně, až vyjde verze 0.12, bude pro kompilaci nutné použít miniaudio.c. Doporučuje se začít přechod z používání MINIAUDIO_IMPLEMENTATION na používání miniaudio.c. Pokud chcete i nadále shromažďovat svůj projekt jako jednu jednotku kompilace, můžete provést #include "miniaudio.c". Tento způsob bude podporován ve verzi 0.12 a dále.
  • Soubory miniaudio_libvorbis.h a miniaudio_libopus.h v adresáři extras byly označeny jako zastaralé. Nyní jsou rozděleny na samostatné soubory .c a .h v adresáři extras/decoders. Staré soubory stále existují pro kompatibilitu, ale budete muset přejít na nové verze. Přechod by měl být triviální.
  • Byly přidány volby MA_SOUND_FLAG_LOOPING a MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_LOOPING. Tyto volby lze použít pro inicializaci zvuků a zdrojů dat řízených zdroji pro výchozí cyklení. To je doporučený způsob, jak povolit cyklení pro streamy. Konfigurační možnosti isLooping v ma_sound_config a ma_resource_manager_data_source_config byly označeny jako zastaralé. Pokud je používáte, měli byste přejít na nové volby, jinak při aktualizaci na budoucí verzi obdržíte chyby kompilace.
  • Funkce ma_rb_commit_read(), ma_rb_commit_write(), ma_pcm_rb_commit_read() a ma_pcm_rb_commit_write() již nevracejí MA_AT_END. Důvodem této změny je, že v kruhovém bufferu neexistuje pojem „konec“, což činilo kód výsledku nejasným. Navíc tyto funkce mohou vracet něco jiného než MA_SUCCESS, i když operace byla úspěšná, což přinášelo další zmatek. Správný způsob, jak zkontrolovat, zda je v kruhovém bufferu ještě místo, je podívat se na čítač snímků vracený funkcemi rb_acquire_read/write().
  • Implementace datového zdroje ma_pcm_rb byla změněna tak, že výstupy jsou vyplněny tichem, pokud není v kruhovém bufferu dostatek dat pro splnění požadavku. To znamená, že ma_data_source_read_pcm_frames() pro ma_pcm_rb nyní nesmí vracet počet snímků nižší než požadovaný, a proto nikdy nebude vracet MA_AT_END, což nedává smysl pro kruhový buffer, protože nemá pojem konce. Tato změna by měla výrazně usnadnit použití kruhového bufferu jako datového zdroje pro ma_sound.
  • Do funkce ma_calculate_buffer_size_in_milliseconds_from_frames() byla provedena drobná změna, díky které vrací hodnotu zaokrouhlenou na nejbližší celé číslo.
  • Při neúspěšné inicializaci dekodéru nyní vrací první narazivší se kód chyby, nikoli MA_NO_BACKEND bez ohledu na chybu, jako tomu bylo dříve.
  • Byla přidána funkce ma_device_id_equal() pro porovnání identifikátorů zařízení.
  • Byla přidána podpora MA_NO_RUNTIME_LINKING v backendu AAudio.
  • Byla aktualizována dokumentace.
  • Byly opraveny nalezené chyby.

Zdroj: linux.org.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster