Используя функцию ALSA snd_pcm_writei, можно ли сразу освободить буфер сэмплов? - PullRequest
2 голосов
/ 22 августа 2009

Используя ALSA для воспроизведения звука, после вызова snd__pcm__writei могу ли я сразу освободить буфер звукового семпла или мне нужно подождать, пока закончится воспроизведение звука, прежде чем я смогу освободить буфер семплов?

Например:

unsigned short *buffer;

buffer = malloc(size of sample to play);
...load data into buffer...
snd_pcm_writei (playback_handle, buffer, size of sample)
free(buffer)

1 Ответ

0 голосов
/ 22 августа 2009

Самый простой способ выяснить это начать запись назад с конца буфера и посмотреть, влияете ли вы на воспроизведение звука. Если вы это сделаете, то определенно не сможете освободить буфер. Если это не имеет значения, то вы можете безопасно освободить буфер, поскольку звуковая карта не читает из этого конкретного блока памяти.

...