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

Commit 13993233 authored by Shunkai Yao's avatar Shunkai Yao
Browse files

AIDL effect: Replace offload check with HardwareAccelerator mode

Bug: 297295866
Test: Enable AIDL and test on Pixel YTM
Change-Id: Ifdeb7d414939e6496d44f7c1fbdf830f2726a88c
parent 0a047987
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -165,14 +165,14 @@ status_t EffectConversionHelperAidl::handleSetConfig(uint32_t cmdSize, const voi

    effect_config_t* config = (effect_config_t*)pCmdData;
    Parameter::Common common = {
            .session = mCommon.session,
            .ioHandle = mCommon.ioHandle,
            .input =
                    VALUE_OR_RETURN_STATUS(::aidl::android::legacy2aidl_buffer_config_t_AudioConfig(
                            config->inputCfg, mIsInputStream)),
            .output =
                    VALUE_OR_RETURN_STATUS(::aidl::android::legacy2aidl_buffer_config_t_AudioConfig(
                            config->outputCfg, mIsInputStream)),
            .session = mCommon.session,
            .ioHandle = mCommon.ioHandle};
                            config->outputCfg, mIsInputStream))};

    State state;
    RETURN_STATUS_IF_ERROR(statusTFromBinderStatus(mEffect->getState(&state)));
@@ -456,7 +456,7 @@ status_t EffectConversionHelperAidl::updateEventFlags() {
                  efGroup);
            status = (status == OK) ? BAD_VALUE : status;
        }
    } else if (isBypassingOrOffload()) {
    } else if (isBypassingOrTunnel()) {
        // for effect with bypass (no processing) or offloadIndication flag, it's okay to not have
        // statusQ
        return OK;
@@ -466,8 +466,8 @@ status_t EffectConversionHelperAidl::updateEventFlags() {
    return status;
}

bool EffectConversionHelperAidl::isBypassingOrOffload() const {
    return isBypassing() || isOffload();
bool EffectConversionHelperAidl::isBypassingOrTunnel() const {
    return isBypassing() || isTunnel();
}

bool EffectConversionHelperAidl::isBypassing() const {
@@ -476,10 +476,10 @@ bool EffectConversionHelperAidl::isBypassing() const {
            (mIsProxyEffect && std::static_pointer_cast<EffectProxy>(mEffect)->isBypassing()));
}

bool EffectConversionHelperAidl::isOffload() const {
bool EffectConversionHelperAidl::isTunnel() const {
    return mEffect &&
           (mDesc.common.flags.offloadIndication ||
            (mIsProxyEffect && std::static_pointer_cast<EffectProxy>(mEffect)->isOffload()));
           (mDesc.common.flags.hwAcceleratorMode == Flags::HardwareAccelerator::TUNNEL ||
            (mIsProxyEffect && std::static_pointer_cast<EffectProxy>(mEffect)->isTunnel()));
}

Descriptor EffectConversionHelperAidl::getDescriptor() const {
+2 −2
Original line number Diff line number Diff line
@@ -43,8 +43,8 @@ class EffectConversionHelperAidl {
    std::shared_ptr<android::hardware::EventFlag> getEventFlagGroup() { return mEfGroup; }

    bool isBypassing() const;
    bool isOffload() const;
    bool isBypassingOrOffload() const;
    bool isTunnel() const;
    bool isBypassingOrTunnel() const;

    ::aidl::android::hardware::audio::effect::Descriptor getDescriptor() const;

+3 −2
Original line number Diff line number Diff line
@@ -278,8 +278,9 @@ bool EffectProxy::isBypassing() const {
    return mSubEffects[mActiveSubIdx].descriptor.common.flags.bypass;
}

bool EffectProxy::isOffload() const {
    return mSubEffects[mActiveSubIdx].descriptor.common.flags.offloadIndication;
bool EffectProxy::isTunnel() const {
    return mSubEffects[mActiveSubIdx].descriptor.common.flags.hwAcceleratorMode ==
           Flags::HardwareAccelerator::TUNNEL;
}

binder_status_t EffectProxy::dump(int fd, const char** args, uint32_t numArgs) {
+1 −1
Original line number Diff line number Diff line
@@ -98,7 +98,7 @@ class EffectProxy final : public ::aidl::android::hardware::audio::effect::BnEff
    }

    bool isBypassing() const;
    bool isOffload() const;
    bool isTunnel() const;

    // call dump for all sub-effects
    binder_status_t dump(int fd, const char** args, uint32_t numArgs) override;