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

Commit 32358360 authored by François Gaffie's avatar François Gaffie Committed by Shunkai Yao
Browse files

Fix device effect instatiation



-configure shall be called before any setParam (device, ...) as it
will open the effect, thus creating the context.
Context shall not be null to handle any setParameters

-Input / Output MQ are invalid if the effect buffer size is 0.

Bug: 32939147
Test: atest CtsMediaAudioTestCase

Change-Id: I13676bc6564b24cf3b8d56e0646dc263599fea35
Merged-In: I13676bc6564b24cf3b8d56e0646dc263599fea35
Signed-off-by: default avatarFrançois Gaffie <francois.gaffie@renault.com>
parent b96aa7a6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -3534,12 +3534,12 @@ NO_THREAD_SAFETY_ANALYSIS
            mHalEffect = sp<HwAccDeviceEffectModule>::make(mMyCallback,
                    const_cast<effect_descriptor_t *>(&mDescriptor), mMyCallback->newEffectId(),
                    port->id);
            mHalEffect->configure_l();
            if (audio_is_input_device(mDevice.mType)) {
                mHalEffect->setInputDevice(mDevice);
            } else {
                mHalEffect->setDevices({mDevice});
            }
            mHalEffect->configure_l();
        }
        *handle = new EffectHandle(mHalEffect, nullptr, nullptr, 0 /*priority*/,
                                   mNotifyFramesProcessed);
+4 −1
Original line number Diff line number Diff line
@@ -811,7 +811,10 @@ private:
        audio_channel_mask_t outChannelMask() const override;
        uint32_t outChannelCount() const override;
        audio_channel_mask_t hapticChannelMask() const override { return AUDIO_CHANNEL_NONE; }
        size_t frameCount() const override  { return 0; }
        /**
         * frameCount cannot be zero.
         */
        size_t frameCount() const override  { return 1; }
        uint32_t latency() const override  { return 0; }

        status_t addEffectToHal(const sp<EffectHalInterface>& effect) override;