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.
_______________________________________________
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss