[alsa-devel] issues with pulse plugin

Mike Gorse mgorse at mgorse.dhs.org
Thu Nov 8 23:21:20 CET 2007


I have run into what is basically another instance of bug 3470 
(pulse_hw_params asserting because the stream is already initialized). 
The application that I am working with is calling snd_pcm_hw_params each 
time it plays a sample.  The following patch makes things work for me 
(actually the app still doesn't work because it uses poll() in a way that 
is incompatible with the pulse plugin, but that is a separate issue, and I 
don't know if it should be considered a bug in the plugin.)

--- pulse/pcm_pulse.c.orig	2007-11-08 15:13:12.000000000 -0500
+++ pulse/pcm_pulse.c	2007-11-08 15:13:12.000000000 -0500
@@ -497,7 +497,7 @@
      assert(pcm->p);

      //Resolving bugtrack ID 0003470
-    if(!(base && snd_pcm_state(base) == SND_PCM_STATE_PREPARED))
+    if(!(base && (snd_pcm_state(base) == SND_PCM_STATE_PREPARED || snd_pcm_state(base) == SND_PCM_STATE_SETUP)))
      	assert(!pcm->stream);

      pa_threaded_mainloop_lock(pcm->p->mainloop);

--

I couldn't add this to the bug because it was marked as resolved.

Any comments?  Or is the app behaving in a way that is counter to the 
specification?

Also, I'm still encountering bug 2601 (a separate assert failure that 
happens if period_size == 0) even with the patch to pcm_ioplug.c.  I think 
that PERIOD_TIME and PERIODS need to be constrained; I added a couple of 
comments to the bug.

Thanks,

-- Mike Gorse / AIM:linvortex / http://mgorse.freeshell.org --


More information about the Alsa-devel mailing list