A2DP数据缓存
Android M(Android 6.0) 允许缓存11个buffer
对比Android N 允许缓存21个buffer
a2dp_list不限长度
l2cap发送允许缓存5个buffer。
06-20 16:44:26.475 2165 2202 D bt_btif : [media task tx timer] ts 1420105270, diff : 00019989, queue sz 4
// 20ms timer触发, 当前TxAaQ长度为4
06-20 16:44:26.475 2165 2192 I bt_btif : BTA got event 0x122f // data ready触发发送命令
06-20 16:44:26.475 2165 2192 I bt_l2cap: L2CA_FlushChannel (QUERY) CID: 0x0044
06-20 16:44:26.475 2165 2192 D bt_l2cap: L2CA_FlushChannel() flushed: 0 + 0, num_left: 5
//判断当前link_xmit_data_q长度,等于5,就不再出发发送,缓存
06-20 16:44:26.495 2165 2202 D bt_btif : [media task tx timer] ts 1420125259, diff : 00019989, queue sz 5
// 20ms timer触发,由于上一包数据被缓存,所以现在TxAaQ长度为5
06-20 16:44:26.496 2165 2192 I bt_btif : BTA got event 0x122f //data ready出发发送命令
06-20 16:44:26.496 2165 2192 I bt_l2cap: L2CA_FlushChannel (QUERY) CID: 0x0044
06-20 16:44:26.496 2165 2192 D bt_l2cap: L2CA_FlushChannel() flushed: 0 + 0, num_left: 5
//判断当前link_xmit_data_q长度,等于5,就不再出发发送,继续缓存
06-20 16:44:26.515 2165 2202 D bt_btif : [media task tx timer] ts 1420145248, diff : 00019989, queue sz 6
// 20ms timer触发,上一包数据被缓存,所以现在TxAaQ长度为6
06-20 16:44:26.515 2165 2192 I bt_btif : BTA got event 0x122f // data ready触发发送命令
06-20 16:44:26.515 2165 2192 I bt_l2cap: L2CA_FlushChannel (QUERY) CID: 0x0044
06-20 16:44:26.515 2165 2192 D bt_l2cap: L2CA_FlushChannel() flushed: 0 + 0, num_left: 4
//判断当前link_xmit_data_q长度,等于4,优先发送a2d_list中数据
06-20 16:44:26.515 2165 2192 I bt_btif : BTA got event 0x1222
//处理收到的确认event,之前link_xmit_data_q变为4,也是因为它
06-20 16:44:26.515 2165 2192 I bt_l2cap: L2CA_FlushChannel (QUERY) CID: 0x0044
06-20 16:44:26.515 2165 2192 D bt_l2cap: L2CA_FlushChannel() flushed: 0 + 0, num_left: 5
06-20 16:44:26.515 2165 2192 D bt_btif : bta_av_co_audio_src_data_path
//从TxAaQ中获取一包数据
06-20 16:44:26.535 2165 2202 D bt_btif : [media task tx timer] ts 1420165359, diff : 00020111, queue sz 6
// 20ms timer触发,刚发送过一包数据,所以现在TxAaQ长度为6
06-20 16:44:39.295 2165 2202 D bt_btif : [media task tx timer] ts 1432925338, diff : 00020080, queue sz 12
// 20ms timer触发,TxAaQ长度为12
06-20 16:44:39.295 2165 2202 W bt_btif : btif_media_aa_prep_2_send() - TX queue buffer count 12/11
//buffer过多警告,删除TxAaQ中超出上限的数据包,直到TxAaQ中长度小于等于11
//如果是Android N,TxAaQ中的长度超过21,则全部删除TxAaQ中的数据,然后TxAaQ就被清空。
06-20 16:44:39.296 2165 2192 I bt_btif : BTA got event 0x122f
06-20 16:44:39.296 2165 2192 I bt_l2cap: L2CA_FlushChannel (QUERY) CID: 0x0044
06-20 16:44:39.296 2165 2192 D bt_l2cap: L2CA_FlushChannel() flushed: 0 + 0, num_left: 5