On Thursday 21 June 2018 05:45:39 Arun Raghavan wrote: > On Wed, 20 Jun 2018, at 9:05 PM, Jan Alexander Steffens wrote: > > On Mon, Jun 18, 2018, 09:42 Pali Rohár <[email protected]> wrote: > > > > > On Sunday 17 June 2018 23:48:42 Arun Raghavan wrote: > > > > On Sun, 17 Jun 2018, at 4:01 AM, Pali Rohár wrote: > > > > > Hi! As you may know lot of bluetooth headsets support not only SBC, > > > > > but > > > > > also aptX codec. And new version of ffmpeg (4.0) has native aptX and > > > > > aptX HD encoder and decoder. AptX codec itself is proprietary, but > > > > > ffmpeg has clean-room implementation based on expired patent. What > > > about > > > > > adding support for aptX via ffmpeg into pulseaudio? > > > > > > > > > > -- > > > > > > > > I'd actually like to delete the SBC code and replace it with a generic > > > GStreamer bin. That would allow us to be codec agnostic, and support any > > > of > > > the codecs that are supported by GStreamer (which includes those that > > > ffmpeg provides). > > > > > > This does not sound like a good idea. The only two relevant bluetooth > > > codecs for most people are SBC and aptX. > > > > > > > Don't forget AAC. I've seen this one a lot in devices meant for use with > > iPhones, which apparently don't have aptX. GStreamer has a lot of encoders > > for it so this shouldn't be a problem unless it's some strange AAC variant. > > > > There's also LDAC but I haven't seen it on a device yet. > > Right, there are multiple codecs that we can support, and we should not tie > ourselves to a specific implementation. For this reason, and more generally, > I'd like to have PulseAudio not have to deal with any codec implementations > at all (nor even RTP, if we can help it), hence my preference to use > something generic in the form of GStreamer.
This is a good idea to let external service to do codec-specific functions... I agree that it simplify pulseaudio code and other things (like proving new codec by external library -- if properly implemented), but in bluetooth context we should look at questions: 1) Has gstreamer support for SBC codec? 2) Has gstreamer support for aptX codec? These are two major codecs supported by bluetooth headsets. Answer is: NO (SBC is now provided in the "bad" set which is not pre-installed by gstreamer) So gstreamer in current state is not very useful for pulseaudio. Important are also MPEG1/2 (which are defined as optional by A2DP) and also AAC and LDAC which Jan wrote. But gstreamer has again only plugins in "bad" and "ugly" sets for them; nothing preinstalled by default. To have working bluetooth support in pulseadio, pulseaudio needs to use external library for encoding which *always* provides support for SBC. And not only if user manually installs some special plugin for 3rd party library. (And not only SBC, but also those other aptX, MPEG1/2, AAC and LDAC codecs) -- Pali Rohár [email protected] _______________________________________________ pulseaudio-discuss mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
