Loading android/app/jni/com_android_bluetooth_le_audio.cpp +9 −13 Original line number Diff line number Diff line Loading @@ -648,47 +648,43 @@ static jlong getAudioLocationOrDefault( const std::map<uint8_t, std::vector<uint8_t>>& metadata, jlong default_location) { if (metadata.count( bluetooth::le_audio::kLeAudioCodecLC3TypeAudioChannelAllocation) == 0) bluetooth::le_audio::kLeAudioLtvTypeAudioChannelAllocation) == 0) return default_location; auto& vec = metadata.at( bluetooth::le_audio::kLeAudioCodecLC3TypeAudioChannelAllocation); auto& vec = metadata.at(bluetooth::le_audio::kLeAudioLtvTypeAudioChannelAllocation); return VEC_UINT8_TO_UINT32(vec); } static jint getSamplingFrequencyOrDefault( const std::map<uint8_t, std::vector<uint8_t>>& metadata, jint default_sampling_frequency) { if (metadata.count(bluetooth::le_audio::kLeAudioCodecLC3TypeSamplingFreq) == 0) if (metadata.count(bluetooth::le_audio::kLeAudioLtvTypeSamplingFreq) == 0) return default_sampling_frequency; auto& vec = metadata.at(bluetooth::le_audio::kLeAudioCodecLC3TypeSamplingFreq); auto& vec = metadata.at(bluetooth::le_audio::kLeAudioLtvTypeSamplingFreq); return (jint)(vec.data()[0]); } static jint getFrameDurationOrDefault( const std::map<uint8_t, std::vector<uint8_t>>& metadata, jint default_frame_duration) { if (metadata.count(bluetooth::le_audio::kLeAudioCodecLC3TypeFrameDuration) == 0) if (metadata.count(bluetooth::le_audio::kLeAudioLtvTypeFrameDuration) == 0) return default_frame_duration; auto& vec = metadata.at(bluetooth::le_audio::kLeAudioCodecLC3TypeFrameDuration); auto& vec = metadata.at(bluetooth::le_audio::kLeAudioLtvTypeFrameDuration); return (jint)(vec.data()[0]); } static jint getOctetsPerFrameOrDefault( const std::map<uint8_t, std::vector<uint8_t>>& metadata, jint default_octets_per_frame) { if (metadata.count(bluetooth::le_audio::kLeAudioCodecLC3TypeOctetPerFrame) == if (metadata.count(bluetooth::le_audio::kLeAudioLtvTypeOctetsPerCodecFrame) == 0) return default_octets_per_frame; auto& vec = metadata.at(bluetooth::le_audio::kLeAudioCodecLC3TypeOctetPerFrame); metadata.at(bluetooth::le_audio::kLeAudioLtvTypeOctetsPerCodecFrame); return VEC_UINT8_TO_UINT16(vec); } Loading system/audio_hal_interface/aidl/le_audio_software_aidl.cc +8 −8 Original line number Diff line number Diff line Loading @@ -439,16 +439,16 @@ std::unordered_map<int32_t, uint8_t> sampling_freq_map{ {192000, ::le_audio::codec_spec_conf::kLeAudioSamplingFreq192000Hz}}; std::unordered_map<int32_t, uint8_t> frame_duration_map{ {7500, ::le_audio::codec_spec_conf::kLeAudioCodecLC3FrameDur7500us}, {10000, ::le_audio::codec_spec_conf::kLeAudioCodecLC3FrameDur10000us}}; {7500, ::le_audio::codec_spec_conf::kLeAudioCodecFrameDur7500us}, {10000, ::le_audio::codec_spec_conf::kLeAudioCodecFrameDur10000us}}; std::unordered_map<int32_t, uint16_t> octets_per_frame_map{ {30, ::le_audio::codec_spec_conf::kLeAudioCodecLC3FrameLen30}, {40, ::le_audio::codec_spec_conf::kLeAudioCodecLC3FrameLen40}, {60, ::le_audio::codec_spec_conf::kLeAudioCodecLC3FrameLen60}, {80, ::le_audio::codec_spec_conf::kLeAudioCodecLC3FrameLen80}, {100, ::le_audio::codec_spec_conf::kLeAudioCodecLC3FrameLen100}, {120, ::le_audio::codec_spec_conf::kLeAudioCodecLC3FrameLen120}}; {30, ::le_audio::codec_spec_conf::kLeAudioCodecFrameLen30}, {40, ::le_audio::codec_spec_conf::kLeAudioCodecFrameLen40}, {60, ::le_audio::codec_spec_conf::kLeAudioCodecFrameLen60}, {80, ::le_audio::codec_spec_conf::kLeAudioCodecFrameLen80}, {100, ::le_audio::codec_spec_conf::kLeAudioCodecFrameLen100}, {120, ::le_audio::codec_spec_conf::kLeAudioCodecFrameLen120}}; std::unordered_map<AudioLocation, uint32_t> audio_location_map{ {AudioLocation::UNKNOWN, Loading system/bta/le_audio/broadcaster/broadcaster_types.cc +9 −10 Original line number Diff line number Diff line Loading @@ -332,9 +332,9 @@ const std::map<uint32_t, uint8_t> sample_rate_to_sampling_freq_map = { const std::map<uint32_t, uint8_t> data_interval_ms_to_frame_duration = { {LeAudioCodecConfiguration::kInterval7500Us, codec_spec_conf::kLeAudioCodecLC3FrameDur7500us}, codec_spec_conf::kLeAudioCodecFrameDur7500us}, {LeAudioCodecConfiguration::kInterval10000Us, codec_spec_conf::kLeAudioCodecLC3FrameDur10000us}, codec_spec_conf::kLeAudioCodecFrameDur10000us}, }; types::LeAudioLtvMap BroadcastCodecWrapper::GetBisCodecSpecData( Loading @@ -345,11 +345,11 @@ types::LeAudioLtvMap BroadcastCodecWrapper::GetBisCodecSpecData( switch (bis_idx) { case 1: return types::LeAudioLtvMap( {{codec_spec_conf::kLeAudioCodecLC3TypeAudioChannelAllocation, {{codec_spec_conf::kLeAudioLtvTypeAudioChannelAllocation, UINT32_TO_VEC_UINT8(codec_spec_conf::kLeAudioLocationFrontLeft)}}); case 2: return types::LeAudioLtvMap( {{codec_spec_conf::kLeAudioCodecLC3TypeAudioChannelAllocation, {{codec_spec_conf::kLeAudioLtvTypeAudioChannelAllocation, UINT32_TO_VEC_UINT8(codec_spec_conf::kLeAudioLocationFrontRight)}}); break; default: Loading @@ -366,22 +366,21 @@ types::LeAudioLtvMap BroadcastCodecWrapper::GetSubgroupCodecSpecData() const { << "Invalid data_interval"; std::map<uint8_t, std::vector<uint8_t>> codec_spec_ltvs = { {codec_spec_conf::kLeAudioCodecLC3TypeSamplingFreq, {codec_spec_conf::kLeAudioLtvTypeSamplingFreq, UINT8_TO_VEC_UINT8(sample_rate_to_sampling_freq_map.at( source_codec_config.sample_rate))}, {codec_spec_conf::kLeAudioCodecLC3TypeFrameDuration, {codec_spec_conf::kLeAudioLtvTypeFrameDuration, UINT8_TO_VEC_UINT8(data_interval_ms_to_frame_duration.at( source_codec_config.data_interval_us))}, }; if (codec_id.coding_format == kLeAudioCodecIdLc3.coding_format) { codec_spec_ltvs[codec_spec_conf::kLeAudioCodecLC3TypeOctetPerFrame] = codec_spec_ltvs[codec_spec_conf::kLeAudioLtvTypeOctetsPerCodecFrame] = UINT16_TO_VEC_UINT8(codec_frame_len); } if (source_codec_config.num_channels == 1) { codec_spec_ltvs [codec_spec_conf::kLeAudioCodecLC3TypeAudioChannelAllocation] = codec_spec_ltvs[codec_spec_conf::kLeAudioLtvTypeAudioChannelAllocation] = UINT32_TO_VEC_UINT8(codec_spec_conf::kLeAudioLocationFrontCenter); } Loading system/bta/le_audio/client_parser_test.cc +12 −15 Original line number Diff line number Diff line Loading @@ -1114,12 +1114,11 @@ TEST(LeAudioClientParserTest, testPrepareAseCtpCodecConfigSingle) { .vendor_codec_id = 0x0405}; types::LeAudioLtvMap codec_conf = types::LeAudioLtvMap() .Add(codec_spec_conf::kLeAudioCodecLC3TypeSamplingFreq, (uint8_t)0x10) .Add(codec_spec_conf::kLeAudioCodecLC3TypeFrameDuration, (uint8_t)0x03) .Add(codec_spec_conf::kLeAudioCodecLC3TypeAudioChannelAllocation, .Add(codec_spec_conf::kLeAudioLtvTypeSamplingFreq, (uint8_t)0x10) .Add(codec_spec_conf::kLeAudioLtvTypeFrameDuration, (uint8_t)0x03) .Add(codec_spec_conf::kLeAudioLtvTypeAudioChannelAllocation, (uint32_t)0x04050607) .Add(codec_spec_conf::kLeAudioCodecLC3TypeOctetPerFrame, .Add(codec_spec_conf::kLeAudioLtvTypeOctetsPerCodecFrame, (uint16_t)0x0203); confs.push_back(ctp_codec_conf{ Loading Loading @@ -1175,12 +1174,11 @@ TEST(LeAudioClientParserTest, testPrepareAseCtpCodecConfigMultiple) { .vendor_codec_id = 0x0405}; types::LeAudioLtvMap codec_conf = types::LeAudioLtvMap() .Add(codec_spec_conf::kLeAudioCodecLC3TypeSamplingFreq, (uint8_t)0x10) .Add(codec_spec_conf::kLeAudioCodecLC3TypeFrameDuration, (uint8_t)0x03) .Add(codec_spec_conf::kLeAudioCodecLC3TypeAudioChannelAllocation, .Add(codec_spec_conf::kLeAudioLtvTypeSamplingFreq, (uint8_t)0x10) .Add(codec_spec_conf::kLeAudioLtvTypeFrameDuration, (uint8_t)0x03) .Add(codec_spec_conf::kLeAudioLtvTypeAudioChannelAllocation, (uint32_t)0x04050607) .Add(codec_spec_conf::kLeAudioCodecLC3TypeOctetPerFrame, .Add(codec_spec_conf::kLeAudioLtvTypeOctetsPerCodecFrame, (uint16_t)0x0203); confs.push_back(ctp_codec_conf{ Loading Loading @@ -1231,12 +1229,11 @@ TEST(LeAudioClientParserTest, testPrepareAseCtpCodecConfigMultiple) { .vendor_codec_id = 0x1415}; types::LeAudioLtvMap codec_conf2 = types::LeAudioLtvMap() .Add(codec_spec_conf::kLeAudioCodecLC3TypeSamplingFreq, (uint8_t)0x11) .Add(codec_spec_conf::kLeAudioCodecLC3TypeFrameDuration, (uint8_t)0x13) .Add(codec_spec_conf::kLeAudioCodecLC3TypeAudioChannelAllocation, .Add(codec_spec_conf::kLeAudioLtvTypeSamplingFreq, (uint8_t)0x11) .Add(codec_spec_conf::kLeAudioLtvTypeFrameDuration, (uint8_t)0x13) .Add(codec_spec_conf::kLeAudioLtvTypeAudioChannelAllocation, (uint32_t)0x14151617) .Add(codec_spec_conf::kLeAudioCodecLC3TypeOctetPerFrame, .Add(codec_spec_conf::kLeAudioLtvTypeOctetsPerCodecFrame, (uint16_t)0x1213); confs.push_back(ctp_codec_conf{ Loading system/bta/le_audio/devices.cc +1 −1 Original line number Diff line number Diff line Loading @@ -2725,7 +2725,7 @@ uint8_t LeAudioDevice::GetLc3SupportedChannelCount(uint8_t direction) { continue; auto supported_channel_count_ltv = pac.codec_spec_caps.Find( codec_spec_caps::kLeAudioCodecLC3TypeAudioChannelCounts); codec_spec_caps::kLeAudioLtvTypeAudioChannelCounts); if (supported_channel_count_ltv == std::nullopt || supported_channel_count_ltv->size() == 0L) { Loading Loading
android/app/jni/com_android_bluetooth_le_audio.cpp +9 −13 Original line number Diff line number Diff line Loading @@ -648,47 +648,43 @@ static jlong getAudioLocationOrDefault( const std::map<uint8_t, std::vector<uint8_t>>& metadata, jlong default_location) { if (metadata.count( bluetooth::le_audio::kLeAudioCodecLC3TypeAudioChannelAllocation) == 0) bluetooth::le_audio::kLeAudioLtvTypeAudioChannelAllocation) == 0) return default_location; auto& vec = metadata.at( bluetooth::le_audio::kLeAudioCodecLC3TypeAudioChannelAllocation); auto& vec = metadata.at(bluetooth::le_audio::kLeAudioLtvTypeAudioChannelAllocation); return VEC_UINT8_TO_UINT32(vec); } static jint getSamplingFrequencyOrDefault( const std::map<uint8_t, std::vector<uint8_t>>& metadata, jint default_sampling_frequency) { if (metadata.count(bluetooth::le_audio::kLeAudioCodecLC3TypeSamplingFreq) == 0) if (metadata.count(bluetooth::le_audio::kLeAudioLtvTypeSamplingFreq) == 0) return default_sampling_frequency; auto& vec = metadata.at(bluetooth::le_audio::kLeAudioCodecLC3TypeSamplingFreq); auto& vec = metadata.at(bluetooth::le_audio::kLeAudioLtvTypeSamplingFreq); return (jint)(vec.data()[0]); } static jint getFrameDurationOrDefault( const std::map<uint8_t, std::vector<uint8_t>>& metadata, jint default_frame_duration) { if (metadata.count(bluetooth::le_audio::kLeAudioCodecLC3TypeFrameDuration) == 0) if (metadata.count(bluetooth::le_audio::kLeAudioLtvTypeFrameDuration) == 0) return default_frame_duration; auto& vec = metadata.at(bluetooth::le_audio::kLeAudioCodecLC3TypeFrameDuration); auto& vec = metadata.at(bluetooth::le_audio::kLeAudioLtvTypeFrameDuration); return (jint)(vec.data()[0]); } static jint getOctetsPerFrameOrDefault( const std::map<uint8_t, std::vector<uint8_t>>& metadata, jint default_octets_per_frame) { if (metadata.count(bluetooth::le_audio::kLeAudioCodecLC3TypeOctetPerFrame) == if (metadata.count(bluetooth::le_audio::kLeAudioLtvTypeOctetsPerCodecFrame) == 0) return default_octets_per_frame; auto& vec = metadata.at(bluetooth::le_audio::kLeAudioCodecLC3TypeOctetPerFrame); metadata.at(bluetooth::le_audio::kLeAudioLtvTypeOctetsPerCodecFrame); return VEC_UINT8_TO_UINT16(vec); } Loading
system/audio_hal_interface/aidl/le_audio_software_aidl.cc +8 −8 Original line number Diff line number Diff line Loading @@ -439,16 +439,16 @@ std::unordered_map<int32_t, uint8_t> sampling_freq_map{ {192000, ::le_audio::codec_spec_conf::kLeAudioSamplingFreq192000Hz}}; std::unordered_map<int32_t, uint8_t> frame_duration_map{ {7500, ::le_audio::codec_spec_conf::kLeAudioCodecLC3FrameDur7500us}, {10000, ::le_audio::codec_spec_conf::kLeAudioCodecLC3FrameDur10000us}}; {7500, ::le_audio::codec_spec_conf::kLeAudioCodecFrameDur7500us}, {10000, ::le_audio::codec_spec_conf::kLeAudioCodecFrameDur10000us}}; std::unordered_map<int32_t, uint16_t> octets_per_frame_map{ {30, ::le_audio::codec_spec_conf::kLeAudioCodecLC3FrameLen30}, {40, ::le_audio::codec_spec_conf::kLeAudioCodecLC3FrameLen40}, {60, ::le_audio::codec_spec_conf::kLeAudioCodecLC3FrameLen60}, {80, ::le_audio::codec_spec_conf::kLeAudioCodecLC3FrameLen80}, {100, ::le_audio::codec_spec_conf::kLeAudioCodecLC3FrameLen100}, {120, ::le_audio::codec_spec_conf::kLeAudioCodecLC3FrameLen120}}; {30, ::le_audio::codec_spec_conf::kLeAudioCodecFrameLen30}, {40, ::le_audio::codec_spec_conf::kLeAudioCodecFrameLen40}, {60, ::le_audio::codec_spec_conf::kLeAudioCodecFrameLen60}, {80, ::le_audio::codec_spec_conf::kLeAudioCodecFrameLen80}, {100, ::le_audio::codec_spec_conf::kLeAudioCodecFrameLen100}, {120, ::le_audio::codec_spec_conf::kLeAudioCodecFrameLen120}}; std::unordered_map<AudioLocation, uint32_t> audio_location_map{ {AudioLocation::UNKNOWN, Loading
system/bta/le_audio/broadcaster/broadcaster_types.cc +9 −10 Original line number Diff line number Diff line Loading @@ -332,9 +332,9 @@ const std::map<uint32_t, uint8_t> sample_rate_to_sampling_freq_map = { const std::map<uint32_t, uint8_t> data_interval_ms_to_frame_duration = { {LeAudioCodecConfiguration::kInterval7500Us, codec_spec_conf::kLeAudioCodecLC3FrameDur7500us}, codec_spec_conf::kLeAudioCodecFrameDur7500us}, {LeAudioCodecConfiguration::kInterval10000Us, codec_spec_conf::kLeAudioCodecLC3FrameDur10000us}, codec_spec_conf::kLeAudioCodecFrameDur10000us}, }; types::LeAudioLtvMap BroadcastCodecWrapper::GetBisCodecSpecData( Loading @@ -345,11 +345,11 @@ types::LeAudioLtvMap BroadcastCodecWrapper::GetBisCodecSpecData( switch (bis_idx) { case 1: return types::LeAudioLtvMap( {{codec_spec_conf::kLeAudioCodecLC3TypeAudioChannelAllocation, {{codec_spec_conf::kLeAudioLtvTypeAudioChannelAllocation, UINT32_TO_VEC_UINT8(codec_spec_conf::kLeAudioLocationFrontLeft)}}); case 2: return types::LeAudioLtvMap( {{codec_spec_conf::kLeAudioCodecLC3TypeAudioChannelAllocation, {{codec_spec_conf::kLeAudioLtvTypeAudioChannelAllocation, UINT32_TO_VEC_UINT8(codec_spec_conf::kLeAudioLocationFrontRight)}}); break; default: Loading @@ -366,22 +366,21 @@ types::LeAudioLtvMap BroadcastCodecWrapper::GetSubgroupCodecSpecData() const { << "Invalid data_interval"; std::map<uint8_t, std::vector<uint8_t>> codec_spec_ltvs = { {codec_spec_conf::kLeAudioCodecLC3TypeSamplingFreq, {codec_spec_conf::kLeAudioLtvTypeSamplingFreq, UINT8_TO_VEC_UINT8(sample_rate_to_sampling_freq_map.at( source_codec_config.sample_rate))}, {codec_spec_conf::kLeAudioCodecLC3TypeFrameDuration, {codec_spec_conf::kLeAudioLtvTypeFrameDuration, UINT8_TO_VEC_UINT8(data_interval_ms_to_frame_duration.at( source_codec_config.data_interval_us))}, }; if (codec_id.coding_format == kLeAudioCodecIdLc3.coding_format) { codec_spec_ltvs[codec_spec_conf::kLeAudioCodecLC3TypeOctetPerFrame] = codec_spec_ltvs[codec_spec_conf::kLeAudioLtvTypeOctetsPerCodecFrame] = UINT16_TO_VEC_UINT8(codec_frame_len); } if (source_codec_config.num_channels == 1) { codec_spec_ltvs [codec_spec_conf::kLeAudioCodecLC3TypeAudioChannelAllocation] = codec_spec_ltvs[codec_spec_conf::kLeAudioLtvTypeAudioChannelAllocation] = UINT32_TO_VEC_UINT8(codec_spec_conf::kLeAudioLocationFrontCenter); } Loading
system/bta/le_audio/client_parser_test.cc +12 −15 Original line number Diff line number Diff line Loading @@ -1114,12 +1114,11 @@ TEST(LeAudioClientParserTest, testPrepareAseCtpCodecConfigSingle) { .vendor_codec_id = 0x0405}; types::LeAudioLtvMap codec_conf = types::LeAudioLtvMap() .Add(codec_spec_conf::kLeAudioCodecLC3TypeSamplingFreq, (uint8_t)0x10) .Add(codec_spec_conf::kLeAudioCodecLC3TypeFrameDuration, (uint8_t)0x03) .Add(codec_spec_conf::kLeAudioCodecLC3TypeAudioChannelAllocation, .Add(codec_spec_conf::kLeAudioLtvTypeSamplingFreq, (uint8_t)0x10) .Add(codec_spec_conf::kLeAudioLtvTypeFrameDuration, (uint8_t)0x03) .Add(codec_spec_conf::kLeAudioLtvTypeAudioChannelAllocation, (uint32_t)0x04050607) .Add(codec_spec_conf::kLeAudioCodecLC3TypeOctetPerFrame, .Add(codec_spec_conf::kLeAudioLtvTypeOctetsPerCodecFrame, (uint16_t)0x0203); confs.push_back(ctp_codec_conf{ Loading Loading @@ -1175,12 +1174,11 @@ TEST(LeAudioClientParserTest, testPrepareAseCtpCodecConfigMultiple) { .vendor_codec_id = 0x0405}; types::LeAudioLtvMap codec_conf = types::LeAudioLtvMap() .Add(codec_spec_conf::kLeAudioCodecLC3TypeSamplingFreq, (uint8_t)0x10) .Add(codec_spec_conf::kLeAudioCodecLC3TypeFrameDuration, (uint8_t)0x03) .Add(codec_spec_conf::kLeAudioCodecLC3TypeAudioChannelAllocation, .Add(codec_spec_conf::kLeAudioLtvTypeSamplingFreq, (uint8_t)0x10) .Add(codec_spec_conf::kLeAudioLtvTypeFrameDuration, (uint8_t)0x03) .Add(codec_spec_conf::kLeAudioLtvTypeAudioChannelAllocation, (uint32_t)0x04050607) .Add(codec_spec_conf::kLeAudioCodecLC3TypeOctetPerFrame, .Add(codec_spec_conf::kLeAudioLtvTypeOctetsPerCodecFrame, (uint16_t)0x0203); confs.push_back(ctp_codec_conf{ Loading Loading @@ -1231,12 +1229,11 @@ TEST(LeAudioClientParserTest, testPrepareAseCtpCodecConfigMultiple) { .vendor_codec_id = 0x1415}; types::LeAudioLtvMap codec_conf2 = types::LeAudioLtvMap() .Add(codec_spec_conf::kLeAudioCodecLC3TypeSamplingFreq, (uint8_t)0x11) .Add(codec_spec_conf::kLeAudioCodecLC3TypeFrameDuration, (uint8_t)0x13) .Add(codec_spec_conf::kLeAudioCodecLC3TypeAudioChannelAllocation, .Add(codec_spec_conf::kLeAudioLtvTypeSamplingFreq, (uint8_t)0x11) .Add(codec_spec_conf::kLeAudioLtvTypeFrameDuration, (uint8_t)0x13) .Add(codec_spec_conf::kLeAudioLtvTypeAudioChannelAllocation, (uint32_t)0x14151617) .Add(codec_spec_conf::kLeAudioCodecLC3TypeOctetPerFrame, .Add(codec_spec_conf::kLeAudioLtvTypeOctetsPerCodecFrame, (uint16_t)0x1213); confs.push_back(ctp_codec_conf{ Loading
system/bta/le_audio/devices.cc +1 −1 Original line number Diff line number Diff line Loading @@ -2725,7 +2725,7 @@ uint8_t LeAudioDevice::GetLc3SupportedChannelCount(uint8_t direction) { continue; auto supported_channel_count_ltv = pac.codec_spec_caps.Find( codec_spec_caps::kLeAudioCodecLC3TypeAudioChannelCounts); codec_spec_caps::kLeAudioLtvTypeAudioChannelCounts); if (supported_channel_count_ltv == std::nullopt || supported_channel_count_ltv->size() == 0L) { Loading