|
Serwis Edukacyjny Nauczycieli w I-LO w Tarnowie
Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy
Wałaszek |
©2026 mgr Jerzy Wałaszek
|
SDL_AudioCVT
| SPIS TREŚCI |
Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2.
Struktura zawiera informację o konwersji danych audio.
| int | needed | ustawiane na 1, jeśli konwersja jest możliwa. |
| SDL_AudioFormat | src_format | format źródłowych danych audio. |
| SDL_AudioFormat | dst_format | format docelowy audio. |
| double | rate_incr | przyrost tempa konwersji. |
| Uint8* | buf | bufor do przechowywania wszystkich danych audio; zobacz do Uwag. |
| int | len | długość oryginalnego bufora audio; zobacz do Uwag. |
| int | len_cvt | długość bufora danych audio po konwersji |
| int | len_mult | buf musi posiadać rozmiar len*len_mult; zobacz do Uwag. |
| double | len_ratio | mając len, końcowy rozmiar wynosi len*len_ratio; zobacz do Uwag. |
| SDL_AudioFilter[10] | filters | lista filtrów (użytek wewnętrzny). |
| int | filter_index | bieżąca funkcja konwersji audio (użytek wewnętrzny). |
// Zamiana 1024 ramek próbek dźwiękowych przy częstotliwości 48000Hz z float32 na int16. SDL_AudioCVT cvt; SDL_BuildAudioCVT(&cvt, AUDIO_F32, 2, 48000, AUDIO_S16, 2, 48000); SDL_assert(cvt.needed); // To zawsze jest potrzebne. cvt.len = 1024 * 2 * 4; // 1024 ramek sampli dźwiękowych stereo typu float32. cvt.buf = (Uint8 *) SDL_malloc(cvt.len * cvt.len_mult); // wczytaj swoje dane float32 do cvt.buf. SDL_ConvertAudio(&cvt); // cvt.buf zawiera cvt.len_cvt bajtów skonwertowanych danych. |
buf wskazuje na dane audio, które zostaną użyte w konwersji. Jest to wskaźnik zarówno źródłowy jak i docelowy, co oznacza, że skonwertowane dane audio nadpiszą pierwotne dane. Oznacza to również, że dane skonwertowane mogą być większe od danych oryginalnych (na przykład, jeśli konwertowałeś z danych 8-bitowych na 16-bitowe), więc musisz zapewnić, aby bufor buf był wystarczająco duży na każdym etapie konwersji, bez względu na końcowy rozmiar skonwertowanych danych. Zobacz na len_mult poniżej.
len jest długością w bajtach oryginalnych danych audio.
len_mult jest mnożnikiem długości potrzebnym do określenia rozmiaru konwertowanych danych. Bufor dźwiękowy może wymagać większego rozmiaru niż dane oryginalne lub skonwertowane. Przydzielony w pamięci bufor powinien posiadać rozmiar równy len*len_mult.len_ratio jest współczynnikiem długości skonwertowanych danych w stosunku do danych oryginalnych. Gdy konwersja dobiegnie końca, musisz wiedzieć, ile danych w buforze stanowią skonwertowane dane audio. Rozmiar tych danych w bajtach wynosi len*len_ratio. Jest to bardzo podobne do len_mult, jednakże, gdy skonwertowane dane są krótsze od oryginalnych, len_mult przyjmuje wartość 1. len_ratio z drugiej strony będzie liczbą ułamkową pomiędzy 0 a 1.
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.