From 271c217a2c82b92a4d52dcace40bedea227a6c24 Mon Sep 17 00:00:00 2001 From: Ayan Ghosh Date: Fri, 26 Dec 2014 18:18:28 +0530 Subject: [PATCH] Limit Max Bitpool value to SPEC recommended one Preferred bipool for 44.1 KHz sampling rate for SBC codec is considered as 53. Hence limit Max Bitpool value to 53 in setconfig request to have it same as the one DUT sets in getConfig response and in encoding pcm packets. few BMW series of CKs does not connect unless DUT configures max bitpool in setconfig request to 53. Bug: 27852645 Change-Id: Ie7ca504c23f6bae8fda997cdeb3e0ff0733defb0 --- bta/av/bta_av_aact.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/bta/av/bta_av_aact.c b/bta/av/bta_av_aact.c index 007e9b558..66d812766 100644 --- a/bta/av/bta_av_aact.c +++ b/bta/av/bta_av_aact.c @@ -67,6 +67,9 @@ static void bta_av_st_rc_timer(tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data); +static const size_t SBC_MAX_BITPOOL_OFFSET = 6; +static const size_t SBC_MAX_BITPOOL = 53; + /* state machine states */ enum { @@ -1903,6 +1906,15 @@ void bta_av_getcap_results (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data) &av_sink_codec_info); } + if ((uuid_int == UUID_SERVCLASS_AUDIO_SOURCE) && + (cfg.codec_info[SBC_MAX_BITPOOL_OFFSET] > SBC_MAX_BITPOOL)) + { + APPL_TRACE_WARNING("%s max bitpool length received for SBC is out of range." + "Clamping the codec bitpool configuration from %d to %d.", __func__, + cfg.codec_info[SBC_MAX_BITPOOL_OFFSET], SBC_MAX_BITPOOL); + cfg.codec_info[SBC_MAX_BITPOOL_OFFSET] = SBC_MAX_BITPOOL; + } + /* open the stream */ AVDT_OpenReq(p_scb->seps[p_scb->sep_idx].av_handle, p_scb->peer_addr, p_scb->sep_info[p_scb->sep_info_idx].seid, &cfg); -- 2.11.0