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

Commit 32789cd0 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 8055626 from 2bee6043 to tm-release

Change-Id: Ie2f998a3b381460c8d6c7541256420dae4d92e28
parents 8338316c 2bee6043
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -233,7 +233,7 @@ Return<void> BluetoothAudioProvidersFactory::getProviderCapabilities_2_2(
                                LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH ||
                                LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH ||
             sessionType == V2_1::SessionType::
             sessionType == V2_1::SessionType::
                                LE_AUDIO_HARDWARE_OFFLOAD_DECODING_DATAPATH) {
                                LE_AUDIO_HARDWARE_OFFLOAD_DECODING_DATAPATH) {
    std::vector<LeAudioCodecCapabilitiesPair> db_codec_capabilities =
    std::vector<LeAudioCodecCapabilitiesSetting> db_codec_capabilities =
        android::bluetooth::audio::GetLeAudioOffloadCodecCapabilities(
        android::bluetooth::audio::GetLeAudioOffloadCodecCapabilities(
            sessionType);
            sessionType);
    if (db_codec_capabilities.size()) {
    if (db_codec_capabilities.size()) {
+22 −9
Original line number Original line Diff line number Diff line
@@ -83,23 +83,22 @@ safe_union AudioConfiguration {
safe_union AudioCapabilities {
safe_union AudioCapabilities {
    PcmParameters pcmCapabilities;
    PcmParameters pcmCapabilities;
    CodecCapabilities codecCapabilities;
    CodecCapabilities codecCapabilities;
    LeAudioCodecCapabilitiesPair leAudioCapabilities;
    LeAudioCodecCapabilitiesSetting leAudioCapabilities;
};
};


/**
/**
 * Used to specify th le audio capabilities pair of the Hardware offload encode and decode.
 * Used to specify the le audio capabilities for unicast and broadcast hardware offload.
 */
 */
struct LeAudioCodecCapabilitiesPair{
struct LeAudioCodecCapabilitiesSetting{
    LeAudioMode mode;
    UnicastCapability unicastEncodeCapability;
    LeAudioCodecCapability encodeCapability;
    UnicastCapability unicastDecodeCapability;
    LeAudioCodecCapability decodeCapability;
    BroadcastCapability broadcastCapability;
};
};


/**
/**
 * Used to specify the le audio capabilities of the codecs supported by Hardware offload
 * Used to specify the le audio unicast codec capabilities for hardware offload.
 * for encode or decode.
 */
 */
struct LeAudioCodecCapability {
struct UnicastCapability {
    CodecType codecType;
    CodecType codecType;
    AudioLocation supportedChannel;
    AudioLocation supportedChannel;


@@ -112,3 +111,17 @@ struct LeAudioCodecCapability {
    // Should use safe union when there is more than one codec
    // Should use safe union when there is more than one codec
    Lc3Parameters capabilities;
    Lc3Parameters capabilities;
};
};

/**
 * Used to specify the le audio broadcast codec capabilities for hardware offload.
 */
struct BroadcastCapability {
    CodecType codecType;
    AudioLocation supportedChannel;

    // Supported channel count for each stream
    uint8_t channelCountPerStream;

    // Should use safe union when there is more than one codec
    vec<Lc3Parameters> capabilities;
};
+32 −28
Original line number Original line Diff line number Diff line
@@ -30,16 +30,20 @@ using ::android::hardware::bluetooth::audio::V2_1::Lc3FrameDuration;
using ::android::hardware::bluetooth::audio::V2_1::Lc3Parameters;
using ::android::hardware::bluetooth::audio::V2_1::Lc3Parameters;
using ::android::hardware::bluetooth::audio::V2_1::SampleRate;
using ::android::hardware::bluetooth::audio::V2_1::SampleRate;
using ::android::hardware::bluetooth::audio::V2_2::AudioLocation;
using ::android::hardware::bluetooth::audio::V2_2::AudioLocation;
using ::android::hardware::bluetooth::audio::V2_2::LeAudioCodecCapabilitiesPair;
using ::android::hardware::bluetooth::audio::V2_2::BroadcastCapability;
using ::android::hardware::bluetooth::audio::V2_2::LeAudioCodecCapability;
using ::android::hardware::bluetooth::audio::V2_2::
using ::android::hardware::bluetooth::audio::V2_2::LeAudioMode;
    LeAudioCodecCapabilitiesSetting;
using ::android::hardware::bluetooth::audio::V2_2::UnicastCapability;
using SessionType_2_1 =
using SessionType_2_1 =
    ::android::hardware::bluetooth::audio::V2_1::SessionType;
    ::android::hardware::bluetooth::audio::V2_1::SessionType;


// Stores the list of offload supported capability
// Stores the list of offload supported capability
std::vector<LeAudioCodecCapabilitiesPair> kDefaultOffloadLeAudioCapabilities;
std::vector<LeAudioCodecCapabilitiesSetting> kDefaultOffloadLeAudioCapabilities;


static const LeAudioCodecCapability kInvalidLc3Capability = {
static const UnicastCapability kInvalidUnicastCapability = {
    .codecType = CodecType::UNKNOWN};

static const BroadcastCapability kInvalidBroadcastCapability = {
    .codecType = CodecType::UNKNOWN};
    .codecType = CodecType::UNKNOWN};


// Default Supported Codecs
// Default Supported Codecs
@@ -94,53 +98,53 @@ bool IsOffloadLeAudioConfigurationValid(
  return true;
  return true;
}
}


LeAudioCodecCapability composeLc3Capability(AudioLocation audioLocation,
UnicastCapability composeUnicastLc3Capability(AudioLocation audioLocation,
                                              uint8_t deviceCnt,
                                              uint8_t deviceCnt,
                                              uint8_t channelCount,
                                              uint8_t channelCount,
                                              Lc3Parameters capability) {
                                              Lc3Parameters capability) {
  return LeAudioCodecCapability{.codecType = CodecType::LC3,
  return UnicastCapability{.codecType = CodecType::LC3,
                           .supportedChannel = audioLocation,
                           .supportedChannel = audioLocation,
                           .deviceCount = deviceCnt,
                           .deviceCount = deviceCnt,
                           .channelCountPerDevice = channelCount,
                           .channelCountPerDevice = channelCount,
                           .capabilities = capability};
                           .capabilities = capability};
}
}


std::vector<LeAudioCodecCapabilitiesPair> GetLeAudioOffloadCodecCapabilities(
std::vector<LeAudioCodecCapabilitiesSetting> GetLeAudioOffloadCodecCapabilities(
    const SessionType_2_1& session_type) {
    const SessionType_2_1& session_type) {
  if (session_type !=
  if (session_type !=
          SessionType_2_1::LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH &&
          SessionType_2_1::LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH &&
      session_type !=
      session_type !=
          SessionType_2_1::LE_AUDIO_HARDWARE_OFFLOAD_DECODING_DATAPATH) {
          SessionType_2_1::LE_AUDIO_HARDWARE_OFFLOAD_DECODING_DATAPATH) {
    return std::vector<LeAudioCodecCapabilitiesPair>(0);
    return std::vector<LeAudioCodecCapabilitiesSetting>(0);
  }
  }


  if (kDefaultOffloadLeAudioCapabilities.empty()) {
  if (kDefaultOffloadLeAudioCapabilities.empty()) {
    for (auto [audioLocation, deviceCnt, channelCount] :
    for (auto [audioLocation, deviceCnt, channelCount] :
         supportedDeviceSetting) {
         supportedDeviceSetting) {
      for (auto capability : supportedLc3CapabilityList) {
      for (auto capability : supportedLc3CapabilityList) {
        LeAudioCodecCapability lc3Capability = composeLc3Capability(
        UnicastCapability lc3Capability = composeUnicastLc3Capability(
            audioLocation, deviceCnt, channelCount, capability);
            audioLocation, deviceCnt, channelCount, capability);
        LeAudioCodecCapability lc3MonoCapability =
        UnicastCapability lc3MonoDecodeCapability =
            composeLc3Capability(monoAudio, 1, 1, capability);
            composeUnicastLc3Capability(monoAudio, 1, 1, capability);


        // Adds the capability for encode only
        // Adds the capability for encode only
        kDefaultOffloadLeAudioCapabilities.push_back(
        kDefaultOffloadLeAudioCapabilities.push_back(
            {.mode = LeAudioMode::UNICAST,
            {.unicastEncodeCapability = lc3Capability,
             .encodeCapability = lc3Capability,
             .unicastDecodeCapability = kInvalidUnicastCapability,
             .decodeCapability = kInvalidLc3Capability});
             .broadcastCapability = kInvalidBroadcastCapability});


        // Adds the capability for decode only
        // Adds the capability for decode only
        kDefaultOffloadLeAudioCapabilities.push_back(
        kDefaultOffloadLeAudioCapabilities.push_back(
            {.mode = LeAudioMode::UNICAST,
            {.unicastEncodeCapability = kInvalidUnicastCapability,
             .encodeCapability = kInvalidLc3Capability,
             .unicastDecodeCapability = lc3Capability,
             .decodeCapability = lc3Capability});
             .broadcastCapability = kInvalidBroadcastCapability});


        // Adds the capability for the case that encode and decode exist at the
        // Adds the capability for the case that encode and decode exist at the
        // same time
        // same time
        kDefaultOffloadLeAudioCapabilities.push_back(
        kDefaultOffloadLeAudioCapabilities.push_back(
            {.mode = LeAudioMode::UNICAST,
            {.unicastEncodeCapability = lc3Capability,
             .encodeCapability = lc3Capability,
             .unicastDecodeCapability = lc3MonoDecodeCapability,
             .decodeCapability = lc3MonoCapability});
             .broadcastCapability = kInvalidBroadcastCapability});
      }
      }
    }
    }
  }
  }
+1 −1
Original line number Original line Diff line number Diff line
@@ -31,7 +31,7 @@ bool IsOffloadLeAudioConfigurationValid(
    const ::android::hardware::bluetooth::audio::V2_2::LeAudioConfiguration&
    const ::android::hardware::bluetooth::audio::V2_2::LeAudioConfiguration&
        le_audio_codec_config);
        le_audio_codec_config);


std::vector<hardware::bluetooth::audio::V2_2::LeAudioCodecCapabilitiesPair>
std::vector<hardware::bluetooth::audio::V2_2::LeAudioCodecCapabilitiesSetting>
GetLeAudioOffloadCodecCapabilities(
GetLeAudioOffloadCodecCapabilities(
    const ::android::hardware::bluetooth::audio::V2_1::SessionType&
    const ::android::hardware::bluetooth::audio::V2_1::SessionType&
        session_type);
        session_type);
+12 −0
Original line number Original line Diff line number Diff line
@@ -209,6 +209,18 @@
            <instance>default</instance>
            <instance>default</instance>
        </interface>
        </interface>
    </hal>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.drm</name>
        <version>1</version>
        <interface>
            <name>ICryptoFactory</name>
            <regex-instance>.*</regex-instance>
        </interface>
        <interface>
            <name>IDrmFactory</name>
            <regex-instance>.*</regex-instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
    <hal format="hidl" optional="true">
        <name>android.hardware.drm</name>
        <name>android.hardware.drm</name>
        <version>1.3-4</version>
        <version>1.3-4</version>
Loading