diff options
Diffstat (limited to 'bluetooth/audio/utils/aidl_session/BluetoothAudioCodecs.cpp')
-rw-r--r-- | bluetooth/audio/utils/aidl_session/BluetoothAudioCodecs.cpp | 46 |
1 files changed, 26 insertions, 20 deletions
diff --git a/bluetooth/audio/utils/aidl_session/BluetoothAudioCodecs.cpp b/bluetooth/audio/utils/aidl_session/BluetoothAudioCodecs.cpp index f3ca279867..7debfab73f 100644 --- a/bluetooth/audio/utils/aidl_session/BluetoothAudioCodecs.cpp +++ b/bluetooth/audio/utils/aidl_session/BluetoothAudioCodecs.cpp @@ -26,6 +26,8 @@ #include <aidl/android/hardware/bluetooth/audio/LdacChannelMode.h> #include <aidl/android/hardware/bluetooth/audio/LdacQualityIndex.h> #include <aidl/android/hardware/bluetooth/audio/LeAudioConfiguration.h> +#include <aidl/android/hardware/bluetooth/audio/OpusCapabilities.h> +#include <aidl/android/hardware/bluetooth/audio/OpusConfiguration.h> #include <aidl/android/hardware/bluetooth/audio/SbcCapabilities.h> #include <aidl/android/hardware/bluetooth/audio/SbcChannelMode.h> #include <android-base/logging.h> @@ -78,9 +80,9 @@ static const AptxCapabilities kDefaultOffloadAptxHdCapability = { .bitsPerSample = {24}, }; -static const Lc3Capabilities kDefaultA2dpOffloadLc3Capability = { - .samplingFrequencyHz = {44100, 48000}, - .frameDurationUs = {7500, 10000}, +static const OpusCapabilities kDefaultOffloadOpusCapability = { + .samplingFrequencyHz = {48000}, + .frameDurationUs = {10000, 20000}, .channelMode = {ChannelMode::MONO, ChannelMode::STEREO}, }; @@ -90,7 +92,7 @@ const std::vector<CodecCapabilities> kDefaultOffloadA2dpCodecCapabilities = { {.codecType = CodecType::LDAC, .capabilities = {}}, {.codecType = CodecType::APTX, .capabilities = {}}, {.codecType = CodecType::APTX_HD, .capabilities = {}}, - {.codecType = CodecType::LC3, .capabilities = {}}}; + {.codecType = CodecType::OPUS, .capabilities = {}}}; std::vector<LeAudioCodecCapabilitiesSetting> kDefaultOffloadLeAudioCapabilities; @@ -294,22 +296,24 @@ bool BluetoothAudioCodecs::IsOffloadAptxHdConfigurationValid( return false; } -bool BluetoothAudioCodecs::IsOffloadLc3ConfigurationValid( +bool BluetoothAudioCodecs::IsOffloadOpusConfigurationValid( const CodecConfiguration::CodecSpecific& codec_specific) { - if (codec_specific.getTag() != CodecConfiguration::CodecSpecific::lc3Config) { + if (codec_specific.getTag() != + CodecConfiguration::CodecSpecific::opusConfig) { LOG(WARNING) << __func__ << ": Invalid CodecSpecific=" << codec_specific.toString(); return false; } - const Lc3Configuration lc3_data = - codec_specific.get<CodecConfiguration::CodecSpecific::lc3Config>(); - - if (ContainedInVector(kDefaultA2dpOffloadLc3Capability.samplingFrequencyHz, - lc3_data.samplingFrequencyHz) && - ContainedInVector(kDefaultA2dpOffloadLc3Capability.frameDurationUs, - lc3_data.frameDurationUs) && - ContainedInVector(kDefaultA2dpOffloadLc3Capability.channelMode, - lc3_data.channelMode)) { + std::optional<OpusConfiguration> opus_data = + codec_specific.get<CodecConfiguration::CodecSpecific::opusConfig>(); + + if (opus_data.has_value() && + ContainedInVector(kDefaultOffloadOpusCapability.samplingFrequencyHz, + opus_data->samplingFrequencyHz) && + ContainedInVector(kDefaultOffloadOpusCapability.frameDurationUs, + opus_data->frameDurationUs) && + ContainedInVector(kDefaultOffloadOpusCapability.channelMode, + opus_data->channelMode)) { return true; } LOG(WARNING) << __func__ @@ -371,13 +375,14 @@ BluetoothAudioCodecs::GetA2dpOffloadCodecCapabilities( .set<CodecCapabilities::Capabilities::aptxCapabilities>( kDefaultOffloadAptxHdCapability); break; - case CodecType::LC3: + case CodecType::OPUS: codec_capability.capabilities - .set<CodecCapabilities::Capabilities::lc3Capabilities>( - kDefaultA2dpOffloadLc3Capability); + .set<CodecCapabilities::Capabilities::opusCapabilities>( + kDefaultOffloadOpusCapability); break; case CodecType::UNKNOWN: case CodecType::VENDOR: + case CodecType::LC3: case CodecType::APTX_ADAPTIVE: break; } @@ -438,12 +443,13 @@ bool BluetoothAudioCodecs::IsOffloadCodecConfigurationValid( return true; } break; - case CodecType::LC3: - if (IsOffloadLc3ConfigurationValid(codec_specific)) { + case CodecType::OPUS: + if (IsOffloadOpusConfigurationValid(codec_specific)) { return true; } break; case CodecType::APTX_ADAPTIVE: + case CodecType::LC3: case CodecType::UNKNOWN: case CodecType::VENDOR: break; |