[pulseaudio-discuss] cannot control input devices from pavucontrol + crashes in recording tab

Peter Hercek phercek at gmail.com
Tue Dec 28 13:36:24 PST 2010


On 12/28/2010 09:28 PM, Colin Guthrie wrote:
> 'Twas brillig, and Peter Hercek at 28/12/10 19:58 did gyre and gimble:
>> Yes, it is quite usable for me. But the main reason is that I almost
>> always run an image in virtual box which keeps one connection always
>> active when it runs.
>>
>> I can run it without x11-publish and if I do not mess with it will work
>> fine ... till I do not start some other application using the pulseaudio
>> server. I did more tests and looks like any application (excepet the
>> line-in loopback itlsef) using the server will make it exit 20 seconds
>> after it is finished. This is even when I do not have suspend-on-idle
>> loaded.
>>
>> I thought the only expection is pacmd which would cause the server to
>> exit immediately. I was wrong. I used command exit as a way to quit
>> pacmd but that tells the server to exit too. When I finished pacmd with
>> ^D it behaved as all the rest of the pulseaudo server clients.
>>
>> My hypothesis would be that x11-publish somehow uses the server which
>> starts the 20 sec countdown. The rest of the modules I have loaded do
>> not do this. Any apllication connecting the server starts 20 sec
>> countdown too (when it finishes). Loopback cannot keep the server used
>> (so I think it should keep it used if it is not muted).
>>
>> As for as the module-x11-xsmp. I do not use it. I also to not use any
>> desktop environment. I have only the bare xserver, fluxbox, and a few of
>> x11 apps installed. Minimalistic environment, nothing fancy.
>
> Ahhh, right, then this last bit is the telling thing. This is
> technically expected behaviour. PA only stays alive when it's needed. It
> considers itself "needed" when an external client connects. e.g. some
> application that uses PA in some capacity.
>
> When no application has expressed and interest in using PA for 20s, then
> it exits. This is intended behaviour and is what the setting
> exit-idle-time in daemon.conf (see "man pulse-daemon.conf" for details)
> controls.
>
> Normally, PA will be kept alive for the duration of the user's X11
> session by loading a special PA module (module-x11-xsmp) to connect to
> the X11 Session Manager. It allows PA to stay alive and not exit for the
> duration of the X11 session. If you do not run a session manager,
> obviously this module in PA cannot be loaded and PA will exit after 20s.

Should it exit even when suspend-on-idle is not loaded?
Well it is named suspend-on-idle and not exit-on-idle ... so maybe it 
should...


> Now you could argue that module-loopback should actually prevent idle
> timeout. I'd be tempted to agree with this, but there are probably other
> folk that would say that's a bad idea as it's often a "hidden" feature
> and we'd have people asking why their PA server is not exiting after the
> timeout!

I do not mind if it by default does exit even when loopback is loaded 
and active. But there should be a way to prevent the exit (because it 
results in loss of sound when the loopback is used). Maybe I can achieve 
it by somehow manually loading module-x11-xsmp ... so that I can pretend 
I'm like gnome/kde folks?


> As for an immediate exit when used in combination of module-x11-publish,
> can you confirm that this immediate exit was just due to you manually
> telling the server to exit by typing "exit" into pacmd?
The immediate exit was there just because I used "exit" command in 
pacmd. This is regardless of x11-publish ussage. My fault. I should have 
read the help first and not expect it behaves like other applications 
(e.g. mathomatic, calc). Maybe you can rename it to exit-server so that 
it is clear what is being exited ... I do not expect you do this :-)

For a while I thought that x11-publish still makes a difference:
* when x11-publish is loaded then the server exitst after 20 seconds if 
it is used by module-loopback only
* when x11-publish is not loaded then the servr does not exit after 20 
... or any number of seconds regardless whether it is used by 
module-loopback or not, but it exits after 20 secondf after the server 
is used by something else than module-loopback

Now I know I was wrong. I achieved loading of x11-publish by using 
start-pulseaudio-x11 which (as I see now) is script starting the server 
and then calling pactl load-module module-x11-publish "display=$DISPLAY".
This pactl call must be the ussage which starts the 20 seconds countdown 
when I used x11-publish.

I can see why the 20 seconds (or other number of seconds defined in the 
settings) countdown should not start immediately after server is up - 
regardles of whether it was already used or not. It is probably there to 
prevent races and I guess it is part of the protocol. But it confused me 
quite a bit.


> If so, then things are all working as expected (albeit with the
> module-loopback not preventing an idle timeout of the daemon which
> should likely be addressed somehow - likely a relatively simple patch to
> module-loopback.c).
I'm cool with any way which allows me to prevent the server exit when it 
is used by module-loopback only. It may be done by module-loopback 
actually telling the server it is being used or it can be done by some 
switch/option/argument to module-loopback (looks like it is possible to 
have them so I do not know how to specify it now) or a switch to server 
or loading some module do-not-exit-on-idle or whatever :-) I do not 
really care, it just sucks big time when I need to have some other 
(visible) app using pulseaudio server to keep it running when I need 
only module-loopback active.

Thanks for figuring it out,
  Peter.





More information about the pulseaudio-discuss mailing list