From 103d790df86703a3f4457c6d4699797374545ee9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Grzegorz=20Ko=C5=82odziejczyk?= Date: Thu, 10 Dec 2020 11:22:29 +0100 Subject: [PATCH] Update supported sampling frequencies for LC3 codec LC3 specification extends current supported sampling frequencies with 8kHz and 32kHz for LC3 codec for session and does not support yet higher than 48kHz. Along with additional supported session frequencies, valid software pcm configuration is extended with missing frequencies for LC3 and extended 8kHz and 32kHz. Frequncies above not supported by LC3 are removed also. Tag: #feature Test: vts-tradefed run vts -m VtsHalBluetoothAudioV2_1TargetTest Sponsor: jpawlowski@ Change-Id: If36c9c9aa102008adff7f77c58e272b79f7e2482 --- .../2.1/default/LeAudioAudioProvider.cpp | 27 ++++++++----------- .../BluetoothAudioSupportedCodecsDB.cpp | 10 ++++--- .../VtsHalBluetoothAudioV2_1TargetTest.cpp | 12 ++++++--- 3 files changed, 25 insertions(+), 24 deletions(-) diff --git a/bluetooth/audio/2.1/default/LeAudioAudioProvider.cpp b/bluetooth/audio/2.1/default/LeAudioAudioProvider.cpp index 1fa2dcea1f..9c2b4fe1db 100644 --- a/bluetooth/audio/2.1/default/LeAudioAudioProvider.cpp +++ b/bluetooth/audio/2.1/default/LeAudioAudioProvider.cpp @@ -91,35 +91,30 @@ Return LeAudioAudioProvider::startSession_2_1( uint32_t kDataMqSize = 0; switch (audioConfig.pcmConfig().sampleRate) { + case SampleRate::RATE_8000: + kDataMqSize = 8000; + break; case SampleRate::RATE_16000: kDataMqSize = 16000; break; case SampleRate::RATE_24000: kDataMqSize = 24000; break; + case SampleRate::RATE_32000: + kDataMqSize = 32000; + break; case SampleRate::RATE_44100: kDataMqSize = 44100; break; case SampleRate::RATE_48000: kDataMqSize = 48000; break; - case SampleRate::RATE_88200: - kDataMqSize = 88200; - break; - case SampleRate::RATE_96000: - kDataMqSize = 96000; - break; - case SampleRate::RATE_176400: - kDataMqSize = 176400; - break; - case SampleRate::RATE_192000: - kDataMqSize = 192000; - break; default: - /* This should never happen it would be caught while validating - * parameters. - */ - break; + LOG(WARNING) << __func__ << " - Unsupported sampling frequency=" + << toString(audioConfig.pcmConfig()); + _hidl_cb(BluetoothAudioStatus::UNSUPPORTED_CODEC_CONFIGURATION, + DataMQ::Descriptor()); + return Void(); } /* Number of samples per millisecond */ diff --git a/bluetooth/audio/2.1/default/session/BluetoothAudioSupportedCodecsDB.cpp b/bluetooth/audio/2.1/default/session/BluetoothAudioSupportedCodecsDB.cpp index d15db49ff1..0937f441e3 100644 --- a/bluetooth/audio/2.1/default/session/BluetoothAudioSupportedCodecsDB.cpp +++ b/bluetooth/audio/2.1/default/session/BluetoothAudioSupportedCodecsDB.cpp @@ -409,12 +409,14 @@ bool IsSoftwarePcmConfigurationValid( } bool IsSoftwarePcmConfigurationValid_2_1(const PcmParameters& pcm_config) { - if ((pcm_config.sampleRate != SampleRate::RATE_44100 && - pcm_config.sampleRate != SampleRate::RATE_48000 && + if ((pcm_config.sampleRate != SampleRate::RATE_96000 && pcm_config.sampleRate != SampleRate::RATE_88200 && - pcm_config.sampleRate != SampleRate::RATE_96000 && + pcm_config.sampleRate != SampleRate::RATE_48000 && + pcm_config.sampleRate != SampleRate::RATE_44100 && + pcm_config.sampleRate != SampleRate::RATE_32000 && + pcm_config.sampleRate != SampleRate::RATE_24000 && pcm_config.sampleRate != SampleRate::RATE_16000 && - pcm_config.sampleRate != SampleRate::RATE_24000) || + pcm_config.sampleRate != SampleRate::RATE_8000) || (pcm_config.bitsPerSample != BitsPerSample::BITS_16 && pcm_config.bitsPerSample != BitsPerSample::BITS_24 && pcm_config.bitsPerSample != BitsPerSample::BITS_32) || diff --git a/bluetooth/audio/2.1/vts/functional/VtsHalBluetoothAudioV2_1TargetTest.cpp b/bluetooth/audio/2.1/vts/functional/VtsHalBluetoothAudioV2_1TargetTest.cpp index 37d1281cd7..95903d1f82 100644 --- a/bluetooth/audio/2.1/vts/functional/VtsHalBluetoothAudioV2_1TargetTest.cpp +++ b/bluetooth/audio/2.1/vts/functional/VtsHalBluetoothAudioV2_1TargetTest.cpp @@ -1005,8 +1005,10 @@ class BluetoothAudioProviderLeAudioOutputSoftwareHidlTest BluetoothAudioProvidersFactoryHidlTest::TearDown(); } - static constexpr SampleRate le_audio_output_sample_rates_[3] = { - SampleRate::RATE_UNKNOWN, SampleRate::RATE_16000, SampleRate::RATE_24000}; + static constexpr SampleRate le_audio_output_sample_rates_[11] = { + SampleRate::RATE_UNKNOWN, SampleRate::RATE_8000, SampleRate::RATE_16000, + SampleRate::RATE_24000, SampleRate::RATE_32000, SampleRate::RATE_44100, + SampleRate::RATE_48000}; static constexpr BitsPerSample le_audio_output_bits_per_samples_[3] = { BitsPerSample::BITS_UNKNOWN, BitsPerSample::BITS_16, BitsPerSample::BITS_24}; @@ -1097,8 +1099,10 @@ class BluetoothAudioProviderLeAudioInputSoftwareHidlTest BluetoothAudioProvidersFactoryHidlTest::TearDown(); } - static constexpr SampleRate le_audio_output_sample_rates_[3] = { - SampleRate::RATE_UNKNOWN, SampleRate::RATE_16000, SampleRate::RATE_24000}; + static constexpr SampleRate le_audio_output_sample_rates_[11] = { + SampleRate::RATE_UNKNOWN, SampleRate::RATE_8000, SampleRate::RATE_16000, + SampleRate::RATE_24000, SampleRate::RATE_32000, SampleRate::RATE_44100, + SampleRate::RATE_48000}; static constexpr BitsPerSample le_audio_output_bits_per_samples_[3] = { BitsPerSample::BITS_UNKNOWN, BitsPerSample::BITS_16, BitsPerSample::BITS_24};