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

Commit cc25a713 authored by Andy Hung's avatar Andy Hung Committed by Android (Google) Code Review
Browse files

Merge "Allow clearing effect hal buffers"

parents a9f0a7be c15aaeec
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -121,16 +121,24 @@ status_t EffectHalHidl::analyzeResult(const Result& result) {
}

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

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

#ifdef FLOAT_EFFECT_CHAIN
    // 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;
    }
    mOutBuffer = buffer;
    if (buffer != nullptr) {
    mEffectInterface->setOutBuffer(buffer);
    }

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