Loading system/stack/a2dp/a2dp_codec_config.cc +23 −21 Original line number Diff line number Diff line Loading @@ -203,29 +203,31 @@ bool A2dpCodecConfig::getCodecSpecificConfig(tBT_A2DP_OFFLOAD* p_a2dp_offload) { p_a2dp_offload->codec_info[4] = (codec_id & 0x000000FF); p_a2dp_offload->codec_info[5] = (codec_id & 0x0000FF00) >> 8; if (vendor_id == A2DP_LDAC_VENDOR_ID && codec_id == A2DP_LDAC_CODEC_ID) { switch (codec_config_.codec_specific_1) { case 1000: if (codec_config_.codec_specific_1 == 0) { // default is 0, ABR p_a2dp_offload->codec_info[6] = A2DP_LDAC_QUALITY_ABR_OFFLOAD; // ABR in offload } else { switch (codec_config_.codec_specific_1 % 10) { case 0: p_a2dp_offload->codec_info[6] = A2DP_LDAC_QUALITY_HIGH; // High bitrate break; case 1001: case 1: p_a2dp_offload->codec_info[6] = A2DP_LDAC_QUALITY_MID; // Mid birate break; case 1002: case 2: p_a2dp_offload->codec_info[6] = A2DP_LDAC_QUALITY_LOW; // Low birate break; case 1003: p_a2dp_offload->codec_info[6] = A2DP_LDAC_QUALITY_HIGH; // High bitrate break; case 3: // fall through default: p_a2dp_offload->codec_info[6] = A2DP_LDAC_QUALITY_MID; // Mid bitrate A2DP_LDAC_QUALITY_ABR_OFFLOAD; // ABR in offload break; } } } break; default: break; Loading system/stack/a2dp/a2dp_vendor_ldac.cc +10 −10 Original line number Diff line number Diff line Loading @@ -306,28 +306,28 @@ int A2DP_VendorGetBitRateLdac(const uint8_t* p_codec_info) { A2dpCodecConfig* current_codec = bta_av_get_a2dp_current_codec(); btav_a2dp_codec_config_t codec_config_ = current_codec->getCodecConfig(); int samplerate = A2DP_GetTrackSampleRate(p_codec_info); switch (codec_config_.codec_specific_1) { case 1001: switch (codec_config_.codec_specific_1 % 10) { case 0: if (samplerate == 44100 || samplerate == 88200) return 909000; else return 990000; case 1: if (samplerate == 44100 || samplerate == 88200) return 606000; else return 660000; case 1002: case 2: if (samplerate == 44100 || samplerate == 88200) return 303000; else return 330000; case 1003: case 3: default: if (samplerate == 44100 || samplerate == 88200) return 909000; else return 990000; case 1000: default: if (samplerate == 44100 || samplerate == 88200) return 606000; else return 660000; } return 0; } Loading Loading
system/stack/a2dp/a2dp_codec_config.cc +23 −21 Original line number Diff line number Diff line Loading @@ -203,29 +203,31 @@ bool A2dpCodecConfig::getCodecSpecificConfig(tBT_A2DP_OFFLOAD* p_a2dp_offload) { p_a2dp_offload->codec_info[4] = (codec_id & 0x000000FF); p_a2dp_offload->codec_info[5] = (codec_id & 0x0000FF00) >> 8; if (vendor_id == A2DP_LDAC_VENDOR_ID && codec_id == A2DP_LDAC_CODEC_ID) { switch (codec_config_.codec_specific_1) { case 1000: if (codec_config_.codec_specific_1 == 0) { // default is 0, ABR p_a2dp_offload->codec_info[6] = A2DP_LDAC_QUALITY_ABR_OFFLOAD; // ABR in offload } else { switch (codec_config_.codec_specific_1 % 10) { case 0: p_a2dp_offload->codec_info[6] = A2DP_LDAC_QUALITY_HIGH; // High bitrate break; case 1001: case 1: p_a2dp_offload->codec_info[6] = A2DP_LDAC_QUALITY_MID; // Mid birate break; case 1002: case 2: p_a2dp_offload->codec_info[6] = A2DP_LDAC_QUALITY_LOW; // Low birate break; case 1003: p_a2dp_offload->codec_info[6] = A2DP_LDAC_QUALITY_HIGH; // High bitrate break; case 3: // fall through default: p_a2dp_offload->codec_info[6] = A2DP_LDAC_QUALITY_MID; // Mid bitrate A2DP_LDAC_QUALITY_ABR_OFFLOAD; // ABR in offload break; } } } break; default: break; Loading
system/stack/a2dp/a2dp_vendor_ldac.cc +10 −10 Original line number Diff line number Diff line Loading @@ -306,28 +306,28 @@ int A2DP_VendorGetBitRateLdac(const uint8_t* p_codec_info) { A2dpCodecConfig* current_codec = bta_av_get_a2dp_current_codec(); btav_a2dp_codec_config_t codec_config_ = current_codec->getCodecConfig(); int samplerate = A2DP_GetTrackSampleRate(p_codec_info); switch (codec_config_.codec_specific_1) { case 1001: switch (codec_config_.codec_specific_1 % 10) { case 0: if (samplerate == 44100 || samplerate == 88200) return 909000; else return 990000; case 1: if (samplerate == 44100 || samplerate == 88200) return 606000; else return 660000; case 1002: case 2: if (samplerate == 44100 || samplerate == 88200) return 303000; else return 330000; case 1003: case 3: default: if (samplerate == 44100 || samplerate == 88200) return 909000; else return 990000; case 1000: default: if (samplerate == 44100 || samplerate == 88200) return 606000; else return 660000; } return 0; } Loading