Flushing issue (was: So, where'd the volume controls get to?)
    Samuel Thibault 
    samuel.thibault at ens-lyon.org
       
    Sun Oct 11 11:16:40 EDT 2020
    
    
  
Samuel Thibault, le dim. 11 oct. 2020 16:35:16 +0200, a ecrit:
> Gregory Nowak, le sam. 10 oct. 2020 20:55:32 -0700, a ecrit:
> > 4. Open the sound card with another application.
> 
> Oh, in that case I do get the mixture on my system indeed.
It seems the buffering is happening inside alsa's dmix then. Could you
try the attached patch on pcaudiolib? (which is the one that configures
the buffering)
Samuel
-------------- next part --------------
Index: pcaudiolib-1.1/src/alsa.c
===================================================================
--- pcaudiolib-1.1.orig/src/alsa.c
+++ pcaudiolib-1.1/src/alsa.c
@@ -99,6 +99,7 @@ alsa_object_open(struct audio_object *ob
 
 	snd_pcm_hw_params_t *params = NULL;
 	snd_pcm_hw_params_malloc(¶ms);
+	snd_pcm_uframes_t bufsize = 128;
 
 	int err = 0;
 	if ((err = snd_pcm_open(&self->handle, self->device ? self->device : "default", SND_PCM_STREAM_PLAYBACK, 0)) < 0)
@@ -113,6 +114,8 @@ alsa_object_open(struct audio_object *ob
 		goto error;
 	if ((err = snd_pcm_hw_params_set_channels(self->handle, params, channels)) < 0)
 		goto error;
+	if ((err = snd_pcm_hw_params_set_buffer_size_near(self->handle, params, &bufsize)) < 0)
+		goto error;
 	if ((err = snd_pcm_hw_params(self->handle, params)) < 0)
 		goto error;
 	if ((err = snd_pcm_prepare(self->handle)) < 0)
    
    
More information about the Speakup
mailing list