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

Commit 66bc5ec2 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "audio: platform: Support Ambisonic capture usecase in multi-record"

parents a4282701 e6aa195c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -137,7 +137,7 @@ PRODUCT_PROPERTY_OVERRIDES += \

##Ambisonic Capture
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.audio.ambisonic.capture=false
persist.vendor.audio.ambisonic.capture=false \
persist.vendor.audio.ambisonic.auto.profile=false

##fluencetype can be "fluence" or "fluencepro" or "none"
+20 −6
Original line number Diff line number Diff line
@@ -4293,13 +4293,14 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d
                source == AUDIO_SOURCE_MIC)) {
                snd_device = SND_DEVICE_IN_HANDSET_GENERIC_QMIC;
                platform_set_echo_reference(adev, true, out_device);
    } else if (my_data->use_generic_handset == true &&  //  system prop is enabled
    } else if (my_data->use_generic_handset == true &&          // System prop is enabled
               (my_data->ambisonic_capture == true) &&          // Enable Ambisonic capture
               (my_data->source_mic_type & SOURCE_QUAD_MIC) &&  // AND 4mic is available
               ((in_device & AUDIO_DEVICE_IN_BUILTIN_MIC) || // AND device is buit-in or back mic
               (in_device & AUDIO_DEVICE_IN_BACK_MIC)) &&
               (source == AUDIO_SOURCE_MIC) &&  // AND source is MIC
               (int)channel_mask == (int)AUDIO_CHANNEL_INDEX_MASK_4) { // AND input channel is 4
               ((in_device & AUDIO_DEVICE_IN_BUILTIN_MIC) ||    // AND device is Built-in
               (in_device & AUDIO_DEVICE_IN_BACK_MIC)) &&       // OR Back-mic
               (source == AUDIO_SOURCE_MIC ||                   // AND source is MIC for 16bit
                source == AUDIO_SOURCE_UNPROCESSED ||           // OR unprocessed for 24bit
                source == AUDIO_SOURCE_CAMCORDER)) {            // OR camera usecase
                snd_device = SND_DEVICE_IN_HANDSET_GENERIC_QMIC;
                /* Below check is true only in LA build to set
                   ambisonic profile. In LE hal client will set profile
@@ -4308,6 +4309,19 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d
                    strlcpy(adev->active_input->profile, "record_ambisonic",
                            sizeof(adev->active_input->profile));
                }

                if (!strncmp(adev->active_input->profile, "record_ambisonic",
                            strlen("record_ambisonic"))) {
                    /* Validate input stream configuration for
                       Ambisonic capture.
                     */
                    if (((int)channel_mask != (int)AUDIO_CHANNEL_INDEX_MASK_4) ||
                         (adev->active_input->sample_rate != 48000)) {
                          snd_device = SND_DEVICE_NONE;
                          ALOGW("Unsupported Input configuration for ambisonic capture");
                          goto exit;
                    }
                }
    } else if (source == AUDIO_SOURCE_CAMCORDER) {
        if (in_device & AUDIO_DEVICE_IN_BUILTIN_MIC ||
            in_device & AUDIO_DEVICE_IN_BACK_MIC) {