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

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

Snap for 8397960 from b05437b5 to tm-release

Change-Id: I3f5cd1c4f00cab85457830ce1bdea74270af5ebe
parents a1392a19 b05437b5
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ cc_library {
        "media_plugin_headers",
        "libmediautils_headers",
        "libstagefright_rtsp_headers",
        "libstagefright_webm_headers",
    ],

    static_libs: [
@@ -79,9 +80,6 @@ cc_library {
        "libstagefright_nuplayer",
        "libstagefright_rtsp",
        "libstagefright_timedtext",
        // this needs it, but it can get it transitively through libstagefright.
        // i'm going to leave it here.
        "libstagefright_webm",
        "framework-permission-aidl-cpp",
    ],

+12 −5
Original line number Diff line number Diff line
@@ -563,14 +563,21 @@ void AudioPolicyService::onUpdateActiveSpatializerTracks_l() {
}

void AudioPolicyService::doOnUpdateActiveSpatializerTracks()
{
    sp<Spatializer> spatializer;
    size_t activeClients;
    {
        Mutex::Autolock _l(mLock);
        if (mSpatializer == nullptr) {
            return;
        }
    mSpatializer->updateActiveTracks(countActiveClientsOnOutput_l(mSpatializer->getOutput()));
        spatializer = mSpatializer;
        activeClients = countActiveClientsOnOutput_l(mSpatializer->getOutput());
    }
    if (spatializer != nullptr) {
        spatializer->updateActiveTracks(activeClients);
    }
}


status_t AudioPolicyService::clientCreateAudioPatch(const struct audio_patch *patch,
                                                audio_patch_handle_t *handle,
+31 −11
Original line number Diff line number Diff line
@@ -298,7 +298,7 @@ Status Spatializer::setLevel(SpatializationLevel level) {
        callback = mSpatializerCallback;

        if (levelChanged && mEngine != nullptr) {
            setEffectParameter_l(SPATIALIZER_PARAM_LEVEL, std::vector<SpatializationLevel>{level});
            checkEngineState_l();
        }
        checkSensorsState_l();
    }
@@ -594,6 +594,7 @@ void Spatializer::onActualModeChangeMsg(HeadTrackingMode mode) {
    ALOGV("%s(%d)", __func__, (int) mode);
    sp<media::ISpatializerHeadTrackingCallback> callback;
    SpatializerHeadTrackingMode spatializerMode;
    bool modeChanged = false;
    {
        std::lock_guard lock(mLock);
        if (!mSupportsHeadTracking) {
@@ -613,10 +614,15 @@ void Spatializer::onActualModeChangeMsg(HeadTrackingMode mode) {
                    LOG_ALWAYS_FATAL("Unknown mode: %d", mode);
            }
        }
        modeChanged = mActualHeadTrackingMode != spatializerMode;
        mActualHeadTrackingMode = spatializerMode;
        if (modeChanged && mEngine != nullptr) {
            setEffectParameter_l(SPATIALIZER_PARAM_HEADTRACKING_MODE,
                                 std::vector<SpatializerHeadTrackingMode>{spatializerMode});
        }
        callback = mHeadTrackingCallback;
    }
    if (callback != nullptr) {
    if (callback != nullptr && modeChanged) {
        callback->onHeadTrackingModeChanged(spatializerMode);
    }
}
@@ -648,18 +654,13 @@ status_t Spatializer::attachOutput(audio_io_handle_t output, size_t numActiveTra
            return status;
        }

        setEffectParameter_l(SPATIALIZER_PARAM_LEVEL,
                             std::vector<SpatializationLevel>{mLevel});
        setEffectParameter_l(SPATIALIZER_PARAM_HEADTRACKING_MODE,
                             std::vector<SpatializerHeadTrackingMode>{mActualHeadTrackingMode});

        mEngine->setEnabled(true);
        checkEngineState_l();
        outputChanged = mOutput != output;
        mOutput = output;

        if (mSupportsHeadTracking) {
            mPoseController = std::make_shared<SpatializerPoseController>(
                    static_cast<SpatializerPoseController::Listener*>(this), 10ms, 50ms);
                    static_cast<SpatializerPoseController::Listener*>(this), 10ms, 1000ms);
            LOG_ALWAYS_FATAL_IF(mPoseController == nullptr,
                                "%s could not allocate pose controller", __func__);

@@ -709,9 +710,12 @@ audio_io_handle_t Spatializer::detachOutput() {

void Spatializer::updateActiveTracks(size_t numActiveTracks) {
    std::lock_guard lock(mLock);
    if (mNumActiveTracks != numActiveTracks) {
        mNumActiveTracks = numActiveTracks;
        checkEngineState_l();
        checkSensorsState_l();
    }
}

void Spatializer::checkSensorsState_l() {
    if (mSupportsHeadTracking && mPoseController != nullptr) {
@@ -727,6 +731,22 @@ void Spatializer::checkSensorsState_l() {
    }
}

void Spatializer::checkEngineState_l() {
    if (mEngine != nullptr) {
        if (mLevel != SpatializationLevel::NONE && mNumActiveTracks > 0) {
            mEngine->setEnabled(true);
            setEffectParameter_l(SPATIALIZER_PARAM_LEVEL,
                    std::vector<SpatializationLevel>{mLevel});
            setEffectParameter_l(SPATIALIZER_PARAM_HEADTRACKING_MODE,
                    std::vector<SpatializerHeadTrackingMode>{mActualHeadTrackingMode});
        } else {
            setEffectParameter_l(SPATIALIZER_PARAM_LEVEL,
                    std::vector<SpatializationLevel>{SpatializationLevel::NONE});
            mEngine->setEnabled(false);
        }
    }
}

void Spatializer::calculateHeadPose() {
    ALOGV("%s", __func__);
    std::lock_guard lock(mLock);
+6 −0
Original line number Diff line number Diff line
@@ -283,6 +283,12 @@ private:
     */
    void checkSensorsState_l() REQUIRES(mLock);

    /**
     * Checks if the spatializer effect should be enabled based on
     * playback activity and requested level.
     */
    void checkEngineState_l() REQUIRES(mLock);

    /** Effect engine descriptor */
    const effect_descriptor_t mEngineDescriptor;
    /** Callback interface to parent audio policy service */