[alsa-devel] Recording problem with pulse plugin

Takashi Iwai tiwai at suse.de
Wed Oct 15 12:14:19 CEST 2008


Hi Lennart,

I got a bug report about the recording with pulse alsa-plugin.
It gets just -EIO error.

I checked it, and can reproduce it actually.  The problem appears to
happen since 1.0.18rc1, and the affecting commit is:

  commit 90c32999189cf6f5c63f40dadb8076eca379713b
  Author: Lennart Poettering <mznyfn at 0pointer.de>
  Date:   Fri Jul 18 21:45:47 2008 +0200

      send both an uncork and a trigger in _start()

The problem is that pa_stream_trigger() returns NULL for capture.
I made a quick fix for this (the patch attached below), but not
entirely sure whether it's the right thing.  Please check.


thanks,

Takashi

diff --git a/pulse/pcm_pulse.c b/pulse/pcm_pulse.c
index a5f794f..3d15ff0 100644
--- a/pulse/pcm_pulse.c
+++ b/pulse/pcm_pulse.c
@@ -145,18 +145,15 @@ static int pulse_start(snd_pcm_ioplug_t * io)
 
 	u = pa_stream_trigger(pcm->stream, pulse_stream_success_cb,
 			      pcm->p);
-	if (!u) {
-		pa_operation_unref(o);
-		err = -EIO;
-		goto finish;
-	}
 
 	pcm->underrun = 0;
 	err_o = pulse_wait_operation(pcm->p, o);
-	err_u = pulse_wait_operation(pcm->p, u);
+	if (u)
+		err_u = pulse_wait_operation(pcm->p, u);
 
 	pa_operation_unref(o);
-	pa_operation_unref(u);
+	if (u)
+		pa_operation_unref(u);
 
 	if (err_o < 0 || err_u < 0) {
 		err = -EIO;


More information about the Alsa-devel mailing list