miniaudio 0.11.22

miniaudio 0.11.22

Il 24 febbraio, dopo oltre un anno di sviluppo, è stata rilasciata la versione 0.11.22 della libreria cross-platform per la cattura e riproduzione audio. miniaudio, scritta in linguaggio C e distribuita come dominio pubblico.
miniaudio funziona su tutte le principali piattaforme desktop e mobili, inclusi Windows, macOS, Linux, BSD, iOS, Android e Web (tramite Emscripten) senza dipendenze esterne.
La libreria offre un'API semplice, flessibile e modulare con decodificatori integrati (WAV, MP3 e FLAC), un mixaggio avanzato e l'elaborazione degli effetti (incluso il 3D), gestione delle risorse, filtri, trasformazione dei dati e molto altro.

Principali modifiche:

  • A partire dalla versione 0.12, miniaudio passerà a una coppia di file separati .c/.h, abbandonando l'unico file di intestazione. Per prepararsi a questo, è stato aggiunto un file miniaudio.c nel repository. Attualmente, si tratta semplicemente di un wrapper attorno a miniaudio.h e MINIAUDIO_IMPLEMENTATION. Non ci sono modifiche in miniaudio.h, tuttavia, quando verrà rilasciata la versione 0.12, sarà necessario utilizzare miniaudio.c per la compilazione. Si raccomanda di iniziare a passare dall'uso di MINIAUDIO_IMPLEMENTATION all'uso di miniaudio.c. Se desiderate continuare a compilare il vostro progetto come un'unità di compilazione unica, potete fare #include "miniaudio.c". Questo metodo sarà supportato nella versione 0.12 e oltre.
  • I file miniaudio_libvorbis.h e miniaudio_libopus.h nella directory extras sono stati dichiarati obsoleti. Ora sono separati in file .c e .h distinti nella directory extras/decoders. I vecchi file esistono ancora per compatibilità, ma sarà necessario passare alle nuove versioni. La transizione dovrebbe essere banale.
  • Sono state aggiunte le opzioni MA_SOUND_FLAG_LOOPING e MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_LOOPING. Possono essere utilizzate per inizializzare suoni e fonti di dati gestite per il looping predefinito. Questo è il metodo raccomandato per abilitare il looping per i flussi. Le opzioni di configurazione isLooping in ma_sound_config e ma_resource_manager_data_source_config sono state dichiarate obsolete. Se le stai utilizzando, dovresti passare alle nuove opzioni; altrimenti, durante l'aggiornamento a una versione futura, potresti ricevere errori di compilazione.
  • ma_rb_commit_read(), ma_rb_commit_write(), ma_pcm_rb_commit_read() e ma_pcm_rb_commit_write() non restituiscono più MA_AT_END. La ragione di questa modifica è che non esiste un concetto di "fine" in un buffer circolare, il che rendeva il codice del risultato poco chiaro. Inoltre, queste funzioni possono restituire non MA_SUCCESS, ma qualcosa di diverso, anche se l'operazione è stata completata con successo, il che ha generato ulteriore confusione. Il modo corretto per verificare se c'è ancora spazio nel buffer circolare è controllare il contatore dei frame restituito dalle funzioni rb_acquire_read/write().
  • L'implementazione della sorgente dati ma_pcm_rb è stata modificata in modo che i dati in uscita vengano riempiti con silenzio se nel buffer circolare non ci sono dati sufficienti per soddisfare la richiesta. Questo significa che ma_data_source_read_pcm_frames() non dovrebbe più restituire un numero di frame inferiore a quello richiesto, e quindi non restituirà mai MA_AT_END, poiché non ha senso per un buffer circolare, dato che non ha un concetto di fine. Questa modifica dovrebbe semplificare notevolmente l'uso del buffer circolare come sorgente di dati per ma_sound.
  • È stata apportata una piccola modifica alla funzione ma_calculate_buffer_size_in_milliseconds_from_frames(), che ora restituisce un valore arrotondato all'intero più vicino.
  • In caso di inizializzazione non riuscita del decoder, ora viene restituito il primo codice di errore incontrato, invece di MA_NO_BACKEND indipendentemente dall'errore, come accadeva in precedenza.
  • È stata aggiunta la funzione ma_device_id_equal() per confrontare gli identificatori dei dispositivi.
  • Aggiunta la compatibilità con MA_NO_RUNTIME_LINKING nel backend AAudio.
  • Documentazione aggiornata.
  • Errori rilevati corretti.

Fonte: linux.org.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster