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); -- 2.11.0 _______________________________________________ pulseaudio-discuss mailing list pulseaudio-discuss@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss