[pulseaudio-discuss] [PATCH] bluetooth: Don't abort on SBC decoding error

Tanu Kaskinen tanu.kaskinen at linux.intel.com
Fri Jan 17 01:33:27 PST 2014


On Thu, 2014-01-16 at 10:17 +1100, James Bunton wrote:
> ---
>  src/modules/bluetooth/module-bluez5-device.c |   12 +++++++-----
>  1 file changed, 7 insertions(+), 5 deletions(-)

Thanks for the patch! What's the background here? Are there products on
the market that send invalid SBC data?

It seems that we update timing stuff before the decoding is done, which
means that with your change the timing information behaves as if we
received valid data, but the audio stream from the source doesn't
actually progress. To fix this mismatch, I think you should move the
timing updates to happen after successful decoding, or alternatively we
should replace the invalid data with a matching amount of silence.
(Something to note about the timing code is that it's currently actually
very broken, because "u->read_index += (uint64_t) l" in
a2dp_process_push() treats l as if it referred to the length of the
decoded PCM data, while in reality it refers to length of the RTP header
+ SBC data.)

If this change is justified, the same change should be done in
module-bluez4-device.c too.

-- 
Tanu



More information about the pulseaudio-discuss mailing list