void bta_av_str_opened(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) {
tBTA_AV_CONN_CHG msg;
uint8_t* p;
- uint16_t mtu;
APPL_TRACE_DEBUG("%s: peer %s handle: %d", __func__,
p_scb->PeerAddress().ToString().c_str(), p_scb->hndl);
p_scb->stream_mtu =
p_data->str_msg.msg.open_ind.peer_mtu - AVDT_MEDIA_HDR_SIZE;
- mtu = bta_av_chk_mtu(p_scb, p_scb->stream_mtu);
- APPL_TRACE_DEBUG("%s: l2c_cid: 0x%x stream_mtu: %d mtu: %d", __func__,
- p_scb->l2c_cid, p_scb->stream_mtu, mtu);
- if (mtu == 0 || mtu > p_scb->stream_mtu) mtu = p_scb->stream_mtu;
+ APPL_TRACE_DEBUG("%s: l2c_cid: 0x%x stream_mtu: %d", __func__, p_scb->l2c_cid,
+ p_scb->stream_mtu);
/* Set the media channel as high priority */
L2CA_SetTxPriority(p_scb->l2c_cid, L2CAP_CHNL_PRIORITY_HIGH);
memset(&p_scb->q_info, 0, sizeof(tBTA_AV_Q_INFO));
p_scb->l2c_bufs = 0;
- p_scb->p_cos->open(p_scb->hndl, p_scb->PeerAddress(), mtu);
+ p_scb->p_cos->open(p_scb->hndl, p_scb->PeerAddress(), p_scb->stream_mtu);
{
/* TODO check if other audio channel is open.
*
******************************************************************************/
void bta_av_cco_close(tBTA_AV_SCB* p_scb, UNUSED_ATTR tBTA_AV_DATA* p_data) {
- uint16_t mtu;
-
APPL_TRACE_DEBUG("%s: peer %s handle:%d", __func__,
p_scb->PeerAddress().ToString().c_str(), p_scb->hndl);
-
- mtu = bta_av_chk_mtu(p_scb, BTA_AV_MAX_A2DP_MTU);
-
p_scb->p_cos->close(p_scb->hndl, p_scb->PeerAddress());
}
// p_data could be NULL if the reconfig was triggered by the local device
p_scb->stream_mtu =
p_data->str_msg.msg.open_ind.peer_mtu - AVDT_MEDIA_HDR_SIZE;
- uint16_t mtu = bta_av_chk_mtu(p_scb, p_scb->stream_mtu);
- APPL_TRACE_DEBUG("%s: l2c_cid: 0x%x stream_mtu: %d mtu: %d", __func__,
- p_scb->l2c_cid, p_scb->stream_mtu, mtu);
- if (mtu == 0 || mtu > p_scb->stream_mtu) mtu = p_scb->stream_mtu;
- p_scb->p_cos->update_mtu(p_scb->hndl, p_scb->PeerAddress(), mtu);
+ APPL_TRACE_DEBUG("%s: l2c_cid: 0x%x stream_mtu: %d", __func__,
+ p_scb->l2c_cid, p_scb->stream_mtu);
+ p_scb->p_cos->update_mtu(p_scb->hndl, p_scb->PeerAddress(),
+ p_scb->stream_mtu);
}
/* rc listen */
(*bta_av_cb.p_cback)(BTA_AV_OFFLOAD_START_RSP_EVT, &bta_av_data);
}
/* TODO(eisenbach): RE-IMPLEMENT USING VSC OR HAL EXTENSION
- uint16_t mtu = bta_av_chk_mtu(p_scb, p_scb->stream_mtu);
else if (bta_av_cb.audio_open_cnt == 1 &&
p_scb->seps[p_scb->sep_idx].tsep == AVDT_TSEP_SRC &&
p_scb->chnl == BTA_AV_CHNL_AUDIO) {
a2dp_offload_start.bta_av_handle = p_scb->hndl;
a2dp_offload_start.xmit_quota = BTA_AV_A2DP_OFFLOAD_XMIT_QUOTA;
- a2dp_offload_start.stream_mtu =
- (mtu < p_scb->stream_mtu) ? mtu : p_scb->stream_mtu;
+ a2dp_offload_start.stream_mtu = p_scb->stream_mtu;
a2dp_offload_start.local_cid = p_scb->l2c_cid;
a2dp_offload_start.is_flushable = true;
a2dp_offload_start.stream_source =
btav_a2dp_codec_index_t codec_index =
A2DP_SourceCodecIndex(p_scb->cfg.codec_info);
uint32_t codec_type = 0;
- uint16_t mtu = bta_av_chk_mtu(p_scb, p_scb->stream_mtu);
- if (mtu == 0 || mtu > p_scb->stream_mtu) mtu = p_scb->stream_mtu;
+ uint16_t mtu = p_scb->stream_mtu;
APPL_TRACE_DEBUG("%s:codec_index = %d", __func__, codec_index);
switch (codec_index) {
case BTAV_A2DP_CODEC_INDEX_SOURCE_SBC:
/*******************************************************************************
*
- * Function bta_av_chk_mtu
- *
- * Description if this is audio channel, check if more than one audio
- * channel is connected.
- *
- * Returns The smallest mtu of the connected audio channels
- *
- ******************************************************************************/
-uint16_t bta_av_chk_mtu(tBTA_AV_SCB* p_scb, UNUSED_ATTR uint16_t mtu) {
- uint16_t ret_mtu = BTA_AV_MAX_A2DP_MTU;
- tBTA_AV_SCB* p_scbi;
- int i;
- uint8_t mask;
-
- /* TODO_MV mess with the mtu according to the number of EDR/non-EDR headsets
- */
- if (p_scb->chnl == BTA_AV_CHNL_AUDIO) {
- if (bta_av_cb.audio_open_cnt >= 2) {
- /* more than one audio channel is connected */
- for (i = 0; i < BTA_AV_NUM_STRS; i++) {
- p_scbi = bta_av_cb.p_scb[i];
- if ((p_scb != p_scbi) && p_scbi &&
- (p_scbi->chnl == BTA_AV_CHNL_AUDIO)) {
- mask = BTA_AV_HNDL_TO_MSK(i);
- APPL_TRACE_DEBUG("%s: [%d] mtu: %d, mask:0x%x", __func__, i,
- p_scbi->stream_mtu, mask);
- if (bta_av_cb.conn_audio & mask) {
- if (ret_mtu > p_scbi->stream_mtu) ret_mtu = p_scbi->stream_mtu;
- }
- }
- }
- }
- APPL_TRACE_DEBUG("%s: count:%d, conn_audio:0x%x, ret:%d", __func__,
- bta_av_cb.audio_open_cnt, bta_av_cb.conn_audio, ret_mtu);
- }
- return ret_mtu;
-}
-
-/*******************************************************************************
- *
* Function bta_av_dup_audio_buf
*
* Description dup the audio data to the q_info.a2dp of other audio
const RawAddress& peer_address,
tA2DP_ENCODER_INIT_PEER_PARAMS* p_peer_params) {
uint16_t min_mtu = 0xFFFF;
-
- APPL_TRACE_DEBUG("%s: peer_address=%s", __func__,
- peer_address.ToString().c_str());
- CHECK(p_peer_params != nullptr);
+ CHECK(p_peer_params != nullptr) << "Peer address " << peer_address;
std::lock_guard<std::recursive_mutex> lock(codec_lock_);
p_peer_params->is_peer_edr = btif_av_is_peer_edr(peer_address);
p_peer_params->peer_supports_3mbps =
btif_av_peer_supports_3mbps(peer_address);
+ APPL_TRACE_DEBUG(
+ "%s: peer_address=%s peer_mtu=%d is_peer_edr=%s peer_supports_3mbps=%s",
+ __func__, peer_address.ToString().c_str(), p_peer_params->peer_mtu,
+ logbool(p_peer_params->is_peer_edr).c_str(),
+ logbool(p_peer_params->peer_supports_3mbps).c_str());
}
const tA2DP_ENCODER_INTERFACE* BtaAvCo::GetSourceEncoderInterface() {