X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=nageru%2Falsa_output.cpp;h=21143e8fa4bd619f667f6b047fe34d4b95d69c41;hb=f81ae3be1aae619fe4ad022f55d95a4a83ace076;hp=bc2c89c761ea5a13817054ffb10b4fab7a594279;hpb=9ffd4f03f314cc6e0254449593def95c9bc203d6;p=nageru diff --git a/nageru/alsa_output.cpp b/nageru/alsa_output.cpp index bc2c89c..21143e8 100644 --- a/nageru/alsa_output.cpp +++ b/nageru/alsa_output.cpp @@ -1,6 +1,8 @@ #include "alsa_output.h" #include +#include +#include #include #include #include @@ -34,12 +36,12 @@ ALSAOutput::ALSAOutput(int sample_rate, int num_channels) die_on_error("snd_pcm_hw_params_set_rate()", snd_pcm_hw_params_set_rate(pcm_handle, hw_params, sample_rate, 0)); die_on_error("snd_pcm_hw_params_set_channels", snd_pcm_hw_params_set_channels(pcm_handle, hw_params, num_channels)); - // Fragment size of 512 samples. (A frame at 60 fps/48 kHz is 800 samples.) - // We ask for 16 such periods (~170 ms buffer). - unsigned int num_periods = 16; + // Fragment size of 2048 samples. (A frame at 60 fps/48 kHz is 800 samples.) + // We ask for 4 such periods (~170 ms buffer). + unsigned int num_periods = 4; int dir = 0; die_on_error("snd_pcm_hw_params_set_periods_near()", snd_pcm_hw_params_set_periods_near(pcm_handle, hw_params, &num_periods, &dir)); - period_size = 512; + period_size = 2048; dir = 0; die_on_error("snd_pcm_hw_params_set_period_size_near()", snd_pcm_hw_params_set_period_size_near(pcm_handle, hw_params, &period_size, &dir)); die_on_error("snd_pcm_hw_params()", snd_pcm_hw_params(pcm_handle, hw_params));