Loading system/btif/src/btif_a2dp_audio_interface.cc +18 −8 Original line number Diff line number Diff line Loading @@ -114,13 +114,10 @@ static void btif_a2dp_get_codec_configuration( CodecConfiguration* p_codec_info) { LOG_INFO(LOG_TAG, "%s", __func__); tBT_A2DP_OFFLOAD a2dp_offload; tA2DP_ENCODER_INIT_PEER_PARAMS peer_param; A2dpCodecConfig* CodecConfig = bta_av_get_a2dp_current_codec(); CodecConfig->getCodecSpecificConfig(&a2dp_offload); A2dpCodecConfig* a2dpCodecConfig = bta_av_get_a2dp_current_codec(); a2dpCodecConfig->getCodecSpecificConfig(&a2dp_offload); btav_a2dp_codec_config_t codec_config; codec_config = CodecConfig->getCodecConfig(); RawAddress peer_addr = btif_av_source_active_peer(); bta_av_co_get_peer_params(peer_addr, &peer_param); codec_config = a2dpCodecConfig->getCodecConfig(); switch (codec_config.codec_type) { case BTAV_A2DP_CODEC_INDEX_SOURCE_SBC: p_codec_info->codecType = Loading Loading @@ -161,7 +158,20 @@ static void btif_a2dp_get_codec_configuration( APPL_TRACE_ERROR("%s: Unknown Codec type :%d ", __func__, codec_config.codec_type); } // Obtain the MTU RawAddress peer_addr = btif_av_source_active_peer(); tA2DP_ENCODER_INIT_PEER_PARAMS peer_param; bta_av_co_get_peer_params(peer_addr, &peer_param); int effectiveMtu = a2dpCodecConfig->getEffectiveMtu(); if (effectiveMtu > 0 && effectiveMtu < peer_param.peer_mtu) { p_codec_info->peerMtu = effectiveMtu; } else { p_codec_info->peerMtu = peer_param.peer_mtu; } LOG_INFO(LOG_TAG, "%s: peer MTU: %d effective MTU: %d result MTU: %d", __func__, peer_param.peer_mtu, effectiveMtu, p_codec_info->peerMtu); p_codec_info->sampleRate = (::android::hardware::bluetooth::a2dp::V1_0::SampleRate) codec_config.sample_rate; Loading @@ -171,7 +181,7 @@ static void btif_a2dp_get_codec_configuration( p_codec_info->channelMode = (::android::hardware::bluetooth::a2dp::V1_0::ChannelMode) codec_config.channel_mode; p_codec_info->encodedAudioBitrate = CodecConfig->getTrackBitRate(); p_codec_info->encodedAudioBitrate = a2dpCodecConfig->getTrackBitRate(); } static void btif_a2dp_audio_interface_init() { Loading system/stack/a2dp/a2dp_aac.cc +5 −0 Original line number Diff line number Diff line Loading @@ -1420,6 +1420,11 @@ period_ms_t A2dpCodecConfigAacSink::encoderIntervalMs() const { return 0; } int A2dpCodecConfigAacSink::getEffectiveMtu() const { // TODO: This method applies only to Source codecs return 0; } bool A2dpCodecConfigAacSink::useRtpHeaderMarkerBit() const { // TODO: This method applies only to Source codecs return false; Loading system/stack/a2dp/a2dp_aac_encoder.cc +4 −0 Original line number Diff line number Diff line Loading @@ -698,6 +698,10 @@ period_ms_t A2dpCodecConfigAacSource::encoderIntervalMs() const { return a2dp_aac_get_encoder_interval_ms(); } int A2dpCodecConfigAacSource::getEffectiveMtu() const { return a2dp_aac_encoder_cb.TxAaMtuSize; } void A2dpCodecConfigAacSource::debug_codec_dump(int fd) { a2dp_aac_encoder_stats_t* stats = &a2dp_aac_encoder_cb.stats; Loading system/stack/a2dp/a2dp_codec_config.cc +2 −1 Original line number Diff line number Diff line Loading @@ -145,7 +145,7 @@ A2dpCodecConfig* A2dpCodecConfig::createCodec( return codec_config; } int A2dpCodecConfig::getTrackBitRate() { int A2dpCodecConfig::getTrackBitRate() const { uint8_t p_codec_info[AVDT_CODEC_SIZE]; memcpy(p_codec_info, ota_codec_config_, sizeof(ota_codec_config_)); tA2DP_CODEC_TYPE codec_type = A2DP_GetCodecType(p_codec_info); Loading Loading @@ -499,6 +499,7 @@ void A2dpCodecConfig::debug_codec_dump(int fd) { dprintf(fd, "\nA2DP %s State:\n", name().c_str()); dprintf(fd, " Priority: %d\n", codecPriority()); dprintf(fd, " Encoder interval (ms): %" PRIu64 "\n", encoderIntervalMs()); dprintf(fd, " Effective MTU: %d\n", getEffectiveMtu()); result = codecConfig2Str(getCodecConfig()); dprintf(fd, " Config: %s\n", result.c_str()); Loading system/stack/a2dp/a2dp_sbc.cc +5 −0 Original line number Diff line number Diff line Loading @@ -1559,3 +1559,8 @@ period_ms_t A2dpCodecConfigSbcSink::encoderIntervalMs() const { // TODO: This method applies only to Source codecs return 0; } int A2dpCodecConfigSbcSink::getEffectiveMtu() const { // TODO: This method applies only to Source codecs return 0; } Loading
system/btif/src/btif_a2dp_audio_interface.cc +18 −8 Original line number Diff line number Diff line Loading @@ -114,13 +114,10 @@ static void btif_a2dp_get_codec_configuration( CodecConfiguration* p_codec_info) { LOG_INFO(LOG_TAG, "%s", __func__); tBT_A2DP_OFFLOAD a2dp_offload; tA2DP_ENCODER_INIT_PEER_PARAMS peer_param; A2dpCodecConfig* CodecConfig = bta_av_get_a2dp_current_codec(); CodecConfig->getCodecSpecificConfig(&a2dp_offload); A2dpCodecConfig* a2dpCodecConfig = bta_av_get_a2dp_current_codec(); a2dpCodecConfig->getCodecSpecificConfig(&a2dp_offload); btav_a2dp_codec_config_t codec_config; codec_config = CodecConfig->getCodecConfig(); RawAddress peer_addr = btif_av_source_active_peer(); bta_av_co_get_peer_params(peer_addr, &peer_param); codec_config = a2dpCodecConfig->getCodecConfig(); switch (codec_config.codec_type) { case BTAV_A2DP_CODEC_INDEX_SOURCE_SBC: p_codec_info->codecType = Loading Loading @@ -161,7 +158,20 @@ static void btif_a2dp_get_codec_configuration( APPL_TRACE_ERROR("%s: Unknown Codec type :%d ", __func__, codec_config.codec_type); } // Obtain the MTU RawAddress peer_addr = btif_av_source_active_peer(); tA2DP_ENCODER_INIT_PEER_PARAMS peer_param; bta_av_co_get_peer_params(peer_addr, &peer_param); int effectiveMtu = a2dpCodecConfig->getEffectiveMtu(); if (effectiveMtu > 0 && effectiveMtu < peer_param.peer_mtu) { p_codec_info->peerMtu = effectiveMtu; } else { p_codec_info->peerMtu = peer_param.peer_mtu; } LOG_INFO(LOG_TAG, "%s: peer MTU: %d effective MTU: %d result MTU: %d", __func__, peer_param.peer_mtu, effectiveMtu, p_codec_info->peerMtu); p_codec_info->sampleRate = (::android::hardware::bluetooth::a2dp::V1_0::SampleRate) codec_config.sample_rate; Loading @@ -171,7 +181,7 @@ static void btif_a2dp_get_codec_configuration( p_codec_info->channelMode = (::android::hardware::bluetooth::a2dp::V1_0::ChannelMode) codec_config.channel_mode; p_codec_info->encodedAudioBitrate = CodecConfig->getTrackBitRate(); p_codec_info->encodedAudioBitrate = a2dpCodecConfig->getTrackBitRate(); } static void btif_a2dp_audio_interface_init() { Loading
system/stack/a2dp/a2dp_aac.cc +5 −0 Original line number Diff line number Diff line Loading @@ -1420,6 +1420,11 @@ period_ms_t A2dpCodecConfigAacSink::encoderIntervalMs() const { return 0; } int A2dpCodecConfigAacSink::getEffectiveMtu() const { // TODO: This method applies only to Source codecs return 0; } bool A2dpCodecConfigAacSink::useRtpHeaderMarkerBit() const { // TODO: This method applies only to Source codecs return false; Loading
system/stack/a2dp/a2dp_aac_encoder.cc +4 −0 Original line number Diff line number Diff line Loading @@ -698,6 +698,10 @@ period_ms_t A2dpCodecConfigAacSource::encoderIntervalMs() const { return a2dp_aac_get_encoder_interval_ms(); } int A2dpCodecConfigAacSource::getEffectiveMtu() const { return a2dp_aac_encoder_cb.TxAaMtuSize; } void A2dpCodecConfigAacSource::debug_codec_dump(int fd) { a2dp_aac_encoder_stats_t* stats = &a2dp_aac_encoder_cb.stats; Loading
system/stack/a2dp/a2dp_codec_config.cc +2 −1 Original line number Diff line number Diff line Loading @@ -145,7 +145,7 @@ A2dpCodecConfig* A2dpCodecConfig::createCodec( return codec_config; } int A2dpCodecConfig::getTrackBitRate() { int A2dpCodecConfig::getTrackBitRate() const { uint8_t p_codec_info[AVDT_CODEC_SIZE]; memcpy(p_codec_info, ota_codec_config_, sizeof(ota_codec_config_)); tA2DP_CODEC_TYPE codec_type = A2DP_GetCodecType(p_codec_info); Loading Loading @@ -499,6 +499,7 @@ void A2dpCodecConfig::debug_codec_dump(int fd) { dprintf(fd, "\nA2DP %s State:\n", name().c_str()); dprintf(fd, " Priority: %d\n", codecPriority()); dprintf(fd, " Encoder interval (ms): %" PRIu64 "\n", encoderIntervalMs()); dprintf(fd, " Effective MTU: %d\n", getEffectiveMtu()); result = codecConfig2Str(getCodecConfig()); dprintf(fd, " Config: %s\n", result.c_str()); Loading
system/stack/a2dp/a2dp_sbc.cc +5 −0 Original line number Diff line number Diff line Loading @@ -1559,3 +1559,8 @@ period_ms_t A2dpCodecConfigSbcSink::encoderIntervalMs() const { // TODO: This method applies only to Source codecs return 0; } int A2dpCodecConfigSbcSink::getEffectiveMtu() const { // TODO: This method applies only to Source codecs return 0; }