Skip to content

Conversation

@CanWang001
Copy link
Contributor

Add Bluetooth Test Protocol (BTP) support for Audio/Video Remote
Control Profile (AVRCP) and Audio/Video Control Transport Protocol
(AVCTP) testing to enable PTS qualification.

AVRCP implementation:

  • Controller (CT) role with browsing and cover art support
  • Target (TG) role with browsing and cover art support
  • Complete BTP command/event interface
  • Support for all AVRCP PTS test cases

AVCTP implementation:

  • Complete BTP command/event interface
  • Support for all AVCTP PTS test cases
makeshi and others added 20 commits November 10, 2025 16:44
Remove unnecessary checking for net_buf_tailroom(buf) < chunk_size before sending data in avctp_tx_processor. Signed-off-by: Make Shi <make.shi@nxp.com>
This patch introduces support for AVRCP vendor-dependent commands and responses, including full handling of fragmented messages. - Adds fragmentation and reassembly logic for AVRCP vendor-dependent - Introduces TX queue management using delayed work for TG - Adds support for GetCapabilities PDUs - Add new Kconfig for vendor-dependent with fragmentation support Signed-off-by: Make Shi <make.shi@nxp.com>
This patch adds AVRCP notification event handling for both CT and TG roles. Also add Shell command support for testing notification registration and responses. Signed-off-by: Make Shi <make.shi@nxp.com>
Implement support for AVRCP Player app Settings PDUs on both CT/TG - Added APIs for sending and handling commands like LIST_ATTRS, LIST_VALS, GET_CURR_VAL, SET_VAL, and related text/inform PDUs. - Added callbacks for TG request handling and CT response processing. - Add shell commands for Player app Settings commands testing. Signed-off-by: Make Shi <make.shi@nxp.com>
Add full support for all remaining AVRCP vendor-dependent PDUs on both Controller (CT) and Target (TG), including APIs, callbacks, and shell commands for testing. Signed-off-by: Make Shi <make.shi@nxp.com>
Drop the 'U' suffix from enum hex literals keep style consistent and rename `bt_avrcp_list_app_setting_attr_rsp` to the clearer. Signed-off-by: Make Shi <make.shi@nxp.com>
Introduce an optional alloc_buf() callback into AVCTP so that each session can decide which RX buffer pool to use. Provided a dedicated RX pool for the AVRCP browsing channel. Also provided BT_AVRCP_BROWSING_L2CAP_MTU for configure. Signed-off-by: Make Shi <make.shi@nxp.com>
This change implements full AVRCP Browsing support on both CT/TG, and included all public APIs and callbacks, and add shell commands for testing. Signed-off-by: Make Shi <make.shi@nxp.com>
A new function bt_obex_add_header_body_or_end_body() is added to help to add the body/end body header. When the tail room of the buffer is more than the passed body room, and the total length of buffer is not more than the mopl if the body has been added, the header end body will be added. Or, the header body will be added. Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
The `bt_obex_string_is_valid()` is used to check whether the sending or receiving UTF-16 string is valid or not. Expose function "bt_obex_string_is_valid()" to support external checking of UTF-16 strings. Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
The function `bt_obex_has_header()` is used to check whether the specific header is in the buffer. It is required by upper layer to check the header from the receiving buffer. Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
Add functions to manage BIP transport connect and disconnect both for l2cap and rfcomm. Add functions to register and unregister primary and secondary OBEX servers. Add functions to send OBEX connect/disconnect request and response. Add functions to send OBEX get/put request and response with different type defined by BT_BIP_HDR_TYPE_*. Add functions to send abort request and response. Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
Add commands for transport over RFCOMM, including `register-rfcomm`, `connect-rfcomm`, and `disconnect-rfcomm`. Add commands for transport over L2CAP, including `register-l2cap`, `connect-l2cap`, and `disconnect-l2cap`. Add command `alloc-buf` and `release-buf` to allocate and release TX buffer. Add command set `add-header` to add the OBEX headers to allocated TX buffer. Add command set `client` to send BIP client requests with allocated TX buffer. Add command set `server` to send BIP responses with allocated TX buffer. Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
Add function `bt_bip_set_supported_capabilities()` to set the supported caps of responder. Add function `bt_bip_set_supported_features()` to set the supported features of responder. Add function `bt_bip_set_supported_functions()` to set the supported functions of responder. Check the supported features of responder when sending OBEX connect request on initiator side. Check the supported functions of responder when sending OBEX get/put request on initiator side. Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
Add define `BT_SDP_SUPPORTED_CAPABILITIES` to define supported capabilities attribute. Add define `BT_SDP_SUPPORTED_FUNCTIONS` to define supported functions attribute. Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
Add command `reg` to register the BIP responder SDP record. Add command `set_caps`, `set_features`, and `set_functions` to set the supported capabilities, features, and functions for BIP responder. Add command `discover` to discovery the BIP responder SDP record. And parse the response data to get the supported features and functions. Add command `set_feats_funcs` to set the discovered supported features and functions. Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
The response function should be consistent with the function of request when server responses the request of client. Check whether the BIP function in the server response function is consistent with the client request. Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
For the uncompleted BIP request, the following BIP request function should be same with the previous. Keep the first request function type, and check it with the following request function type. Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
Add Kconfig `BT_AVRCP_TG_COVER_ART` to enable the target cover art feature. Add Kconfig `BT_AVRCP_CT_COVER_ART_GET_IMAGE_PROPERTIES` to enable the controller cover art get image properties feature. Add Kconfig `BT_AVRCP_CT_COVER_ART_GET_IMAGE` to enable the controller cover art get image feature. Add Kconfig `BT_AVRCP_CT_COVER_ART_GET_LINKED_THUMBNAIL` to enable the controller cover art get linked thumbnail feature. Add functions `bt_avrcp_cover_art_ct_cb_register()` and `bt_avrcp_cover_art_tg_cb_register()` to register the callback. Add function `bt_avrcp_cover_art_ct_l2cap_connect()` to create the L2CAP connection for OBEX transport. Add functions `bt_avrcp_cover_art_ct_l2cap_disconnect()` and `bt_avrcp_cover_art_tg_l2cap_disconnect()` to disconnect the L2CAP connection. Add functions to send OBEX request/response, including connect, disconnect, abort, get_image_properties, get_image, and get_linked_thumbnail. Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
Add cover art shell commands for AVRCP controller and target. Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
@CanWang001 CanWang001 force-pushed the test_br_pts_avrcp branch 2 times, most recently from 8e185cc to 6875ef7 Compare November 14, 2025 08:15
Add Bluetooth Test Protocol (BTP) support for Audio/Video Remote Control Profile (AVRCP) and Audio/Video Control Transport Protocol (AVCTP) testing to enable PTS qualification. AVRCP implementation: - Controller (CT) role with browsing and cover art support - Target (TG) role with browsing and cover art support - Complete BTP command/event interface - Support for all AVRCP PTS test cases AVCTP implementation: - Complete BTP command/event interface - Support for all AVCTP PTS test cases Signed-off-by: Can Wang <can.wang@nxp.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

3 participants