[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

    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?


More information about the pulseaudio-discuss mailing list