On Mon, 17.08.09 08:49, Takashi Iwai (tiwai@suse.de) wrote:
At Sun, 16 Aug 2009 18:24:35 -0400, Daniel Chen wrote:
Hi,
In https://bugs.launchpad.net/ubuntu/+source/alsa-lib/+bug/412677 we're debugging an issue where snd_pcm_mmap_begin(), at line 6409 with
*offset = *pcm->appl.ptr % pcm->buffer_size;
appears to have pcm->buffer_size == 0. What's the correct approach in handling this corner case?
We could add a sanity check in the function, of course. But relying on it doesn't sound nice.
At least, the caller should be surely at the certain state that the buffer has been set up, i.e. checking whether snd_pcm_state() returns SETUP or better condition.
Hmm, this bug is triggered in PA apparently. PA doesn't call snd_pcm_mmap_begin() before the setup finished completely. Not sure what's going on here, but this smells as if pcm->buffer_size is not properly initialized.
Daniel, does this happen right-away on PA startup? Or does it happen sometime while playing?
Could you get us the output of the PA startup phase when running "pulsaudio -vvvv"? This should show us to which value the buffer_size is initialized in the snd_pcm_t.
Lennart