[pulseaudio-discuss] [PATCH v8 06/12] bluetooth: Set correct endianity of audio samples for SBC codec

Pali Rohár pali.rohar at gmail.com
Sat Apr 6 09:16:01 UTC 2019

Pulseaudio SBC codec defines that audio samples are in PA_SAMPLE_S16LE
format which is little endian. But libsbc library expects audio samples by
default in host endianity which is big endian on big endian system. So SBC
support on big endian system is broken. To fix this problem tell libsbc
library that audio samples are in little endian to match PA_SIMPLE_S16LE
sample format.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=91359
 src/modules/bluetooth/a2dp-codec-sbc.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/modules/bluetooth/a2dp-codec-sbc.c b/src/modules/bluetooth/a2dp-codec-sbc.c
index 523350b6d..98d1888ca 100644
--- a/src/modules/bluetooth/a2dp-codec-sbc.c
+++ b/src/modules/bluetooth/a2dp-codec-sbc.c
@@ -314,6 +314,7 @@ static void set_params(struct sbc_info *sbc_info) {
     sbc_info->sbc.mode = sbc_info->mode;
     sbc_info->sbc.allocation = sbc_info->allocation;
     sbc_info->sbc.bitpool = sbc_info->initial_bitpool;
+    sbc_info->sbc.endian = SBC_LE;
     sbc_info->codesize = sbc_get_codesize(&sbc_info->sbc);
     sbc_info->frame_length = sbc_get_frame_length(&sbc_info->sbc);

More information about the pulseaudio-discuss mailing list