Bluetooth: BAP: Fix issue with setting invalid iso data path
BAP would always set up the ISO data path in both directions, even for unidirectional CIS. This meant that in the unconfigured direction, the data path configuration data would all be 0, which causes issues on some controllers. The new refactored approach implemented by this commit will always ensure that the data path is setup correctly, and that we only set the data path in one direction for unidirectional CIS. The unset path will use the default ISO path of HCI and transparant format, which should always be allowed by a controller. This is building on the requirement in BAP that all streams in a unicast group shall be QoS configured at the same time. This ensures that before any streams in the CIG has been connected, they have all been configured. Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
This commit is contained in:
parent
e4c3f30feb
commit
aef39f6923
8 changed files with 46 additions and 52 deletions
|
@ -294,7 +294,7 @@ static int broadcast_source_setup_stream(uint8_t index, struct bt_bap_stream *st
|
|||
bt_bap_iso_bind_ep(iso, ep);
|
||||
|
||||
bt_audio_codec_qos_to_iso_qos(iso->chan.qos->tx, qos);
|
||||
bt_audio_codec_cfg_to_iso_path(iso->chan.qos->tx->path, codec_cfg);
|
||||
bt_bap_iso_configure_data_path(ep, codec_cfg);
|
||||
#if defined(CONFIG_BT_ISO_TEST_PARAMS)
|
||||
iso->chan.qos->num_subevents = qos->num_subevents;
|
||||
#endif /* CONFIG_BT_ISO_TEST_PARAMS */
|
||||
|
@ -884,7 +884,7 @@ int bt_bap_broadcast_source_reconfig(struct bt_bap_broadcast_source *source,
|
|||
|
||||
iso_qos = stream->ep->iso->chan.qos->tx;
|
||||
bt_bap_stream_attach(NULL, stream, stream->ep, codec_cfg);
|
||||
bt_audio_codec_cfg_to_iso_path(iso_qos->path, codec_cfg);
|
||||
bt_bap_iso_configure_data_path(stream->ep, codec_cfg);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue