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

Commit 65d610ba authored by Andy Hung's avatar Andy Hung Committed by Automerger Merge Worker
Browse files

Merge "Spatializer: Send metrics when not created" into tm-qpr-dev am: 6edb934c am: d778d5c2

parents f689f500 d778d5c2
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -272,6 +272,11 @@ void AudioPolicyService::onFirstRef()
        if (hasSpatializer) {
        if (hasSpatializer) {
            mSpatializer = Spatializer::create(this);
            mSpatializer = Spatializer::create(this);
        }
        }
        if (mSpatializer == nullptr) {
            // No spatializer created, signal the reason: NO_INIT a failure, OK means intended.
            const status_t createStatus = hasSpatializer ? NO_INIT : OK;
            Spatializer::sendEmptyCreateSpatializerMetricWithStatus(createStatus);
        }
    }
    }
    AudioSystem::audioPolicyReady();
    AudioSystem::audioPolicyReady();
}
}
+12 −0
Original line number Original line Diff line number Diff line
@@ -387,6 +387,18 @@ status_t Spatializer::loadEngineConfiguration(sp<EffectHalInterface> effect) {
    return NO_ERROR;
    return NO_ERROR;
}
}


/* static */
void Spatializer::sendEmptyCreateSpatializerMetricWithStatus(status_t status) {
    mediametrics::LogItem(kDefaultMetricsId)
        .set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_CREATE)
        .set(AMEDIAMETRICS_PROP_CHANNELMASKS, "")
        .set(AMEDIAMETRICS_PROP_LEVELS, "")
        .set(AMEDIAMETRICS_PROP_MODES, "")
        .set(AMEDIAMETRICS_PROP_HEADTRACKINGMODES, "")
        .set(AMEDIAMETRICS_PROP_STATUS, (int32_t)status)
        .record();
}

/** Gets the channel mask, sampling rate and format set for the spatializer input. */
/** Gets the channel mask, sampling rate and format set for the spatializer input. */
audio_config_base_t Spatializer::getAudioInConfig() const {
audio_config_base_t Spatializer::getAudioInConfig() const {
    std::lock_guard lock(mLock);
    std::lock_guard lock(mLock);
+8 −1
Original line number Original line Diff line number Diff line
@@ -199,6 +199,11 @@ class Spatializer : public media::BnSpatializer,
        return ss;
        return ss;
    };
    };


    // If the Spatializer is not created, we send the status for metrics purposes.
    // OK:      Spatializer not expected to be created.
    // NO_INIT: Spatializer creation failed.
    static void sendEmptyCreateSpatializerMetricWithStatus(status_t status);

private:
private:
    Spatializer(effect_descriptor_t engineDescriptor,
    Spatializer(effect_descriptor_t engineDescriptor,
                     SpatializerPolicyCallback *callback);
                     SpatializerPolicyCallback *callback);
@@ -352,7 +357,9 @@ private:
    SpatializerPolicyCallback* const mPolicyCallback;
    SpatializerPolicyCallback* const mPolicyCallback;


    /** Currently there is only one version of the spatializer running */
    /** Currently there is only one version of the spatializer running */
    const std::string mMetricsId = AMEDIAMETRICS_KEY_PREFIX_AUDIO_SPATIALIZER "0";
    static constexpr const char* kDefaultMetricsId =
            AMEDIAMETRICS_KEY_PREFIX_AUDIO_SPATIALIZER "0";
    const std::string mMetricsId = kDefaultMetricsId;


    /** Mutex protecting internal state */
    /** Mutex protecting internal state */
    mutable std::mutex mLock;
    mutable std::mutex mLock;