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

Commit c15aaeec authored by Andy Hung's avatar Andy Hung
Browse files

Allow clearing effect hal buffers

Test: SoloTest with int effects
Bug: 69855634
Change-Id: I273c9da600f3ab04890a7a1cb74b606cc28bea53
parent 664d6012
Loading
Loading
Loading
Loading
+12 −4
Original line number Original line Diff line number Diff line
@@ -121,16 +121,24 @@ status_t EffectHalHidl::analyzeResult(const Result& result) {
}
}


status_t EffectHalHidl::setInBuffer(const sp<EffectBufferHalInterface>& buffer) {
status_t EffectHalHidl::setInBuffer(const sp<EffectBufferHalInterface>& buffer) {
    if (mInBuffer == 0 || buffer->audioBuffer() != mInBuffer->audioBuffer()) {
    if (!mBuffersChanged) {
        mBuffersChanged = true;
        if (buffer.get() == nullptr || mInBuffer.get() == nullptr) {
            mBuffersChanged = buffer.get() != mInBuffer.get();
        } else {
            mBuffersChanged = buffer->audioBuffer() != mInBuffer->audioBuffer();
        }
    }
    }
    mInBuffer = buffer;
    mInBuffer = buffer;
    return OK;
    return OK;
}
}


status_t EffectHalHidl::setOutBuffer(const sp<EffectBufferHalInterface>& buffer) {
status_t EffectHalHidl::setOutBuffer(const sp<EffectBufferHalInterface>& buffer) {
    if (mOutBuffer == 0 || buffer->audioBuffer() != mOutBuffer->audioBuffer()) {
    if (!mBuffersChanged) {
        mBuffersChanged = true;
        if (buffer.get() == nullptr || mOutBuffer.get() == nullptr) {
            mBuffersChanged = buffer.get() != mOutBuffer.get();
        } else {
            mBuffersChanged = buffer->audioBuffer() != mOutBuffer->audioBuffer();
        }
    }
    }
    mOutBuffer = buffer;
    mOutBuffer = buffer;
    return OK;
    return OK;
+2 −6
Original line number Original line Diff line number Diff line
@@ -903,9 +903,7 @@ void AudioFlinger::EffectModule::setInBuffer(const sp<EffectBufferHalInterface>&
        mConfig.inputCfg.buffer.raw = NULL;
        mConfig.inputCfg.buffer.raw = NULL;
    }
    }
    mInBuffer = buffer;
    mInBuffer = buffer;
    if (buffer != nullptr) { // FIXME: EffectHalHidl::setInBuffer should accept null input.
    mEffectInterface->setInBuffer(buffer);
    mEffectInterface->setInBuffer(buffer);
    }


#ifdef FLOAT_EFFECT_CHAIN
#ifdef FLOAT_EFFECT_CHAIN
    // aux effects do in place conversion to float - we don't allocate mInBuffer16 for them.
    // aux effects do in place conversion to float - we don't allocate mInBuffer16 for them.
@@ -947,9 +945,7 @@ void AudioFlinger::EffectModule::setOutBuffer(const sp<EffectBufferHalInterface>
        mConfig.outputCfg.buffer.raw = NULL;
        mConfig.outputCfg.buffer.raw = NULL;
    }
    }
    mOutBuffer = buffer;
    mOutBuffer = buffer;
    if (buffer != nullptr) {
    mEffectInterface->setOutBuffer(buffer);
    mEffectInterface->setOutBuffer(buffer);
    }


#ifdef FLOAT_EFFECT_CHAIN
#ifdef FLOAT_EFFECT_CHAIN
    // Note: Any effect that does not accumulate does not need mOutBuffer16 and
    // Note: Any effect that does not accumulate does not need mOutBuffer16 and