Skip to content

Bluetooth: Add document to illustrate the analye procedures of a2dp. #113

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 24, 2025

Conversation

jialu522
Copy link
Contributor

bug: v/53750


上述log中,实际传输的样本点数量为:5949440 - 5904896 = 44546,与预期接近。

1秒内音频数据的样本点数量远大于采样率时,air log中会看到密集的包,典型log如下:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

样本点数量大于采样率,和密集的包,不构成因果关系。
应该说:

通常,当音频数据在SRC端阻塞时,1秒内传输的样本点数量小于采样率。当阻塞解除后,1秒内传输的样本点数量通常大于采样率。阻塞恢复的典型log如下。

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

另外,可以在这里补充样本点数量不足的例子。


<img src="img/how_to_analyze_bluetooth_issues/a2dp/sniffer_avdtp_media_packet_number_abnormal.png" alt="sniffer:abnormal AVDTP media packet sequence number" width="50%">

上述log中,实际传输的样本点数量为:7395456 - 7270656 = 124800,远超预期。
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

“实际传输的"->”1秒内实际传输的“


空口出现重传的原因有两种:

* 设备发送的包没收到对端的回复
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

没收到->没有收到

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

也请注意其他位置


* 设备发送的包没收到对端的回复

* 设备发送的包收到了对端的回复,但回复的ARQN是NAK
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

但回复中ARQN字段的内容是NAK

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

其他地方保持一致,避免口语表述,这是专业性的体现。


<img src="img/how_to_analyze_bluetooth_issues/a2dp/sniffer_no_response.png" alt="sniffer:packet with no response" width="50%">

上述log中,设备发了3次2-DH5包,前两次的包没收到对端设备的回复,SEQN值维持不变,第三次的包收到了对端设备的回复,且回复的ARQN是ACK,SEQN发生了变化,重传结束。
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"设备发送了3次2-DH5包" -> "序列号为6536的音频数据包被发送了3次"
"前两次的包" -> "第1、2次发送的数据包"
"第三次的包" -> ”第3次发送的数据包“


上述log中,设备发了3次2-DH5包,前两次的包没收到对端设备的回复,SEQN值维持不变,第三次的包收到了对端设备的回复,且回复的ARQN是ACK,SEQN发生了变化,重传结束。

设备发送的包收到了对端的回复,但回复的ARQN是NAK,典型log如下:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

但回复包中的ARQN字段内容是NAK


* 若应用未能发送第二耳机连接请求,建议在App侧观察未能发送的原因。

* 若应用发送了第二耳机连接请求,但未能建立AVDTP signaling连接,建议对比典型log,观察建立signaling连接中是否出现异常。
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"建立signaling连接中"->"建立signaling连接过程中"


* 若Vela Media未能成功设置codec,建议在Vela Media模块观察未能设置codec的原因。

* 若Vela Media成功设置codec,建议观察[观察是否开始播放音乐](#方法观察a2dp-src是否开始播放音乐)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

建议观察[观察 -> 建议[观察

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

其他几处有相似问题


* [观察sequence number是否连续](#方法观察air-log中的音频包序列号是否连续)

* 若air log中出问题的音频流中存在音频包序列号不连续,建议Vela蓝牙测观察音频流中音频包的序列号不连续的原因。
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

蓝牙测 -> 蓝牙侧

请通篇检查

@tanghao-xiaomi tanghao-xiaomi merged commit 22ff619 into open-vela:dev Mar 24, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants