miniaudio 0.11.22

miniaudio 0.11.22

24. februára, po viac ako roku vývoja, bol vydaný 0.11.22 multiplatformový knižnica na zachytávanie a reprodukciu zvuku. miniaudio, napísaná v jazyku C a distribuovaná ako verejné vlastníctvo.
miniaudio funguje na všetkých hlavných desktopových a mobilných platformách vrátane Windows, macOS, Linux, BSD, iOS, Android a Web (cez Emscripten) bez externých závislostí.
Knižnica má jednoduché, flexibilné a modulárne API s integrovanými dekodérmi (WAV, MP3 a FLAC), rozšíreným miešaním a spracovaním efektov (vrátane 3D), správou zdrojov, filtrami, transformáciou dát a mnoho ďalšieho.

Hlavné zmeny:

  • S verziou 0.12 prejde miniaudio na oddelený pár súborov .c/.h a zruší jediný hlavičkový súbor. Pre prípravu na toto bol do repozitára pridaný súbor miniaudio.c. V súčasnosti je to len obal okolo miniaudio.h a MINIAUDIO_IMPLEMENTATION. V miniaudio.h sa nič nezmenilo, avšak pri vydaní verzie 0.12 bude potrebné použiť miniaudio.c na kompiláciu. Odporúča sa začať prechod od používania MINIAUDIO_IMPLEMENTATION k používaniu miniaudio.c. Ak chcete pokračovať v zostavovaní svojho projektu ako jednu kompiláciu, môžete pridať #include "miniaudio.c". Tento spôsob bude podporovaný vo verzii 0.12 a ďalej.
  • Súbory miniaudio_libvorbis.h a miniaudio_libopus.h v adresári extras sú vyhlásené za zastarané. Teraz sú rozdelené na samostatné súbory .c a .h v adresári extras/decoders. Staršie súbory stále existujú pre kompatibilitu, ale budete musieť prejsť na nové verzie. Prechod by mal byť triviálny.
  • Pridali sa možnosti MA_SOUND_FLAG_LOOPING a MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_LOOPING. Tieto sa môžu použiť na inicializáciu zvukov a spravovaných zdrojov dát pre cyklické prehrávanie ako predvolené. Toto je odporúčaný spôsob povolenia cyklického prehrávania pre toky. Konfiguračné možnosti isLooping v ma_sound_config a ma_resource_manager_data_source_config sú vyhlásené za zastarané. Ak ich používate, mali by ste prejsť na nové možnosti, inak pri aktualizácii na budúcu verziu dostanete chyby kompilátora.
  • ma_rb_commit_read(), ma_rb_commit_write(), ma_pcm_rb_commit_read() a ma_pcm_rb_commit_write() už nevracajú MA_AT_END. Dôvodom tejto zmeny je, že v kruhovom vyrovnávacom pamäti neexistuje pojem „koniec“, čo robilo kód výsledku nejasným. Navyše, tieto funkcie môžu vracať nie MA_SUCCESS, ale niečo iné, aj keď operácia bola úspešná, čo prinášalo ďalšiu zmätok. Správny spôsob, ako overiť, či je v kruhovom vyrovnávacom pamäti ešte miesto, je pozrieť sa na čítač snímok, ktorý vracajú funkcie rb_acquire_read/write().
  • Implementácia zdroja údajov ma_pcm_rb bola zmenená tak, že výstupy sú vyplnené tichom, ak v kruhovom vyrovnávacom pamäti nie sú dostatočné údaje na splnenie požiadavky. To znamená, že ma_data_source_read_pcm_frames() pre ma_pcm_rb už nemusí vracať počet snímok menší než ste požadovali, a preto nikdy nevráti MA_AT_END, čo nemá zmysel pre kruhový vyrovnávací pamäť, pretože nemá pojem konca. Táto zmena by mala významne zjednodušiť používanie kruhového vyrovnávacieho pamäti ako zdroja údajov pre ma_sound.
  • Vo funkcii ma_calculate_buffer_size_in_milliseconds_from_frames() došlo k drobnej zmene, v dôsledku ktorej vracia hodnotu zaokrúhlenú na najbližšie celé číslo.
  • Pri neúspešnej inicializácii dekodéra sa teraz vracia prvý narazený kód chyby, a nie MA_NO_BACKEND bez ohľadu na chybu, ako to bolo predtým.
  • Pridala sa funkcia ma_device_id_equal() na porovnávanie identifikátorov zariadení.
  • Pridala sa podpora MA_NO_RUNTIME_LINKING v backend AAudio.
  • Dokumentácia bola aktualizovaná.
  • Opravené zistené chyby.

Zdroj: linux.org.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster