Merge "Fix device effect instatiation" into main am: e4166084bf

Original change: https://android-review.googlesource.com/c/platform/frameworks/av/+/3105749

Change-Id: I8b8eaa966f4e8675999d164faa49d2bbe3b3907e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/services/audioflinger/Effects.cpp b/services/audioflinger/Effects.cpp
index 92febf9..4da498b 100644
--- a/services/audioflinger/Effects.cpp
+++ b/services/audioflinger/Effects.cpp
@@ -3537,12 +3537,12 @@
             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);
diff --git a/services/audioflinger/Effects.h b/services/audioflinger/Effects.h
index de3de01..5c90176 100644
--- a/services/audioflinger/Effects.h
+++ b/services/audioflinger/Effects.h
@@ -811,7 +811,10 @@
         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;