Pulseaudio in F12

Paulo Cavalcanti promac at gmail.com
Tue Dec 1 10:34:29 UTC 2009


On Mon, Nov 30, 2009 at 8:36 AM, Michal Schmidt <mschmidt at redhat.com> wrote:

> Dne Mon, 30 Nov 2009 11:12:38 +0100 Michael Schwendt napsal(a):
> > On Mon, 30 Nov 2009 10:38:15 +0100, Michal wrote:
> >
> > > Dne Mon, 30 Nov 2009 07:05:28 -0200 Paulo Cavalcanti napsal(a):
> > > > Thanks for the explanation.
> > > >
> > > > At least 3 applications are not restoring the volumes:
> > > >
> > > > xmms, mplayer and audacious.
> > >
> > > Interesting. Maybe these programs try to be too clever and force the
> > > volume themselves.
> >
> > It's not an attempt at being "too clever", but several upstream
> > developers feel lost in what they have to do or what they have not to
> > do to get something right. Temporarily, Audacious devlopers have
> > dropped their "pulse_audio" driver (originally from XMMS) even, since
> > they were of the impression that "it didn't work anyway". Ubuntu
> > users currently feel punished with Pulse Audio. With a first bunch of
> > fixes [for volume issues in Fedora 12 Rawhide, volume decreased for
> > every new song], the driver was restored again for Audacious 2.2
> > development. With more recent changes in Pulse Audio, it seems, more
> > changes are necessary. But Audacious 2.1 cannot reflect external
> > volume level changes in its UI anyway. Its volume slider cannot move
> > for volume level changes made with external tools. Only the next
> > release can do that, and it suffers from new bugs (such as a bug in
> > alsa-lib that will require an update in Fedora, too).
>
> Thanks for the explanation. Before I saw your reply, I played with
> audacious-plugins and made a kludge to prevent it from forcing 100 %
> volume on startup. It probably breaks something else, I haven't really
> tested it too much.
>
> Notice that the documentation for pa_stream_connect_playback strongly
> recommends passing NULL as volume.
>
> Index: audacious-plugins-fedora-2.1/src/pulse_audio/pulse_audio.c
> ===================================================================
> --- audacious-plugins-fedora-2.1.orig/src/pulse_audio/pulse_audio.c
> +++ audacious-plugins-fedora-2.1/src/pulse_audio/pulse_audio.c
> @@ -666,7 +666,7 @@ static int pulse_open(AFormat fmt, int r
>     pa_stream_set_write_callback(stream, stream_request_cb, NULL);
>     pa_stream_set_latency_update_callback(stream, stream_latency_update_cb,
> NULL);
>
> -    if (pa_stream_connect_playback(stream, NULL, NULL,
> PA_STREAM_INTERPOLATE_TIMING|PA_STREAM_AUTO_TIMING_UPDATE, &volume, NULL) <
> 0) {
> +    if (pa_stream_connect_playback(stream, NULL, NULL,
> PA_STREAM_INTERPOLATE_TIMING|PA_STREAM_AUTO_TIMING_UPDATE, NULL, NULL) < 0)
> {
>         AUDDBG("Failed to connect stream: %s",
> pa_strerror(pa_context_errno(context)));
>         goto unlock_and_fail;
>     }
> @@ -715,6 +715,7 @@ static int pulse_open(AFormat fmt, int r
>     }
>
>     pa_operation_unref(o);
> +#if 0
>     /* set initial volume */
>     if (!(o = pa_context_set_sink_input_volume(context,
> pa_stream_get_index(stream), &volume, NULL, NULL))) {
>         g_warning("pa_context_set_sink_input_volume() failed: %s",
> pa_strerror(pa_context_errno(context)));
> @@ -725,6 +726,7 @@ static int pulse_open(AFormat fmt, int r
>         pa_threaded_mainloop_wait(mainloop);
>     }
>     pa_operation_unref(o);
> +#endif
>
>     do_trigger = 0;
>     written = 0;
>
>
>
Your patch almost worked. Audacious starts at the right volume level.
However, when audacious volume slider is hit for the first time,
the volume goes to the maximum again.

-- 
Paulo Roma Cavalcanti
LCG - UFRJ
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.fedoraproject.org/pipermail/devel/attachments/20091201/130dea05/attachment.html 


More information about the devel mailing list