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;