Re: [RFC PATCH BlueZ 2/9] org.bluez.MediaEndpoint: add client role SelectProperties

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Pauli,

On Sat, Mar 1, 2025 at 10:58 AM Pauli Virtanen <pav@xxxxxx> wrote:
>
> Add a simple way for the sound server to reconfigure a BAP unicast
> endpoint, by calling org.bluez.MediaEndpoint.SelectProperties().
>
> This shall destroy all streams of the endpoint, and restart the
> SelectProperties() configuration flow from the beginning.
>
> Since it may be necessary to reconfigure multiple endpoints at once to
> correctly make bidirectional CIS, add Defer argument to just mark eps
> for configuration.
>
> In future, org.bluez.MediaEndpoint.SetConfiguration() could be changed
> to handle unicast in the same way as broadcast: only create streams.
> This allows sound server to have full control over stream configuration
> itself, and not rely on bt_bap_select().

This one Im not too sure, perhaps it would be better to add something
like org.bluez.MediaTransport.Reconfigure to avoid having to add role
dependent documentation like bellow

> ---
>  doc/org.bluez.MediaEndpoint.rst | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
>
> diff --git a/doc/org.bluez.MediaEndpoint.rst b/doc/org.bluez.MediaEndpoint.rst
> index b81106f0b..5c42b878c 100644
> --- a/doc/org.bluez.MediaEndpoint.rst
> +++ b/doc/org.bluez.MediaEndpoint.rst
> @@ -69,6 +69,8 @@ array{byte} SelectConfiguration(array{byte} capabilities)
>  dict SelectProperties(dict capabilities)
>  ````````````````````````````````````````
>
> +       **Server Role**
> +
>         Select BAP unicast configuration from the supported capabilities:
>
>         :object Endpoint:
> @@ -104,6 +106,25 @@ dict SelectProperties(dict capabilities)
>         Note: There is no need to cache the selected properties since on
>         success the configuration is send back as parameter of SetConfiguration.
>
> +       **Client Role**
> +
> +       Reconfigure a BAP unicast endpoint. This closes all existing
> +       streams of the endpoint, and restarts the configuration
> +       selection flow which e.g. triggers calls to *SelectProperties*
> +       allowing the sound server to modify the configuration.
> +
> +       The following arguments are taken in *capabilities*:
> +
> +       :boolean Defer [optional]:
> +
> +               If True, mark endpoint for reconfiguration, but
> +               postpone it until a non-deferred *SelectProperties()*
> +               operation is made on an endpoint of the same device.
> +
> +               This is necessary to use when reconfiguring source and
> +               sink streams with the intention that they be combined
> +               into the same CIG, possibly forming bidirectional CIS.

We could perhaps adds Defer option to MediaTransport.Reconfigure and
then use MediaTransport.Select to clear it, that said for broadcast we
did set a dedicated state when it is not active so perhaps we should
do something similar here.

>  void ClearConfiguration(object transport)
>  `````````````````````````````````````````
>
> --
> 2.48.1
>
>


-- 
Luiz Augusto von Dentz





[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux