@@ -447,7 +447,11 @@ static bool sink_parse_cb(struct bt_data *data, void *user_data)
447447 switch (CONFIG_BT_AUDIO_PREF_SAMPLE_RATE_VALUE ) {
448448 case BT_AUDIO_CODEC_CFG_FREQ_48KHZ :
449449 if (lc3_freq_bit & BT_AUDIO_CODEC_CAP_FREQ_48KHZ ) {
450- lc3_preset_sink = lc3_preset_sink_48_4_1 ;
450+ if (bt_audio_codec_cfg_get_freq (& lc3_preset_sink .codec_cfg ) !=
451+ BT_AUDIO_CODEC_CFG_FREQ_48KHZ ) {
452+ lc3_preset_sink = lc3_preset_sink_48_4_1 ;
453+ }
454+
451455 * (bool * )user_data = true;
452456 /* Found what we were looking for, stop parsing LTV */
453457 return false;
@@ -457,7 +461,10 @@ static bool sink_parse_cb(struct bt_data *data, void *user_data)
457461
458462 case BT_AUDIO_CODEC_CFG_FREQ_24KHZ :
459463 if (lc3_freq_bit & BT_AUDIO_CODEC_CAP_FREQ_24KHZ ) {
460- lc3_preset_sink = lc3_preset_sink_24_2_1 ;
464+ if (bt_audio_codec_cfg_get_freq (& lc3_preset_sink .codec_cfg ) !=
465+ BT_AUDIO_CODEC_CFG_FREQ_24KHZ ) {
466+ lc3_preset_sink = lc3_preset_sink_24_2_1 ;
467+ }
461468 * (bool * )user_data = true;
462469 /* Found what we were looking for, stop parsing LTV */
463470 return false;
@@ -467,7 +474,10 @@ static bool sink_parse_cb(struct bt_data *data, void *user_data)
467474
468475 case BT_AUDIO_CODEC_CFG_FREQ_16KHZ :
469476 if (lc3_freq_bit & BT_AUDIO_CODEC_CAP_FREQ_16KHZ ) {
470- lc3_preset_sink = lc3_preset_sink_16_2_1 ;
477+ if (bt_audio_codec_cfg_get_freq (& lc3_preset_sink .codec_cfg ) !=
478+ BT_AUDIO_CODEC_CFG_FREQ_16KHZ ) {
479+ lc3_preset_sink = lc3_preset_sink_16_2_1 ;
480+ }
471481 * (bool * )user_data = true;
472482 /* Found what we were looking for, stop parsing LTV */
473483 return false;
@@ -478,13 +488,22 @@ static bool sink_parse_cb(struct bt_data *data, void *user_data)
478488
479489 /* If no match with the preferred, revert to trying highest first */
480490 if (lc3_freq_bit & BT_AUDIO_CODEC_CAP_FREQ_48KHZ ) {
481- lc3_preset_sink = lc3_preset_sink_48_4_1 ;
491+ if (bt_audio_codec_cfg_get_freq (& lc3_preset_sink .codec_cfg ) !=
492+ BT_AUDIO_CODEC_CFG_FREQ_48KHZ ) {
493+ lc3_preset_sink = lc3_preset_sink_48_4_1 ;
494+ }
482495 * (bool * )user_data = true;
483496 } else if (lc3_freq_bit & BT_AUDIO_CODEC_CAP_FREQ_24KHZ ) {
484- lc3_preset_sink = lc3_preset_sink_24_2_1 ;
497+ if (bt_audio_codec_cfg_get_freq (& lc3_preset_sink .codec_cfg ) !=
498+ BT_AUDIO_CODEC_CFG_FREQ_24KHZ ) {
499+ lc3_preset_sink = lc3_preset_sink_24_2_1 ;
500+ }
485501 * (bool * )user_data = true;
486502 } else if (lc3_freq_bit & BT_AUDIO_CODEC_CAP_FREQ_16KHZ ) {
487- lc3_preset_sink = lc3_preset_sink_16_2_1 ;
503+ if (bt_audio_codec_cfg_get_freq (& lc3_preset_sink .codec_cfg ) !=
504+ BT_AUDIO_CODEC_CFG_FREQ_16KHZ ) {
505+ lc3_preset_sink = lc3_preset_sink_16_2_1 ;
506+ }
488507 * (bool * )user_data = true;
489508 }
490509
0 commit comments