mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-31 19:20:26 +00:00
avdtp_util: validate channel count
This commit is contained in:
parent
1da1861527
commit
c83b8b89db
@ -987,13 +987,16 @@ uint8_t a2dp_config_process_set_mpeg_aac(avdtp_role_t role, uint16_t a2dp_cid,
|
||||
a2dp_config_process_t * config_process = a2dp_config_process_for_role(role, connection);
|
||||
|
||||
uint8_t status = a2dp_config_process_config_init(role, connection, local_seid, remote_seid, AVDTP_CODEC_MPEG_2_4_AAC);
|
||||
if (status != 0) {
|
||||
if (status != ERROR_CODE_SUCCESS) {
|
||||
return status;
|
||||
}
|
||||
config_process->local_stream_endpoint->remote_configuration.media_codec.media_codec_information = (uint8_t *) config_process->local_stream_endpoint->media_codec_info;
|
||||
config_process->local_stream_endpoint->remote_configuration.media_codec.media_codec_information_len = 6;
|
||||
avdtp_config_mpeg_aac_store(config_process->local_stream_endpoint->remote_configuration.media_codec.media_codec_information, configuration);
|
||||
status = avdtp_config_mpeg_aac_store(config_process->local_stream_endpoint->remote_configuration.media_codec.media_codec_information, configuration);
|
||||
|
||||
if (status != ERROR_CODE_SUCCESS){
|
||||
return status;
|
||||
}
|
||||
#ifdef ENABLE_A2DP_EXPLICIT_CONFIG
|
||||
a2dp_config_process_set_config(role, connection);
|
||||
#endif
|
||||
|
@ -1625,7 +1625,7 @@ void avdtp_config_mpeg_aac_set_sampling_frequency(uint8_t * config, uint16_t sam
|
||||
config[2] = ((sampling_frequency_bitmap & 0x0f) << 4) | (config[2] & 0x0f);
|
||||
}
|
||||
|
||||
void avdtp_config_mpeg_aac_store(uint8_t * config, const avdtp_configuration_mpeg_aac_t * configuration) {
|
||||
uint8_t avdtp_config_mpeg_aac_store(uint8_t * config, const avdtp_configuration_mpeg_aac_t * configuration) {
|
||||
config[0] = (1 << (7 -(configuration->object_type - AVDTP_AAC_MPEG2_LC))) | (configuration->drc?1u:0u);
|
||||
uint8_t channels_bitmap = 0;
|
||||
switch (configuration->channels){
|
||||
@ -1642,13 +1642,14 @@ void avdtp_config_mpeg_aac_store(uint8_t * config, const avdtp_configuration_mpe
|
||||
channels_bitmap = 0x01;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
return ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE;
|
||||
}
|
||||
config[2] = channels_bitmap & 0x0F;
|
||||
config[2] = channels_bitmap;
|
||||
config[3] = ((configuration->vbr & 0x01) << 7) | ((configuration->bit_rate >> 16) & 0x7f);
|
||||
config[4] = (configuration->bit_rate >> 8) & 0xff;
|
||||
config[5] = configuration->bit_rate & 0xff;
|
||||
avdtp_config_mpeg_aac_set_sampling_frequency(config, configuration->sampling_frequency);
|
||||
return ERROR_CODE_SUCCESS;
|
||||
}
|
||||
|
||||
void avdtp_config_atrac_set_sampling_frequency(uint8_t * config, uint16_t sampling_frequency_hz) {
|
||||
|
@ -132,7 +132,7 @@ void avdtp_config_sbc_store(uint8_t * config, const avdtp_configuration_sbc_t *
|
||||
void avdtp_config_mpeg_audio_set_sampling_frequency(uint8_t * config, uint16_t sampling_frequency_hz);
|
||||
void avdtp_config_mpeg_audio_store(uint8_t * config, const avdtp_configuration_mpeg_audio_t * configuration);
|
||||
void avdtp_config_mpeg_aac_set_sampling_frequency(uint8_t * config, uint16_t sampling_frequency_hz);
|
||||
void avdtp_config_mpeg_aac_store(uint8_t * config, const avdtp_configuration_mpeg_aac_t * configuration);
|
||||
uint8_t avdtp_config_mpeg_aac_store(uint8_t * config, const avdtp_configuration_mpeg_aac_t * configuration);
|
||||
void avdtp_config_atrac_set_sampling_frequency(uint8_t * config, uint16_t sampling_frequency_hz);
|
||||
void avdtp_config_atrac_store(uint8_t * config, const avdtp_configuration_atrac_t * configuration);
|
||||
void avdtp_config_mpegd_usac_set_sampling_frequency(uint8_t * config, uint16_t sampling_frequency_hz);
|
||||
|
Loading…
x
Reference in New Issue
Block a user