Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 103d790d authored by Grzegorz Kołodziejczyk's avatar Grzegorz Kołodziejczyk
Browse files

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
parent 46f91823
Loading
Loading
Loading
Loading
+11 −16
Original line number Diff line number Diff line
@@ -91,35 +91,30 @@ Return<void> 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 */
+6 −4
Original line number Diff line number Diff line
@@ -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) ||
+8 −4
Original line number Diff line number Diff line
@@ -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};