[FFmpeg-devel] avcodec/aacenc: Compatibility with Bluetooth A2DP headsets
Andrey Semashev
andrey.semashev at gmail.com
Fri Jan 3 01:18:23 EET 2020
On 2019-12-24 01:57, Andrey Semashev wrote:
> Hi,
>
> I'm trying to add support for AAC to PulseAudio with regard to Bluetooth
> A2DP. I'm using libavcodec to encode AAC content and then packetize it
> into RTP MP4-LATM packets, as required by A2DP spec. My current
> implementation allows to switch between libfdk-aac and built-in AAC
> encoder backends.
>
> With libfdk-aac, everything's working well, the encoded audio is
> correctly played by the BT headset (EOZ Air). But with the built-in
> encoder I can hear occasional audio drop outs and artefacts like clicks
> and weird stereo effects. I'm assuming this is because some decoding
> errors on the headset, but obviously I don't have any kind of debug info
> from it. When the same content is played (e.g. the same song) on
> different runs, the artefacts appear at roughly the same places, so I'm
> assuming that the problem is input content-related.
>
> Given that libfdk-aac output is played without artefacts by the device,
> I'm assuming my packetization code is correct. I also tried to debug and
> analyze its output and didn't find anything out of order. This makes me
> believe the problem is in the built-in encoder.
>
> How should I proceed about this problem? What kind of information would
> be useful to the aacenc developer(s) to debug this? Is there any
> information as to how conforming aacenc is to the AAC spec and other,
> especially hardware implementations?
>
> For a start, here is my code:
>
> https://gitlab.freedesktop.org/andrey.semashev/pulseaudio/blob/a2dp-codecs-aac/src/modules/bluetooth/a2dp-codec-aac.c
>
>
> libavcodec encoder context initialization is at:
>
> https://gitlab.freedesktop.org/andrey.semashev/pulseaudio/blob/a2dp-codecs-aac/src/modules/bluetooth/a2dp-codec-aac.c#L685
>
>
> Thanks.
Ping?
More information about the ffmpeg-devel
mailing list