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

Maxim Levitsky maximlevitsky at gmail.com
Thu Aug 6 13:27:11 PDT 2009


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.



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