aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2018-07-27 22:20:01 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2018-07-27 22:20:01 +0000
commit920de3de49c836ad9255687caac3832164e05a35 (patch)
tree66fb25a78965f8d444fb44eff6d10676a9e8890a
parentb7f4f3d3d6be29f93ad99eeccf9b09087014dd93 (diff)
parentb9af041d6de820b42789cd6ed14a68c5aa7bfe4f (diff)
downloadbt-pie-r2-release.tar.gz
Change-Id: I79b4d6e216cdc31d3941ed9b2388d605c169037c
-rw-r--r--bta/ag/bta_ag_sco.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/bta/ag/bta_ag_sco.cc b/bta/ag/bta_ag_sco.cc
index f28b3c252..083108b35 100644
--- a/bta/ag/bta_ag_sco.cc
+++ b/bta/ag/bta_ag_sco.cc
@@ -553,6 +553,14 @@ void bta_ag_codec_negotiate(tBTA_AG_SCB* p_scb) {
APPL_TRACE_DEBUG("%s", __func__);
bta_ag_cb.sco.p_curr_scb = p_scb;
+ // Workaround for misbehaving HFs such as Sony XAV AX100 car kit and Sony
+ // MW600 Headset, which indicate WBS support in SDP, but no codec
+ // negotiation support in BRSF. In this case, using mSBC codec can result
+ // background noise or no audio. Thus, defaulting to CVSD instead.
+ if (!(p_scb->peer_features & BTA_AG_PEER_FEAT_CODEC)) {
+ p_scb->sco_codec = UUID_CODEC_CVSD;
+ }
+
if ((p_scb->codec_updated || p_scb->codec_fallback) &&
(p_scb->peer_features & BTA_AG_PEER_FEAT_CODEC)) {
/* Change the power mode to Active until SCO open is completed. */