Skip to content
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

Samples: Bluetooth: Fix PAST support for broadcast sink #69040

Merged

Conversation

Thalley
Copy link
Collaborator

@Thalley Thalley commented Feb 15, 2024

Fix missing support for PAST in the broadcast audio sink sample, where it previously failed to request PAST from the broadcast assistant by not setting the PA state to BT_BAP_PA_STATE_INFO_REQ.

fixes #68212

Fix missing support for PAST in the broadcast audio sink
sample, where it previously failed to request PAST from
the broadcast assistant by not setting the PA state to
BT_BAP_PA_STATE_INFO_REQ.

Signed-off-by: Emil Gydesen <[email protected]>
/* start scan */
err = 0;

err = bt_bap_scan_delegator_set_pa_state(recv_state->src_id,
Copy link
Collaborator

Choose a reason for hiding this comment

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

should we set the PA state to BT_BAP_PA_STATE_INFO_REQ to request PAST prior to calling pa_sync_past() in the line 671 ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

should we set the PA state to BT_BAP_PA_STATE_INFO_REQ to request PAST prior to calling pa_sync_past() in the line 671 ?

Hmm, good question, but I would argue no. If we (for whatever reason) fail to subscribe to PAST (which is what pa_sync_past does), then we don't need to update the state. I think we makes sense to update the state, when we reach a point that we are waiting for the remote device

Copy link
Collaborator

Choose a reason for hiding this comment

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

how about if we are not allowed to set the state to be BT_BAP_PA_STATE_INFO_REQ for some reason (e.g Could not find recv_state by src_id ....), do we still need to subscribe to PAST by pa_sync_past() ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Hmm, that is a fair point.

So basically we have the option to do

  1. Subscribe to past
  2. Set state (if this fails, no state change was done, and we can return error)

or

  1. Set state (if this fails, no state change was done, and we can return error)
  2. Subscribe to past
  3. If 2. fails, we need to restore state (and what if this fails?)

I would be OK with changing it to the latter, but it is a more complex solution, where as subscription to PAST is not really hurtful (and cannot be undone), even if we don't receive PAST from the peer.

Let me know if you want me to change it, but my immediate opinion would be to keep as is to keep it simple

Copy link
Collaborator

Choose a reason for hiding this comment

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

I see, it is ok for me to choose option 1 :-)

@Thalley Thalley requested a review from pin-zephyr February 16, 2024 09:12
/* start scan */
err = 0;

err = bt_bap_scan_delegator_set_pa_state(recv_state->src_id,
Copy link
Collaborator

Choose a reason for hiding this comment

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

how about if we are not allowed to set the state to be BT_BAP_PA_STATE_INFO_REQ for some reason (e.g Could not find recv_state by src_id ....), do we still need to subscribe to PAST by pa_sync_past() ?

@Thalley Thalley requested a review from pin-zephyr February 16, 2024 11:18
Copy link
Collaborator

@pin-zephyr pin-zephyr left a comment

Choose a reason for hiding this comment

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

LGTM

@henrikbrixandersen henrikbrixandersen merged commit b374a42 into zephyrproject-rtos:main Feb 16, 2024
20 checks passed
@Thalley Thalley deleted the scan_delegator_past_fix branch February 19, 2024 08:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

LE Audio: Broadcast audio sink sample not handling PAST correctly
6 participants