miniaudio 0.11.22

miniaudio 0.11.22

На 24 февруари, след повече от година разработка, беше пусната версия 0.11.22 на кросплатформената библиотека за улавяне и възпроизвеждане на звук. miniaudio, написана на езика C и разпространявана като обществено достояние.
miniaudio работи на всички основни настолни и мобилни платформи, включително Windows, macOS, Linux, BSD, iOS, Android и Web (чрез Emscripten) без външни зависимости.
Библиотеката разполага с прост, гъвкав и модулен API с вградени декодери (WAV, MP3 и FLAC), разширено смесване и обработка на ефекти (включително 3D), управление на ресурси, филтри, преобразуване на данни и много други.

Основни промени:

  • Започвайки от версия 0.12, miniaudio ще премине на разделни файлове .c/h, отказвайки се от единствения заглавен файл. За подготовка за това в репозитория бе добавен файл miniaudio.c. В момента това е просто обвивка около miniaudio.h и MINIAUDIO_IMPLEMENTATION. В miniaudio.h нищо не се е променило, обаче, когато излезе версия 0.12, ще трябва да използвате miniaudio.c за компилиране. Препоръчва се да преминете от използването на MINIAUDIO_IMPLEMENTATION към използването на miniaudio.c. Ако искате да продължите да компилирате проекта си като единен компиляционен единица, можете да направите #include "miniaudio.c". Този метод ще бъде поддържан в версия 0.12 и следващите.
  • Файловете miniaudio_libvorbis.h и miniaudio_libopus.h в директория extras са обявени за остарели. Сега те са разделени на отделни файлове .c и .h в директория extras/decoders. Старите файлове все още съществуват за съвместимост, но ще трябва да преминете на новите версии. Преминаването трябва да е тривиално.
  • Добавени са опции MA_SOUND_FLAG_LOOPING и MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_LOOPING. Те могат да се използват за инициализиране на звуци и управлявани от ресурси източници на данни за зацикляне по подразбиране. Това е препоръчаният начин за включване на зацикляне за потоци. Опциите за конфигурация isLooping в ma_sound_config и ma_resource_manager_data_source_config са обявени за остарели. Ако ги използвате, трябва да преминете на новите опции, в противен случай при актуализиране до бъдеща версия ще получите грешки на компилатора.
  • ma_rb_commit_read(), ma_rb_commit_write(), ma_pcm_rb_commit_read() и ma_pcm_rb_commit_write() вече не връщат MA_AT_END. Причината за тази промяна е, че в кръговия буфер не съществува понятие за "край", което правеше резултатния код неясен. Освен това, тези функции могат да върнат не MA_SUCCESS, а нещо друго, дори ако операцията е приключила успешно, което допринася за допълнителна обърканост. Правилният начин да проверите дали все още има място в кръговия буфер е да се погледне на брояча на кадри, връщан от функциите rb_acquire_read/write().
  • Имплементацията на източника на данни ma_pcm_rb е променена така, че изходните данни се запълват с тишина, ако в кръговия буфер няма достатъчно данни за изпълнение на заявката. Това означава, че ma_data_source_read_pcm_frames() за ma_pcm_rb вече не трябва да връща брой кадри по-малък от заявения и следователно никога няма да връща MA_AT_END, което няма смисъл за кръговия буфер, тъй като той няма концепция за край. Тази промяна трябва значително да опрости използването на кръговия буфер като източник на данни за ma_sound.
  • В функцията ma_calculate_buffer_size_in_milliseconds_from_frames() е направена малка промяна, в резултат на която тя връща стойност, закръглена до най-близкото цяло число.
  • При неуспешна инициализация на декодера сега се връща първият срещнат код на грешка, а не MA_NO_BACKEND независимо от грешката, както беше преди.
  • Добавена е функцията ma_device_id_equal() за сравнение на идентификатори на устройства.
  • Добавена е поддръжка на MA_NO_RUNTIME_LINKING в бекенда AAudio.
  • Актуализирана документация.
  • Коригирани са откритите грешки.

Източник: linux.org.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster