Blame 1.0.14-pulse-SND_PCM_STATE_PREPARED.patch
|
Eric Moret |
cc2ded4 |
diff -up alsa-plugins-1.0.14/pulse/pcm_pulse.c.pulse alsa-plugins-1.0.14/pulse/pcm_pulse.c
|
|
Eric Moret |
cc2ded4 |
--- alsa-plugins-1.0.14/pulse/pcm_pulse.c.pulse 2008-01-08 09:34:40.000000000 -1000
|
|
Eric Moret |
cc2ded4 |
+++ alsa-plugins-1.0.14/pulse/pcm_pulse.c 2008-01-08 09:38:25.000000000 -1000
|
|
Eric Moret |
cc2ded4 |
@@ -512,14 +512,16 @@ finish:
|
|
Eric Moret |
cc2ded4 |
static int pulse_hw_params(snd_pcm_ioplug_t *io, snd_pcm_hw_params_t *params)
|
|
Eric Moret |
cc2ded4 |
{
|
|
Eric Moret |
cc2ded4 |
snd_pcm_pulse_t *pcm = io->private_data;
|
|
Eric Moret |
cc2ded4 |
+ snd_pcm_t *base = io->pcm;
|
|
Eric Moret |
cc2ded4 |
int err = 0;
|
|
Eric Moret |
cc2ded4 |
|
|
Eric Moret |
cc2ded4 |
assert(pcm);
|
|
Eric Moret |
cc2ded4 |
assert(pcm->p);
|
|
Eric Moret |
cc2ded4 |
|
|
Eric Moret |
cc2ded4 |
- pa_threaded_mainloop_lock(pcm->p->mainloop);
|
|
Eric Moret |
cc2ded4 |
+ if (!(base && snd_pcm_state(base) == SND_PCM_STATE_PREPARED))
|
|
Eric Moret |
cc2ded4 |
+ assert(!pcm->stream);
|
|
Eric Moret |
cc2ded4 |
|
|
Eric Moret |
cc2ded4 |
- assert(!pcm->stream);
|
|
Eric Moret |
cc2ded4 |
+ pa_threaded_mainloop_lock(pcm->p->mainloop);
|
|
Eric Moret |
cc2ded4 |
|
|
Eric Moret |
cc2ded4 |
pcm->frame_size = (snd_pcm_format_physical_width(io->format) * io->channels) / 8;
|
|
Eric Moret |
cc2ded4 |
|