Loading system/bta/av/bta_av_aact.cc +11 −2 Original line number Diff line number Diff line Loading @@ -86,7 +86,8 @@ const tBTA_AV_CO_FUNCTS bta_av_a2dp_cos = { bta_av_co_audio_getconfig, bta_av_co_audio_setconfig, bta_av_co_audio_open, bta_av_co_audio_close, bta_av_co_audio_start, bta_av_co_audio_stop, bta_av_co_audio_src_data_path, bta_av_co_audio_delay}; bta_av_co_audio_src_data_path, bta_av_co_audio_delay, bta_av_co_audio_update_mtu}; /* ssm action functions for audio stream */ const tBTA_AV_SACT bta_av_a2dp_action[] = { Loading Loading @@ -2557,12 +2558,20 @@ void bta_av_suspend_cfm(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { * Returns void * ******************************************************************************/ void bta_av_rcfg_str_ok(tBTA_AV_SCB* p_scb, UNUSED_ATTR tBTA_AV_DATA* p_data) { void bta_av_rcfg_str_ok(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { tBTA_AV_RECONFIG evt; p_scb->l2c_cid = AVDT_GetL2CapChannel(p_scb->avdt_handle); APPL_TRACE_DEBUG("%s: l2c_cid: %d", __func__, p_scb->l2c_cid); 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, mtu); /* rc listen */ bta_av_st_rc_timer(p_scb, NULL); osi_free_and_reset((void**)&p_scb->p_cap); Loading system/bta/av/bta_av_int.h +2 −0 Original line number Diff line number Diff line Loading @@ -180,6 +180,7 @@ typedef void (*tBTA_AV_CO_STOP)(tBTA_AV_HNDL hndl); typedef void* (*tBTA_AV_CO_DATAPATH)(const uint8_t* p_codec_info, uint32_t* p_timestamp); typedef void (*tBTA_AV_CO_DELAY)(tBTA_AV_HNDL hndl, uint16_t delay); typedef void (*tBTA_AV_CO_UPDATE_MTU)(tBTA_AV_HNDL hndl, uint16_t mtu); /* the call-out functions for one stream */ typedef struct { Loading @@ -193,6 +194,7 @@ typedef struct { tBTA_AV_CO_STOP stop; tBTA_AV_CO_DATAPATH data; tBTA_AV_CO_DELAY delay; tBTA_AV_CO_UPDATE_MTU update_mtu; } tBTA_AV_CO_FUNCTS; /* data type for BTA_AV_API_ENABLE_EVT */ Loading system/bta/include/bta_av_co.h +15 −0 Original line number Diff line number Diff line Loading @@ -197,4 +197,19 @@ void bta_av_co_audio_drop(tBTA_AV_HNDL hndl); ******************************************************************************/ void bta_av_co_audio_delay(tBTA_AV_HNDL hndl, uint16_t delay); /******************************************************************************* * * Function bta_av_co_audio_update_mtu * * Description This function is called by AV when the audio stream * connection MTU needs to be updated. * BTA-AV maintains the MTU of A2DP streams. * If this is the 2nd audio stream, mtu is the smaller of the 2 * streams. * * Returns void * ******************************************************************************/ void bta_av_co_audio_update_mtu(tBTA_AV_HNDL hndl, uint16_t mtu); #endif /* BTA_AV_CO_H */ system/btif/co/bta_av_co.cc +14 −0 Original line number Diff line number Diff line Loading @@ -761,6 +761,20 @@ void bta_av_co_audio_delay(tBTA_AV_HNDL hndl, uint16_t delay) { APPL_TRACE_ERROR("%s: handle: x%x, delay:0x%x", __func__, hndl, delay); } void bta_av_co_audio_update_mtu(tBTA_AV_HNDL hndl, uint16_t mtu) { tBTA_AV_CO_PEER* p_peer; APPL_TRACE_DEBUG("%s: handle: %d mtu: %d", __func__, hndl, mtu); /* Retrieve the peer info */ p_peer = bta_av_co_get_peer(hndl); if (p_peer == NULL) { APPL_TRACE_ERROR("%s: could not find peer entry", __func__); return; } p_peer->mtu = mtu; } /******************************************************************************* ** ** Function bta_av_co_cp_is_scmst Loading Loading
system/bta/av/bta_av_aact.cc +11 −2 Original line number Diff line number Diff line Loading @@ -86,7 +86,8 @@ const tBTA_AV_CO_FUNCTS bta_av_a2dp_cos = { bta_av_co_audio_getconfig, bta_av_co_audio_setconfig, bta_av_co_audio_open, bta_av_co_audio_close, bta_av_co_audio_start, bta_av_co_audio_stop, bta_av_co_audio_src_data_path, bta_av_co_audio_delay}; bta_av_co_audio_src_data_path, bta_av_co_audio_delay, bta_av_co_audio_update_mtu}; /* ssm action functions for audio stream */ const tBTA_AV_SACT bta_av_a2dp_action[] = { Loading Loading @@ -2557,12 +2558,20 @@ void bta_av_suspend_cfm(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { * Returns void * ******************************************************************************/ void bta_av_rcfg_str_ok(tBTA_AV_SCB* p_scb, UNUSED_ATTR tBTA_AV_DATA* p_data) { void bta_av_rcfg_str_ok(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { tBTA_AV_RECONFIG evt; p_scb->l2c_cid = AVDT_GetL2CapChannel(p_scb->avdt_handle); APPL_TRACE_DEBUG("%s: l2c_cid: %d", __func__, p_scb->l2c_cid); 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, mtu); /* rc listen */ bta_av_st_rc_timer(p_scb, NULL); osi_free_and_reset((void**)&p_scb->p_cap); Loading
system/bta/av/bta_av_int.h +2 −0 Original line number Diff line number Diff line Loading @@ -180,6 +180,7 @@ typedef void (*tBTA_AV_CO_STOP)(tBTA_AV_HNDL hndl); typedef void* (*tBTA_AV_CO_DATAPATH)(const uint8_t* p_codec_info, uint32_t* p_timestamp); typedef void (*tBTA_AV_CO_DELAY)(tBTA_AV_HNDL hndl, uint16_t delay); typedef void (*tBTA_AV_CO_UPDATE_MTU)(tBTA_AV_HNDL hndl, uint16_t mtu); /* the call-out functions for one stream */ typedef struct { Loading @@ -193,6 +194,7 @@ typedef struct { tBTA_AV_CO_STOP stop; tBTA_AV_CO_DATAPATH data; tBTA_AV_CO_DELAY delay; tBTA_AV_CO_UPDATE_MTU update_mtu; } tBTA_AV_CO_FUNCTS; /* data type for BTA_AV_API_ENABLE_EVT */ Loading
system/bta/include/bta_av_co.h +15 −0 Original line number Diff line number Diff line Loading @@ -197,4 +197,19 @@ void bta_av_co_audio_drop(tBTA_AV_HNDL hndl); ******************************************************************************/ void bta_av_co_audio_delay(tBTA_AV_HNDL hndl, uint16_t delay); /******************************************************************************* * * Function bta_av_co_audio_update_mtu * * Description This function is called by AV when the audio stream * connection MTU needs to be updated. * BTA-AV maintains the MTU of A2DP streams. * If this is the 2nd audio stream, mtu is the smaller of the 2 * streams. * * Returns void * ******************************************************************************/ void bta_av_co_audio_update_mtu(tBTA_AV_HNDL hndl, uint16_t mtu); #endif /* BTA_AV_CO_H */
system/btif/co/bta_av_co.cc +14 −0 Original line number Diff line number Diff line Loading @@ -761,6 +761,20 @@ void bta_av_co_audio_delay(tBTA_AV_HNDL hndl, uint16_t delay) { APPL_TRACE_ERROR("%s: handle: x%x, delay:0x%x", __func__, hndl, delay); } void bta_av_co_audio_update_mtu(tBTA_AV_HNDL hndl, uint16_t mtu) { tBTA_AV_CO_PEER* p_peer; APPL_TRACE_DEBUG("%s: handle: %d mtu: %d", __func__, hndl, mtu); /* Retrieve the peer info */ p_peer = bta_av_co_get_peer(hndl); if (p_peer == NULL) { APPL_TRACE_ERROR("%s: could not find peer entry", __func__); return; } p_peer->mtu = mtu; } /******************************************************************************* ** ** Function bta_av_co_cp_is_scmst Loading