Lennart Poettering wrote: > On Tue, 20.01.09 00:45, Aleksander Kamenik (aleksander at krediidiinfo.ee) wrote: > >>> One thing you might try before you file that bug is commenting the >>> invocation of snd_pcm_hw_params_set_periods_integer() in that >>> function, recompiling and testing whether that changes the behaviour. >> I guess your idea was to include a goto finish; right before the >> problematic code with snd_pcm_hw_params_set_periods_near() by commenting >> the 'if ((ret = snd_pcm_hw_params_set_periods_integer(pcm_handle, >> hwparams)) < 0)' line? > > No, my idea was to comment the two lines that deal with > snd_pcm_hw_params_set_periods_integer(), as I said. > > i.e., comment these two lines: > > <snip> > if ((ret = snd_pcm_hw_params_set_periods_integer(pcm_handle, hwparams)) < 0) > goto finish; > </snip> Oh, that's how I understood it at the beginning and tried it. This didn't do anything at all, cause the comparison fails and goto finish; is not executed. I got exactly the same errors at the same place when running gdb. And the same behaviour. Of course I might have missed something, but it looked exactly like my previous run with the original code. That's why I thought you meant something else. > >> However I also tried commenting out the >> snd_pcm_hw_params_set_periods_near() function calls. Thanks to this my >> USB sound card popped up in the pulse audio volume control. My >> integrated nvidia chip worked. > > Ah, that's interesting. Apparently your sound card does not support > integral number of periods. Weird thing. Could you please paste the > output of "pulseaudio -vvvv" with that minimal commenting change made? Right. Starting up pulseaudio with this patch: diff -Naur pulseaudio-0.9.14/src/modules/alsa-util.c pulseaudio-0.9.14.changed/src/modules/alsa-util.c --- pulseaudio-0.9.14/src/modules/alsa-util.c 2009-01-13 01:11:38.000000000 +0200 +++ pulseaudio-0.9.14.changed/src/modules/alsa-util.c 2009-01-20 00:25:46.000000000 +0200 @@ -369,11 +369,11 @@ if ((ret = snd_pcm_hw_params_set_periods_integer(pcm_handle, hwparams)) < 0) goto finish; - +/* if (_periods > 0) { - /* First we pass 0 as direction to get exactly what we asked - * for. That this is necessary is presumably a bug in ALSA */ + * First we pass 0 as direction to get exactly what we asked + * for. That this is necessary is presumably a bug in ALSA * dir = 0; if ((ret = snd_pcm_hw_params_set_periods_near(pcm_handle, hwparams, &_periods, &dir)) < 0) { @@ -385,7 +385,7 @@ } } } - +*/ if (_period_size > 0) if ((ret = snd_pcm_hw_params_set_buffer_size_near(pcm_handle, hwparams, &buffer_size)) < 0) goto finish; Result: http://pastebin.com/m5eb3e962 > >> I could send the output stream to the usb card, though no sound would >> come out nor would the sliders move to indicate playback. Though that >> didn't crash anything and I could transfer the stream back to the built >> in sound chip which works. >> >> But when tried changing the volume of the USB card, pulseaudio >> crashed. > > It crashed? How? Please provide a "pulsaudio -vvvv" output for the > crash. And also a stack trace: > > http://fedoraproject.org/wiki/StackTraces I'm unable to reproduce it unfortunately. I'll send the logs once I'll do though. About the how part. I tried changing the USB cards volume slider and suddenly pavucontrol as well as amarok which was playing wouldn't respond. I had to kill pulseaudio and pavucontrol with the killall command. Amarok was killed too. Though amarok crashes always when the sound server goes away, so that's no indicator. Unfortunately I think I was running pulseaudio without the -vvvv switch. I'll try to make a habit of running pulseaudio with -vvvv and syslog logging from gdb. Regards, -- Aleksander Kamenik System Administrator Krediidiinfo AS an Experian Company Phone: +372 665 9649 Email: aleksander at krediidiinfo.ee http://www.krediidiinfo.ee/ http://www.experiangroup.com/