Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Introduction

Bluetooth in RDK, provides short range wireless connectivity between RDK devices and consumer electronics devices. RDK Bluetooth architecture is designed to support any Bluetooth stack.
The Bluetooth stack currently supports common Bluetooth profile such as A2DP, AVRCP, and can be extended to various profiles such as HID, PAN, etc.. Bluetooth may be enabled directly on capable RDK boxes or indirectly via USB-to-Bluetooth adaptor.

Features supported in RDK

Bluetooth feature in RDKFeature Descriptions
Audio Output SourcesBluetooth audio may be different than HDMI audio (e.g. secondary audio program, application sourced audio such as Pandora, voice navigation audio, etc).
Audio Output RoutingDetail PCM audio routing to Bluetooth A2DP SRC, It uses H/W accelerations, S/W processing, RMF involvement on streaming audio/video contents.
Audio EncodingDetail SBC (sub-band coding) and aptX encoding (Bluetooth chip, in software, or in SoC hardware).
Audio Output MutingThe Bluetooth audio output may be muted independently of other audio outputs (e.g. HDMI)
Audio Input (Settop as AD2P SNK)Using RDK device speakers over bluetooth i.e transmitting audio input back to a speaker connected with RDK device.
Dual DecodeSupports ability to simultaneously output one audio stream to HDMI and a different audio stream to Bluetooth
Power ControlIn future, the power state of each Bluetooth connected device and the Bluetooth subsystem can be controlled
Audio/Video Remote Control Profile (AVRCP)Controller (Remote Control) sends mute and volume commands to target. AV/C commands are defined by the 1394 trade association

Bluetooth in RDK - Block Diagram

...

Service Manager –Bluetooth (Methods Details)

Service Manager APIsDescriptions
getStatusSupportReturns the current status of Bluetooth subsystem
startDeviceDiscoveryInitiates device discovery
stopDeviceDiscoveryStops Bluetooth device discovery immediately
getDiscoveredDevicesReturns the list of discovered devices
getPairedDevicesReturns list of all paired device
getConnectedDevicesReturns list of all connected devices
setDeviceConnectionThe method requests RDK to connect to Bluetooth device
setAudioStreamChoose "PRIMARY" or "AUXILIARY" audio stream to be sent to audio sink
setDevicePairingPasses the device ID to connect
setBluetoothEnabledApplication enables or disables Bluetooth feature
setSinkDiscoveryThis method enables set-top discovery by other Bluetooth devices.
getDeviceInfodevice details


Bluetooth –Service Manager Events

Bluetooth EventsDescriptions
statusChangedInvoked when the status changes for Bluetooth functionality. The status can be enable/disable Bluetooth service, pairing status change, connection change, device discovery completed, etc.
pairingRequestPairing is requested by third party device that supports A2DP profile. Prerequisite is that RDK device is enabled as A2DP Sink device
pinRequestPIN is required for a ‘pairing in progress’, application needs to update pairing screen with PIN info
requestFailedIndicates that a previous request to pair or connect has failed with the corresponding failure reason

Bluetooth Manager (BTRMgr)

...

Some Bluetooth supported gstreamer plugins used by BlueZ 5:


Gstreamer Elements

Descriptions

sbcenc

Bluetooth SBC (sub-band coding) encoder

sbcdec

Bluetooth SBC (sub-band coding) decoder

sbcparse

The sbcparse element will parse a Bluetooth SBC audio stream into frames and timestamp them properly

avdtpsink

Bluetooth AVDTP sink

a2dpsink

Bluetooth A2DP sink for streaming audio

rtpsbcpay

RTP packet payload maker

Use Case : Bluetooth Device Discovery

...