bluez5: Add support for 32KHz sampling frequency

This commit is contained in:
kirankrishnappa-intel 2023-12-08 08:34:09 +00:00 committed by Wim Taymans
parent 92f0815e4d
commit b69e089648

View file

@ -123,7 +123,8 @@ static int codec_fill_caps(const struct media_codec *codec, uint32_t flags,
uint16_t framelen[2] = {htobs(LC3_MIN_FRAME_BYTES), htobs(LC3_MAX_FRAME_BYTES)};
data += write_ltv_uint16(data, LC3_TYPE_FREQ,
htobs(LC3_FREQ_48KHZ | LC3_FREQ_24KHZ | LC3_FREQ_16KHZ | LC3_FREQ_8KHZ));
htobs(LC3_FREQ_48KHZ | LC3_FREQ_32KHZ | \
LC3_FREQ_24KHZ | LC3_FREQ_16KHZ | LC3_FREQ_8KHZ));
data += write_ltv_uint8(data, LC3_TYPE_DUR, LC3_DUR_ANY);
data += write_ltv_uint8(data, LC3_TYPE_CHAN, LC3_CHAN_1 | LC3_CHAN_2);
data += write_ltv(data, LC3_TYPE_FRAMELEN, framelen, sizeof(framelen));
@ -266,6 +267,8 @@ static bool select_config(bap_lc3_t *conf, const struct pac_data *pac, struct sp
uint16_t rate = ltv->value[0] + (ltv->value[1] << 8);
if (rate & LC3_FREQ_48KHZ)
conf->rate = LC3_CONFIG_FREQ_48KHZ;
else if (rate & LC3_FREQ_32KHZ)
conf->rate = LC3_CONFIG_FREQ_32KHZ;
else if (rate & LC3_FREQ_24KHZ)
conf->rate = LC3_CONFIG_FREQ_24KHZ;
else if (rate & LC3_FREQ_16KHZ)
@ -346,6 +349,12 @@ static bool select_config(bap_lc3_t *conf, const struct pac_data *pac, struct sp
else
conf->framelen = 120; /* 48_4_2 */
break;
case LC3_CONFIG_FREQ_32KHZ:
if (conf->frame_duration == LC3_CONFIG_DURATION_7_5)
conf->framelen = 60; /* 32_1_2 */
else
conf->framelen = 80; /* 32_2_2 */
break;
case LC3_CONFIG_FREQ_24KHZ:
if (conf->frame_duration == LC3_CONFIG_DURATION_7_5)
conf->framelen = 45; /* 24_1_2 */