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

Commit 8f4ea77d authored by Nikhil Bhanu's avatar Nikhil Bhanu
Browse files

Spatial Audio: Check if stereo spatialization property is enabled

Stereo spatialization will be enabled per device. Check the property
value along with the feature flag to enable spatialization for stereo
channel mask.

Bug: 323223919
Test: manual - Tested enable/disable behavior on raven and shiba
Test: manual - Playback stereo content with spatial audio enabled
Change-Id: I76255b0d5fb97d5b4d8195460910a32e5c4bcdc5
parent 657a7dc9
Loading
Loading
Loading
Loading
+5 −1
Original line number Original line Diff line number Diff line
@@ -3318,7 +3318,11 @@ ThreadBase::MetadataUpdate PlaybackThread::updateMetadata_l()
        return {}; // nothing to do
        return {}; // nothing to do
    }
    }
    StreamOutHalInterface::SourceMetadata metadata;
    StreamOutHalInterface::SourceMetadata metadata;
    if (com_android_media_audio_stereo_spatialization()) {
    static const bool stereo_spatialization_property =
            property_get_bool("ro.audio.stereo_spatialization_enabled", false);
    const bool stereo_spatialization_enabled =
            stereo_spatialization_property && com_android_media_audio_stereo_spatialization();
    if (stereo_spatialization_enabled) {
        std::map<audio_session_t, std::vector<playback_track_metadata_v7_t> >allSessionsMetadata;
        std::map<audio_session_t, std::vector<playback_track_metadata_v7_t> >allSessionsMetadata;
        for (const sp<IAfTrack>& track : mActiveTracks) {
        for (const sp<IAfTrack>& track : mActiveTracks) {
            std::vector<playback_track_metadata_v7_t>& sessionMetadata =
            std::vector<playback_track_metadata_v7_t>& sessionMetadata =
+3 −1
Original line number Original line Diff line number Diff line
@@ -6008,8 +6008,10 @@ bool AudioPolicyManager::canBeSpatializedInt(const audio_attributes_t *attr,
    // mode is not requested.
    // mode is not requested.


    if (config != nullptr && *config != AUDIO_CONFIG_INITIALIZER) {
    if (config != nullptr && *config != AUDIO_CONFIG_INITIALIZER) {
        static const bool stereo_spatialization_enabled =
                property_get_bool("ro.audio.stereo_spatialization_enabled", false);
        const bool channel_mask_spatialized =
        const bool channel_mask_spatialized =
                com_android_media_audio_stereo_spatialization()
                (stereo_spatialization_enabled && com_android_media_audio_stereo_spatialization())
                ? audio_channel_mask_contains_stereo(config->channel_mask)
                ? audio_channel_mask_contains_stereo(config->channel_mask)
                : audio_is_channel_mask_spatialized(config->channel_mask);
                : audio_is_channel_mask_spatialized(config->channel_mask);
        if (!channel_mask_spatialized) {
        if (!channel_mask_spatialized) {
+4 −1
Original line number Original line Diff line number Diff line
@@ -31,6 +31,7 @@
#include <audio_utils/fixedfft.h>
#include <audio_utils/fixedfft.h>
#include <com_android_media_audio.h>
#include <com_android_media_audio.h>
#include <cutils/bitops.h>
#include <cutils/bitops.h>
#include <cutils/properties.h>
#include <hardware/sensors.h>
#include <hardware/sensors.h>
#include <media/stagefright/foundation/AHandler.h>
#include <media/stagefright/foundation/AHandler.h>
#include <media/stagefright/foundation/AMessage.h>
#include <media/stagefright/foundation/AMessage.h>
@@ -394,8 +395,10 @@ status_t Spatializer::loadEngineConfiguration(sp<EffectHalInterface> effect) {
        return status;
        return status;
    }
    }
    for (const auto channelMask : channelMasks) {
    for (const auto channelMask : channelMasks) {
        static const bool stereo_spatialization_enabled =
                property_get_bool("ro.audio.stereo_spatialization_enabled", false);
        const bool channel_mask_spatialized =
        const bool channel_mask_spatialized =
                com_android_media_audio_stereo_spatialization()
                (stereo_spatialization_enabled && com_android_media_audio_stereo_spatialization())
                ? audio_channel_mask_contains_stereo(channelMask)
                ? audio_channel_mask_contains_stereo(channelMask)
                : audio_is_channel_mask_spatialized(channelMask);
                : audio_is_channel_mask_spatialized(channelMask);
        if (!channel_mask_spatialized) {
        if (!channel_mask_spatialized) {