fix(bt): do not cap AVDTP Discover results by local SEP count

- Closes https://github.com/espressif/esp-idf/issues/18848
This commit is contained in:
yangfeng
2026-08-13 19:32:43 +08:00
parent e717ab43ad
commit 3ac7132d4c
3 changed files with 9 additions and 4 deletions
@@ -129,8 +129,8 @@ enum {
#define BTA_AV_LAST_EVT BTA_AV_API_SET_DELAY_VALUE_EVT
/* maximum number of SEPS in stream discovery results */
#define BTA_AV_NUM_SEPS 32
/* maximum number of SEPS in stream discovery results (keep in sync with AVDT) */
#define BTA_AV_NUM_SEPS AVDT_DIS_RES_MAX_NUM_SEPS
/* initialization value for AVRC handle */
#define BTA_AV_RC_HANDLE_NONE 0xFF
@@ -2302,6 +2302,11 @@
#define AVDT_NUM_SEPS 3
#endif
/* Maximum number of peer SEPs accepted in AVDTP Discover results. */
#ifndef AVDT_DIS_RES_MAX_NUM_SEPS
#define AVDT_DIS_RES_MAX_NUM_SEPS 32
#endif
/* Number of transport channels setup per media stream(audio or video) */
#ifndef AVDT_NUM_CHANNELS
@@ -992,8 +992,8 @@ static UINT8 avdt_msg_prs_discover_rsp(tAVDT_MSG *p_msg, UINT8 *p, UINT16 len)
if (p_msg->discover_rsp.num_seps > (len / 2)) {
p_msg->discover_rsp.num_seps = (len / 2);
}
if (p_msg->discover_rsp.num_seps > AVDT_NUM_SEPS) {
p_msg->discover_rsp.num_seps = AVDT_NUM_SEPS;
if (p_msg->discover_rsp.num_seps > AVDT_DIS_RES_MAX_NUM_SEPS) {
p_msg->discover_rsp.num_seps = AVDT_DIS_RES_MAX_NUM_SEPS;
}
/* parse out sep info */