zephyr/samples/bluetooth/broadcast_audio_source
Sean Farrelly 9e28e9e564 samples: Bluetooth: Broadcast Audio Source: Fix potential memory leak
In error cases, where send_data() returns early, the allocated net_buf
is not free'd, causing a memory leak affecting the net_buf pool.
Fix this by freeing the allocated net_buf before returning early
from send_data().

Signed-off-by: Sean Farrelly <sean.farrelly@outlook.com>
2024-02-14 14:28:28 +01:00
..
boards samples: Bluetooth: Broadcast audio source USB headset on nRF52 Series 2023-12-12 15:02:51 +01:00
src samples: Bluetooth: Broadcast Audio Source: Fix potential memory leak 2024-02-14 14:28:28 +01:00
CMakeLists.txt
Kconfig samples: Bluetooth: Broadcast audio source USB headset on nRF52 Series 2023-12-12 15:02:51 +01:00
Kconfig.sysbuild samples/bluetooth: sysbuild: Add Kconfig setting for HCI IPC inclusion 2023-11-27 12:19:56 +00:00
overlay-bt_ll_sw_split.conf
prj.conf samples: Bluetooth: Update buffer counts for Broadcast Audio Source 2023-12-12 15:02:51 +01:00
README.rst Bluetooth samples: broadcast audio: Improve documentation 2023-11-06 15:17:15 +01:00
sample.yaml samples: Bluetooth: Broadcast audio source USB headset on nRF52 Series 2023-12-12 15:02:51 +01:00
sysbuild.cmake samples/bluetooth: Reduce sysbuild boilerplate 2023-12-02 07:53:11 -05:00

.. zephyr:code-sample:: bluetooth_broadcast_audio_source
   :name: Bluetooth: Broadcast Audio Source
   :relevant-api: bluetooth

   Bluetooth: Broadcast Audio Source

Overview
********

Application demonstrating the LE Audio broadcast audio source functionality.
Will start advertising extended advertising with audio flags, periodic advertising with the
broadcast audio source endpoint (BASE) and finally the BIGinfo together with
(mock) Audio (ISO) data.

The broadcast source will reset every 30 seconds to show the full API.

This sample can be found under
:zephyr_file:`samples/bluetooth/broadcast_audio_source` in the Zephyr tree.

Check the :ref:`bluetooth samples section <bluetooth-samples>` for general information.

Requirements
************

* BlueZ running on the host, or
* A board with Bluetooth Low Energy 5.2 support

Building and Running
********************

When building targeting an nrf52 series board with the Zephyr Bluetooth Controller,
use `-DOVERLAY_CONFIG=overlay-bt_ll_sw_split.conf` to enable the required ISO
feature support.

Building for an nrf5340dk
-------------------------

You can build both the application core image and an appropriate controller image for the network
core with:

.. zephyr-app-commands::
   :zephyr-app: samples/bluetooth/broadcast_audio_source/
   :board: nrf5340dk_nrf5340_cpuapp
   :goals: build
   :west-args: --sysbuild

If you prefer to only build the application core image, you can do so by doing instead:

.. zephyr-app-commands::
   :zephyr-app: samples/bluetooth/broadcast_audio_source/
   :board: nrf5340dk_nrf5340_cpuapp
   :goals: build

In that case you can pair this application core image with the
:ref:`hci_ipc sample <bluetooth-hci-ipc-sample>`
:zephyr_file:`samples/bluetooth/hci_ipc/nrf5340_cpunet_iso-bt_ll_sw_split.conf` configuration.

Building for a simulated nrf5340bsim
------------------------------------

Similarly to how you would for real HW, you can do:

.. zephyr-app-commands::
   :zephyr-app: samples/bluetooth/broadcast_audio_source/
   :board: nrf5340bsim_nrf5340_cpuapp
   :goals: build
   :west-args: --sysbuild

Note this will produce a Linux executable in `./build/zephyr/zephyr.exe`.
For more information, check :ref:`this board documentation <nrf5340bsim>`.

Building for a simulated nrf52_bsim
-----------------------------------

.. zephyr-app-commands::
   :zephyr-app: samples/bluetooth/broadcast_audio_source/
   :board: nrf52_bsim
   :goals: build
   :gen-args: -DOVERLAY_CONFIG=overlay-bt_ll_sw_split.conf