Прочитав документацию по аудио SDL2 (что довольно прискорбно), я вижу, что доступны различные аудиоформаты, включая беззнаковые и подписанные 8-битные, 16-битные, 32-битные с плавающей запятой. Все идет нормально. Я застрял с использованием SDL для этого проекта, и я хотел бы сделать простой синтез звука в 16 бит. Поэтому я установил формат в своей структуре SDL_AudioSpec на AUDIO_U16SYS, как на этой странице https://wiki.libsdl.org/SDL_AudioSpec
Однако, когда я просматриваю документацию обратного вызова на той же странице (и фактически везде, где я просматривал в Интернете), звуковой буфер в обратном вызове *Uint8:
void SDL_AudioCallback(void* userdata,
Uint8* stream,
int len)
В таком случае я не понимаю, как передать 16-битный звук в SDL. Похоже, что он всегда будет получать аудио как 8-битное, а библиотека просто повышает частоту дискретизации до желаемого битрейта. Но это звучит безумно. Так ли это, или я что-то упускаю. Например, существует ли (каким-то образом) альтернативный прототип обратного вызова, соответствующий, например. AUDIO_U16SYS, или мне нужно использовать другие методы для более высоких битрейтов?