miniaudio 0.11.22

miniaudio 0.11.22

Pe 24 februarie, după mai bine de un an de dezvoltare, a fost lansată versiunea 0.11.22 a bibliotecii cross-platform pentru captarea și redarea sunetului. miniaudio, scrisă în limbajul C și distribuită ca domeniu public.
miniaudio funcționează pe toate platformele desktop și mobile majore, inclusiv Windows, macOS, Linux, BSD, iOS, Android și Web (prin Emscripten), fără dependențe externe.
Biblioteca are o API simplă, flexibilă și modulară, cu decodoare încorporate (WAV, MP3 și FLAC), mixare avansată și procesare de efecte (inclusiv 3D), gestionarea resurselor, filtre, conversia datelor și multe altele.

Modificări principale:

  • Începând cu versiunea 0.12, miniaudio va trece la perechi separate de fișiere .c/.h, renunțând la fișierul de antet unic. În pregătirea acestei modificări, un fișier miniaudio.c a fost adăugat în depozit. Deocamdată, acesta este doar un wrapper în jurul miniaudio.h și MINIAUDIO_IMPLEMENTATION. În miniaudio.h nu s-au făcut modificări, totuși, când va fi lansată versiunea 0.12, va trebui să folosiți miniaudio.c pentru compilare. Se recomandă să începeți tranziția de la utilizarea MINIAUDIO_IMPLEMENTATION la utilizarea miniaudio.c. Dacă doriți să continuați să compilați proiectul ca o unitate unică, puteți face #include "miniaudio.c". Această metodă va fi susținută în versiunea 0.12 și ulterior.
  • Fișierele miniaudio_libvorbis.h și miniaudio_libopus.h din directorul extras au fost declarate împărtășite. Acestea sunt acum separate în fișiere .c și .h în directorul extras/decoders. Fișierele vechi există în continuare pentru compatibilitate, dar va trebui să treceți la noile versiuni. Tranzitia ar trebui să fie trivială.
  • Au fost adăugate opțiunile MA_SOUND_FLAG_LOOPING și MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_LOOPING. Acestea pot fi utilizate pentru a inițializa sunete și surse de date gestionate pentru looping implicit. Aceasta este metoda recomandată pentru a activa looping-ul pentru fluxuri. Opțiunile de configurare isLooping în ma_sound_config și ma_resource_manager_data_source_config au fost declarate învechite. Dacă le folosiți, ar trebui să treceți la noile opțiuni, altfel, la actualizarea versiunii viitoare, veți primi erori de compilare.
  • ma_rb_commit_read(), ma_rb_commit_write(), ma_pcm_rb_commit_read() și ma_pcm_rb_commit_write() nu mai returnează MA_AT_END. Motivul acestei schimbări este că în buffer-ul inelar nu există noțiunea de «sfârșit», ceea ce făcea ca codul rezultat să fie neclar. În plus, aceste funcții pot returna nu MA_SUCCESS, ci altceva, chiar dacă operația a fost finalizată cu succes, ceea ce aducea confuzii suplimentare. Modul corect de a verifica dacă mai este loc în buffer-ul inelar este să te uiți la contorul de cadre returnat de funcțiile rb_acquire_read/write().
  • Implementarea sursei de date ma_pcm_rb a fost modificată astfel încât ieșirile să fie completate cu tăcere, dacă în buffer-ul inelar nu sunt suficiente date pentru a îndeplini cererea. Aceasta înseamnă că ma_data_source_read_pcm_frames() pentru ma_pcm_rb nu ar trebui să returneze acum un număr de cadre mai mic decât ai cerut și, prin urmare, nu va returna niciodată MA_AT_END, care nu are sens pentru buffer-ul inelar, deoarece nu are noțiunea de sfârșit. Această schimbare ar trebui să simplifice considerabil utilizarea buffer-ului inelar ca sursă de date pentru ma_sound.
  • Funcția ma_calculate_buffer_size_in_milliseconds_from_frames() a suferit o mică modificare, care îi permite acum să returneze o valoare rotunjită la cel mai apropiat număr întreg.
  • În cazul unei inițializări eșuate a decoder-ului, acum se returnează primul cod de eroare întâlnit, în loc de MA_NO_BACKEND, indiferent de eroare, ca înainte.
  • A fost adăugată funcția ma_device_id_equal() pentru compararea identificatorilor de dispozitive.
  • A fost adăugat suport pentru MA_NO_RUNTIME_LINKING în backend-ul AAudio.
  • Documentația a fost actualizată.
  • Au fost corectate erorile descoperite.

Sursa: linux.org.ru

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster