bluez5: add LC3plus A2DP vendor codec caps

From the specification
https://www.iis.fraunhofer.de/en/ff/amm/communication/lc3.html
This commit is contained in:
Pauli Virtanen 2022-04-30 21:02:36 +03:00
parent f9850ca4f8
commit d28394173a

View file

@ -202,6 +202,37 @@
#define FASTSTREAM_SOURCE_SAMPLING_FREQ_16000 0x2
#define LC3PLUS_HR_GET_FRAME_DURATION(a) ((a).frame_duration & 0xf0)
#define LC3PLUS_HR_INIT_FRAME_DURATION(v) \
.frame_duration = ((v) & 0xf0),
#define LC3PLUS_HR_SET_FRAME_DURATION(a, v) \
do { \
(a).frame_duration = ((v) & 0xf0); \
} while (0)
#define LC3PLUS_HR_GET_FREQUENCY(a) (((a).frequency1 << 8) | (a).frequency2)
#define LC3PLUS_HR_INIT_FREQUENCY(v) \
.frequency1 = (((v) >> 8) & 0xff), \
.frequency2 = ((v) & 0xff),
#define LC3PLUS_HR_SET_FREQUENCY(a, v) \
do { \
(a).frequency1 = ((v) >> 8) & 0xff; \
(a).frequency2 = (v) & 0xff; \
} while (0)
#define LC3PLUS_HR_VENDOR_ID 0x000008a9
#define LC3PLUS_HR_CODEC_ID 0x0001
#define LC3PLUS_HR_FRAME_DURATION_10MS (1 << 6)
#define LC3PLUS_HR_FRAME_DURATION_5MS (1 << 5)
#define LC3PLUS_HR_FRAME_DURATION_2_5MS (1 << 4)
#define LC3PLUS_HR_CHANNELS_1 (1 << 7)
#define LC3PLUS_HR_CHANNELS_2 (1 << 6)
#define LC3PLUS_HR_SAMPLING_FREQ_48000 (1 << 8)
#define LC3PLUS_HR_SAMPLING_FREQ_96000 (1 << 7)
typedef struct {
uint32_t vendor_id;
uint16_t codec_id;
@ -352,4 +383,12 @@ typedef struct {
uint8_t good_working_level1;
} __attribute__ ((packed)) a2dp_aptx_ll_ext_t;
typedef struct {
a2dp_vendor_codec_t info;
uint8_t frame_duration;
uint8_t channels;
uint8_t frequency1;
uint8_t frequency2;
} __attribute__ ((packed)) a2dp_lc3plus_hr_t;
#endif