minigarsas 0.11.22

minigarsas 0.11.22

Vasario 24 d., po daugiau nei metus trukusio kūrimo, buvo išleista 0.11.22 kelių platformų garso įrašymo ir atkūrimo bibliotekos. mini garso įrašas, parašytas C ir platinamas viešajame domene.
„miniaudio“ veikia visose pagrindinėse darbalaukio ir mobiliosiose platformose, įskaitant „Windows“, „MacOS“, „Linux“, BSD, „iOS“, „Android“ ir žiniatinklį (per Emscripten), be priklausomybių nuo trečiųjų šalių.
Biblioteka turi paprastą, lanksčią ir modulinę API su įmontuotais dekoderiais (WAV, MP3 ir FLAC), pažangiu maišymo ir efektų apdorojimu (įskaitant 3D), išteklių valdymu, filtrais, duomenų konvertavimu ir dar daugiau.

Pagrindiniai pakeitimai:

  • Pradedant nuo 0.12 versijos, minigarsas bus perkeltas į atskirą .c/h failų porą, atsisakant vienos antraštės failo. Tam, kad būtų pasiruošta, į saugyklą įtrauktas miniaudio.c failas. Šiuo metu tai tik įvyniojimas aplink miniaudio.h ir MINIAUDIO_IMPLEMENTATION. Niekas nepasikeitė miniaudio.h, tačiau kai pasirodys 0.12 versija, kompiliavimui turėsite naudoti miniaudio.c. Rekomenduojama pradėti perėjimą nuo MINIAUDIO_IMPLEMENTATION prie naudojimo miniaudio.c. Jei norite toliau kurti savo projektą kaip vieną kompiliavimo vienetą, galite #include "miniaudio.c". Šis metodas bus palaikomas 0.12 ir naujesnėse versijose.
  • Failai miniaudio_libvorbis.h ir miniaudio_libopus.h, esantys priedų kataloge, buvo nebenaudojami. Dabar jie yra suskirstyti į atskirus .c ir .h failus priedų/dekoderių kataloge. Dėl suderinamumo senieji failai vis dar egzistuoja, tačiau turėsite atnaujinti į naujas versijas. Perėjimas turėtų būti trivialus.
  • Pridėtos parinktys MA_SOUND_FLAG_LOOPING ir MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_LOOPING. Juos galima naudoti norint inicijuoti garsus ir išteklius pagrįstus duomenų šaltinius, kad jie būtų sukurti pagal numatytuosius nustatymus. Tai rekomenduojamas būdas įjungti siūlų kilpą. „isLooping“ konfigūracijos parinktys ma_sound_config ir ma_resource_manager_data_source_config nebenaudojamos. Jei jas naudojate, turėtumėte atnaujinti į naujas parinktis, kitaip atnaujindami į būsimą versiją gausite kompiliatoriaus klaidų.
  • ma_rb_commit_read(), ma_rb_commit_write(), ma_pcm_rb_commit_read() ir ma_pcm_rb_commit_write() nebegrąžina MA_AT_END. Šio pakeitimo priežastis yra ta, kad žiedo buferyje nėra sąvokos „pabaiga“, todėl rezultato kodas tapo neaiškus. Be to, šios funkcijos gali grąžinti ką nors kita nei MA_SUCCESS, net jei operacija baigta sėkmingai, o tai padidino painiavą. Teisingas būdas patikrinti, ar skambėjimo buferyje dar yra vietos, yra pažvelgti į kadrų skaitiklį, kurį grąžina funkcijos rb_acquire_read/write().
  • Duomenų šaltinio ma_pcm_rb įgyvendinimas buvo pakeistas taip, kad išvestis būtų užpildyta tyla, jei skambėjimo buferyje nėra pakankamai duomenų užklausai įvykdyti. Tai reiškia, kad ma_data_source_read_pcm_frames() skirta ma_pcm_rb nebeturi grąžinti mažesnio kadrų skaičiaus, nei prašėte, todėl niekada nepateiks MA_AT_END, o tai nėra prasmės skambėjimo buferiui, nes jis neturi pabaigos sąvokos. Šis pakeitimas turėtų palengvinti skambėjimo buferio naudojimą kaip ma_sound duomenų šaltinį.
  • Buvo atliktas nedidelis funkcijos ma_calculate_buffer_size_in_milliseconds_from_frames() pakeitimas, kad ji grąžintų vertę, suapvalintą iki artimiausio sveikojo skaičiaus.
  • Jei dekoderio inicijavimas nepavyksta, dabar grąžinamas pirmasis aptiktas klaidos kodas, o ne MA_NO_BACKEND, neatsižvelgiant į klaidą, kaip buvo anksčiau.
  • Pridėta funkcija ma_device_id_equal() įrenginių ID palyginimui.
  • Pridėtas MA_NO_RUNTIME_LINKING palaikymas AAudio foninėje programoje.
  • Dokumentacija atnaujinta.
  • Aptiktos klaidos ištaisytos.

Šaltinis: linux.org.ru

Добавить комментарий