aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPali Rohár <pali.rohar@gmail.com>2019-04-06 11:16:01 +0200
committerTanu Kaskinen <tanuk@iki.fi>2019-04-12 15:09:49 +0300
commit1b6e5b8554c46c7a228a9c0d65d287ac0e823b83 (patch)
tree2fc930d9018de8cabe6d522a262011faa73cf060
parent63add82c82df6da35643f15079f281145ee73745 (diff)
downloadpulseaudio-1b6e5b8554c46c7a228a9c0d65d287ac0e823b83.tar.gz
bluetooth: Set correct endianity of audio samples for SBC codec
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
-rw-r--r--src/modules/bluetooth/a2dp-codec-sbc.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/modules/bluetooth/a2dp-codec-sbc.c b/src/modules/bluetooth/a2dp-codec-sbc.c
index 290077c7..cdc20d7f 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);