[pulseaudio-discuss] libpulse clients with no datagram sockets?
Adam Seering
aseering at gmail.com
Sat Jul 23 07:10:15 UTC 2016
Hi all,
I have a bit of an odd question: Is there any pulse client
configuration that does not use datagram sockets at all, internally or
externally?
As background: I'm playing with the new Windows Subsystem for
Linux, which lets you run Linux userspace binaries directly on top of
the NT kernel. (It ships with an Ubuntu 14.04 chroot.) I want my
Linux binaries to be able to play sound. WSL doesn't expose hardware
to the Linux userspace, but it does expose TCP. And there exists a
Windows build of pulseaudio. So I'm thinking, run a Windows
pulseaudio daemon, configure it to listen over TCP, and modify WSL's
/etc/pulse/client.conf to instruct all libpulse-based applications to
connect over TCP.
Nice plan; not-so-simple execution: WSL implements many aspects
of Linux, but its initial release still lacks SOCK_DGRAM sockets.
When I make the required modifications to client.conf, I see the
following in 'strace', followed immediately by an error message and a
failure to play audio:
socketpair(PF_LOCAL, SOCK_DGRAM, 0, 0x21daae0) = -1 ESOCKTNOSUPPORT
(Socket type not supported)
The only reference to socketpair() I can find in the libpulse
source code is in src/pulse/def/h , on "struct pa_spawn_api". Looking
briefly through the source, it looks like the libpulse-based
application might be spinning up a side process of some sort and using
the datagram socket to communicate with that process?
Thanks,
Adam
More information about the pulseaudio-discuss
mailing list