All of lore.kernel.org
 help / color / mirror / Atom feed
* Recording problem with pulse plugin
@ 2008-10-15 10:14 Takashi Iwai
  2008-10-25 15:22 ` Lennart Poettering
  0 siblings, 1 reply; 3+ messages in thread
From: Takashi Iwai @ 2008-10-15 10:14 UTC (permalink / raw)
  To: Lennart Poettering; +Cc: alsa-devel

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@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;

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-10-27 15:02 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-15 10:14 Recording problem with pulse plugin Takashi Iwai
2008-10-25 15:22 ` Lennart Poettering
2008-10-27 15:02   ` Takashi Iwai

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.