After a quick glance into the code (without much knowledge about
pulseaudio), I found that pulseaudio is just using sbc library to do the
encode.
From a2dp_process_render():
---
while (PA_LIKELY(to_encode > 0 && to_write > 0)) {
ssize_t written;
ssize_t encoded;
encoded = sbc_encode(&sbc_info->sbc,
p, to_encode,
d, to_write,
&written);
---
So there is really nothing blocking us to implement other codec.
For AAC codec, just (well, without tons of preparation and setup) call
faacEncEncode() will be the core part.
Copyright sh*t will only restrict the related library, not the PA module.
(So if we could create a aptX codec library, then it will be possible to
support)
While the really hard part would be the preparation part, including
creating a structure for faac encoder to contain a faacEncHandle and
other needed info from sample rate to profile, just like sbc_info_t.
Although I have a basic idea of what to do, I'm still figuring out how
to handle all the details.
Like how to create an endpoint for AAC codec (codec 0 is registered at
register_endpoint, but shouldn't it be A2DP_CODEC_SBC instead of
intermediate number 0?)
And how pulseaudio is handling the extra latency? Is PA infrastructure
handling them well
so that we don't need to touch it?
Anyway, it'll take some time for me to get familiar with PA
infrastructures, from dbus to PA internal helper functions.
On 2017年07月06日 21:32, Tanu Kaskinen wrote:
On Thu, 2017-07-06 at 07:54 +0800, Qu Wenruo wrote:
Hi,
I found that even my bluetooth headset support AAC (A2DP_CODEC_MPEG24)
codec, when using pulseaudio-bluetooth module, only the basic SBC is
used in negotiation.
I checked the source of bluetooth module, but only SBC is implemented.
Any plan to support extra codec like MP3 (A2DP_CODEC_MPEG12) and ATRAC?
This topic comes up every once in a while, but nobody has offered to
implement the feature.
If there is any developer docs, that will help a lot.
Thanks,
Qu
I don't think there are any reasons why more
codecs couldn't be supported.
_______________________________________________
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss