According to A2DP specification; section SBC; Codec Specific Information Elements; Minimum / Maximum Bitpool Value, range for Bitpool value is from 2 to 250. Decoder shell support 2 as Minimum Bitpool Value and High Quality Bitpool value as the Maximum Bitpool Value at a minimum. A2DP defines maximal High Quality Bitpool value as 53. Therefore instead of SBC_MAX_BITPOOL macro, defines two macros, one for minimal value of "Maximum Bitpool Value" and maximal value of "Maximum Bitpool Value". I have no idea what is origin of value 64 as it does not match minimum nor maximum bitpool value. Lot of headsets declares maximum value to 53, so use this value also in android/hal-audio-sbc.c --- android/hal-audio-sbc.c | 6 +++--- profiles/audio/a2dp-codecs.h | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/android/hal-audio-sbc.c b/android/hal-audio-sbc.c index 80e271ed6..541b2d6a7 100644 --- a/android/hal-audio-sbc.c +++ b/android/hal-audio-sbc.c @@ -92,7 +92,7 @@ static const a2dp_sbc_t sbc_presets[] = { .block_length = SBC_BLOCK_LENGTH_4 | SBC_BLOCK_LENGTH_8 | SBC_BLOCK_LENGTH_12 | SBC_BLOCK_LENGTH_16, .min_bitpool = SBC_MIN_BITPOOL, - .max_bitpool = SBC_MAX_BITPOOL + .max_bitpool = SBC_MAX_BITPOOL_MIN, }, { .frequency = SBC_SAMPLING_FREQ_44100, @@ -101,7 +101,7 @@ static const a2dp_sbc_t sbc_presets[] = { .allocation_method = SBC_ALLOCATION_LOUDNESS, .block_length = SBC_BLOCK_LENGTH_16, .min_bitpool = SBC_MIN_BITPOOL, - .max_bitpool = SBC_MAX_BITPOOL + .max_bitpool = SBC_MAX_BITPOOL_MIN, }, { .frequency = SBC_SAMPLING_FREQ_48000, @@ -110,7 +110,7 @@ static const a2dp_sbc_t sbc_presets[] = { .allocation_method = SBC_ALLOCATION_LOUDNESS, .block_length = SBC_BLOCK_LENGTH_16, .min_bitpool = SBC_MIN_BITPOOL, - .max_bitpool = SBC_MAX_BITPOOL + .max_bitpool = SBC_MAX_BITPOOL_MIN, }, }; diff --git a/profiles/audio/a2dp-codecs.h b/profiles/audio/a2dp-codecs.h index 0bdd29110..f31f3a311 100644 --- a/profiles/audio/a2dp-codecs.h +++ b/profiles/audio/a2dp-codecs.h @@ -53,8 +53,9 @@ #define SBC_ALLOCATION_SNR (1 << 1) #define SBC_ALLOCATION_LOUDNESS 1 -#define SBC_MAX_BITPOOL 64 #define SBC_MIN_BITPOOL 2 +#define SBC_MAX_BITPOOL_MIN 53 +#define SBC_MAX_BITPOOL_MAX 250 #define MPEG_CHANNEL_MODE_MONO (1 << 3) #define MPEG_CHANNEL_MODE_DUAL_CHANNEL (1 << 2) -- 2.11.0