[pulseaudio-discuss] Can pulsaudio client API become a crossplatform standard ?
tanuk at iki.fi
Sat Apr 15 18:39:29 UTC 2017
On Sat, 2017-04-15 at 15:28 +0200, Enrico Weigelt, metux IT consult
> Hi folks,
> I'm just wondering whether something like PA's client API could
> ever become a real crossplatform standard API.
> The problem behind is there're tons of audio APIs - most of them
> doing more or less the same. So application developers have a hard
> time picking the right one, and dist maintainers have to put everything
> together in a way that their users are happy with that.
> Obviously, one complete audio system that rules 'em all won't work.
> Far too complex, and the requirements and wishes of all the developers
> and users out there are just too different.
> But, maybe we could settle to some common API (and later ABIs),
> which only sets the interface to the client application - isolating
> questions which daemon (if any at all), etc.
> For that to work, we'd need to give the API it's own life and have
> potentially many different implementations of that API. Something
> like POSIX for audio :o
> * have a official specification, which must be strict and precise
> (the current docs are good for application developers but far
> from a complete spec).
> * a separate API package that only contain the public interface
> (basicly, just some headers - a bit like the xorg-proto-* packages),
> which applications as well as implementations import
> * a compatiblity testsuite, which any implementation could be validated
> * the first implementation, of course, would be PA itself, but others
> are free to provide their own ones (maybe somebody wants an thin
> one that directly bridges to platform API - eg. in embedded world)
> * from that point on, most applications (that don't have special
> requirement that need something like eg. jack, etc) could directly
> sit ontop of that API (instead of carrying around additional
> adaption layers and possibly platform specific code), while dist
> maintainers and sysops are free to choose whatever implementation
> they really want in their particular usecase.
> What do you think about that ?
The feature set of libpulse will necessarily track the features of the
pulseaudio daemon. Is the idea to take a subset of the libpulse API and
make that work on non-pulseaudio platforms? What makes libpulse a
better starting point for a cross-platform API than some of the
existing cross-platform APIs?
More information about the pulseaudio-discuss