[pulseaudio-discuss] Pulseaudio 0.16-test4 - my experience

Maxim Levitsky maximlevitsky at gmail.com
Thu Aug 6 15:08:32 PDT 2009


On Thu, 2009-08-06 at 23:55 +0300, Maxim Levitsky wrote:
> On Thu, 2009-08-06 at 23:27 +0300, Maxim Levitsky wrote:
> > On Thu, 2009-08-06 at 16:20 +0200, Lennart Poettering wrote:
> > > On Thu, 06.08.09 17:06, Maxim Levitsky (maximlevitsky at gmail.com) wrote:
> > > 
> > > > So I carefully set everything up for it, and it now works (except 32 bit
> > > > compat libraries for skype )
> > > > 
> > > > Speaking of 32 bit compat libraries, is there a tutorial how to compile
> > > > these? (It isn't trivial, since I need alsa, pa libraries and plugins
> > > > for alsa)
> > > 
> > > No clue. Multilib is a desaster. If you want this at all, use what
> > > your distro provides you with.
> > > 
> > > > 1 - all sounds played through libcanberra (using pulse backend) (which
> > > > was installed from source (everything from latest git branches), play on
> > > > right speaker only, and this is confirmed by pavucontrol which display
> > > > the volume for notify sound briefly (which I consider a bug on its own,
> > > > because this makes it impossible to change a stream location - clicking
> > > > on the stream chooser button, takes focus out of it, thus prevents
> > > > device list from being shown)
> > > > It displays "front right"
> > > 
> > > Hmm, is it possible that this is related to spacial events sounds?
> > > i.e. if you trigger them on the right side of the screen they are
> > > moved to your right speakers? If you trigger them on the left side of
> > > the screen they are triggered on the left side? If that's the case,
> > > then this is a feature, not a bug.
> > > 
> > > Otherwise, I have never heard of this bug. If you remove
> > > ~/.pulse/*stream-volumes.tdb and restart PA. Does that fix the issue?
> > > 
> > > > 2 - flat volumes are evil. It feels like a feature being removed. Now
> > > > changing a volume for a stream directly affects main volume, and alsa
> > > > volume through it.
> > > > I though that one of main PA features, was a volume control per stream.
> > > > Could you explain me what flat volumes are (I know that turning them off
> > > > fixes this issue)?
> > > 
> > > The device volume is fixed to max of all the stream volumes. That's
> > > all.
> > > 
> > > If you have one stream at -2dB, one at -1dB and one at -3dB then the
> > > device volume will be fixed to -1dB. if you then scale the device
> > > volume this will be reflected equally on the stream volumes. If you
> > > change a stream volume this will only then affect the device volume if
> > > it is the "loudest" one which you modify.
> > > 
> > > It's actually pretty easy. 
> > > 
> > > > 3 - PA sometimes dies, and it is impossible to make it log to a file,
> > > > other that writing a wrapper script. Wrapper script doesn't help much
> > > > ether, as new autostart feature, tries to launch many copies of PA, and
> > > > only one starts. This creates a lots of 'false positives'
> > > > I can disable autostart, but then, I need to write a tool to autostart
> > > > and restart it, maybe this is the right solution.
> > > > (syslog doesn't seem to be able to put an output of a daemon to a file.
> > > > of course I can grep the log files, but having a clean seperate log
> > > > files seems to be better.
> > > 
> > > Please set log-level=debug in daemon.conf and the debug output should
> > > end up in syslog.
> > > 
> > > Which distribution is this? For tsched to work fine you need a *very*
> > > recent kernel (i.e. as in "not released yet") which provides a fixed
> > > snd_pcm_avail(). 
> > It is disabled btw, by ubuntu patches I carefully applied from ubuntu
> > package of karamic.
> > 
> > > 
> > > https://bugzilla.redhat.com/show_bug.cgi?id=506075
> > > https://bugzilla.redhat.com/show_bug.cgi?id=501769
> > > 
> > > > And recently I did another update of alsa library, and PA.
> > > > Now controlling the sound via gstreamer (from gnome-volume-control, and
> > > > other places like applet, sound wheel) is broken, now
> > > > it works like that, first slider seems to work, but then it stops
> > > > updating the volume, untill I close and start mixer again, (or select a
> > > > different device from device list in gnome-volume-control, and back)
> > > > and it repeats
> > > 
> > > Sounds as if PA simply dies due to the mentioned snd_pcm_avail()
> > > problems.
> > 
> > I narrowed it down to:
> > 
> > 
> > 
> > #define UPDATE_DELAY 50000
> > 
> > static void
> > restart_time_event (GstPulseMixerCtrl * c)
> > {
> >   struct timeval tv;
> >   pa_mainloop_api *api;
> > 
> >   g_assert (c);
> > 
> >   if (c->time_event)
> >     return;
> > 
> >   /* Updating the volume too often will cause a lot of traffic
> >    * when accessing a networked server. Therefore we make sure
> >    * to update the volume only once every 50ms */
> > 
> >   api = pa_threaded_mainloop_get_api (c->mainloop);
> > 
> >   c->time_event =
> >       api->time_new (api, pa_timeval_add (pa_gettimeofday (&tv),
> > UPDATE_DELAY),
> >       gst_pulsemixer_ctrl_timeout_event, c);
> > }
> > 
> > 
> > 
> > 
> > restart_time_event is called always, but 
> > gst_pulsemixer_ctrl_timeout_event isn't called when volume gets stuck.
> 
> 
> On top of that, there seems to be two pulse threads.
> One of which (thread that is created when opening a PA device in mixer.
> gets stuck in poll. when I put a gdb tracing breakpoint there, bug
> disappeared.) Maybe PA gets stuck with too much requests. Bug happens
> without flat volumes as well
> 
> 
> 
> 71	    /* Before entering poll() we unlock the mutex, so that
> 72	     * avahi_simple_poll_quit() can succeed from another thread. */
> 73	
> 74	    pa_mutex_unlock(mutex);
> 75	    r = poll(ufds, nfds, timeout);
> 76	    pa_mutex_lock(mutex);
> 77	
> 78	    return r;

and poll doesn't return due to that:

#1  0x00007fe4567ca290 in poll_func (ufds=0x1b4a890, nfds=2,
timeout=1271310319, userdata=0x1bf57a0) at pulse/thread-mainloop.c:75


it receives too large timeout.
also restart_time_event is called, but does nothing, as current even
isn't called forever.


> 
> 
> 
> 
> > 
> > 
> > 
> > Best regards,
> > 	Maxim Levitsky
> > 
> > 
> > > 
> > > Also note that recent g-v-c does not user Gst anymore, but connects
> > > directly to pa. Make sure to use that as Gst's mixer abstraction is
> > > uh, less than awesome.
> > > 
> > > Lennart
> > > 
> > 
> 




More information about the pulseaudio-discuss mailing list