commit 12aefb3e0cc6e1de0df0a33fa034383802e28fc4
parent 69db6ee56ba840d0c9c2aad9950f51c2518ecb32
Author: Harald Hvaal <harald.hvaal@gmail.com>
Date: Sun, 14 Mar 2010 22:08:09 +0100
Nio: Adding periods to alsa engine init, fixes latency issues
Diffstat:
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/Nio/AlsaEngine.cpp b/src/Nio/AlsaEngine.cpp
@@ -287,10 +287,14 @@ bool AlsaEngine::openAudio()
snd_pcm_hw_params_set_rate_near(audio.handle, audio.params,
&audio.sampleRate, NULL);
- audio.frames = 32;
+ audio.frames = 512;
snd_pcm_hw_params_set_period_size_near(audio.handle,
audio.params, &audio.frames, NULL);
+ audio.periods = 4;
+ snd_pcm_hw_params_set_periods_near(audio.handle,
+ audio.params, &audio.periods, NULL);
+
/* Write the parameters to the driver */
rc = snd_pcm_hw_params(audio.handle, audio.params);
if (rc < 0) {
diff --git a/src/Nio/AlsaEngine.h b/src/Nio/AlsaEngine.h
@@ -71,6 +71,7 @@ class AlsaEngine : public AudioOut, MidiIn
snd_pcm_hw_params_t *params;
unsigned int sampleRate;
snd_pcm_uframes_t frames;
+ unsigned int periods;
const short *buffer;
pthread_t pThread;
} audio;