On Sat, 2017-04-15 at 15:28 +0200, Enrico Weigelt, metux IT consult wrote: > 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 > against > * 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? -- Tanu https://www.patreon.com/tanuk