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

Commit 85ae030c authored by Andy Hung's avatar Andy Hung Committed by Automerger Merge Worker
Browse files

Merge "AudioFlinger: Remove conditional effect types" am: 9eb3b47e am: 4e44a210 am: 64d148ee

parents 7f8be1da 64d148ee
Loading
Loading
Loading
Loading
+0 −2
Original line number Original line Diff line number Diff line
@@ -608,8 +608,6 @@ private:
    };
    };


    // --- PlaybackThread ---
    // --- PlaybackThread ---
#define EFFECT_BUFFER_FORMAT AUDIO_FORMAT_PCM_FLOAT
using effect_buffer_t = float;


#include "Threads.h"
#include "Threads.h"


+3 −3
Original line number Original line Diff line number Diff line
@@ -868,8 +868,8 @@ status_t AudioFlinger::EffectModule::configure()
    mOutChannelCountRequested =
    mOutChannelCountRequested =
            audio_channel_count_from_out_mask(mConfig.outputCfg.channels);
            audio_channel_count_from_out_mask(mConfig.outputCfg.channels);


    mConfig.inputCfg.format = EFFECT_BUFFER_FORMAT;
    mConfig.inputCfg.format = AUDIO_FORMAT_PCM_FLOAT;
    mConfig.outputCfg.format = EFFECT_BUFFER_FORMAT;
    mConfig.outputCfg.format = AUDIO_FORMAT_PCM_FLOAT;


    // Don't use sample rate for thread if effect isn't offloadable.
    // Don't use sample rate for thread if effect isn't offloadable.
    if (callback->isOffloadOrDirect() && !isOffloaded()) {
    if (callback->isOffloadOrDirect() && !isOffloaded()) {
@@ -2186,7 +2186,7 @@ void AudioFlinger::EffectChain::clearInputBuffer_l()
    if (mInBuffer == NULL) {
    if (mInBuffer == NULL) {
        return;
        return;
    }
    }
    const size_t frameSize = audio_bytes_per_sample(EFFECT_BUFFER_FORMAT)
    const size_t frameSize = audio_bytes_per_sample(AUDIO_FORMAT_PCM_FLOAT)
            * mEffectCallback->inChannelCount(mEffects[0]->id());
            * mEffectCallback->inChannelCount(mEffects[0]->id());


    memset(mInBuffer->audioBuffer()->raw, 0, mEffectCallback->frameCount() * frameSize);
    memset(mInBuffer->audioBuffer()->raw, 0, mEffectCallback->frameCount() * frameSize);
+4 −4
Original line number Original line Diff line number Diff line
@@ -492,14 +492,14 @@ public:
    void setInBuffer(const sp<EffectBufferHalInterface>& buffer) {
    void setInBuffer(const sp<EffectBufferHalInterface>& buffer) {
        mInBuffer = buffer;
        mInBuffer = buffer;
    }
    }
    effect_buffer_t *inBuffer() const {
    float *inBuffer() const {
        return mInBuffer != 0 ? reinterpret_cast<effect_buffer_t*>(mInBuffer->ptr()) : NULL;
        return mInBuffer != 0 ? reinterpret_cast<float*>(mInBuffer->ptr()) : NULL;
    }
    }
    void setOutBuffer(const sp<EffectBufferHalInterface>& buffer) {
    void setOutBuffer(const sp<EffectBufferHalInterface>& buffer) {
        mOutBuffer = buffer;
        mOutBuffer = buffer;
    }
    }
    effect_buffer_t *outBuffer() const {
    float *outBuffer() const {
        return mOutBuffer != 0 ? reinterpret_cast<effect_buffer_t*>(mOutBuffer->ptr()) : NULL;
        return mOutBuffer != 0 ? reinterpret_cast<float*>(mOutBuffer->ptr()) : NULL;
    }
    }


    void incTrackCnt() { android_atomic_inc(&mTrackCnt); }
    void incTrackCnt() { android_atomic_inc(&mTrackCnt); }
+3 −3
Original line number Original line Diff line number Diff line
@@ -117,8 +117,8 @@ public:
            status_t    attachAuxEffect(int EffectId);
            status_t    attachAuxEffect(int EffectId);
            void        setAuxBuffer(int EffectId, int32_t *buffer);
            void        setAuxBuffer(int EffectId, int32_t *buffer);
            int32_t     *auxBuffer() const { return mAuxBuffer; }
            int32_t     *auxBuffer() const { return mAuxBuffer; }
            void        setMainBuffer(effect_buffer_t *buffer) { mMainBuffer = buffer; }
            void        setMainBuffer(float *buffer) { mMainBuffer = buffer; }
            effect_buffer_t *mainBuffer() const { return mMainBuffer; }
            float       *mainBuffer() const { return mMainBuffer; }
            int         auxEffectId() const { return mAuxEffectId; }
            int         auxEffectId() const { return mAuxEffectId; }
    virtual status_t    getTimestamp(AudioTimestamp& timestamp);
    virtual status_t    getTimestamp(AudioTimestamp& timestamp);
            void        signal();
            void        signal();
@@ -297,7 +297,7 @@ protected:


    bool                mResetDone;
    bool                mResetDone;
    const audio_stream_type_t mStreamType;
    const audio_stream_type_t mStreamType;
    effect_buffer_t     *mMainBuffer;
    float     *mMainBuffer;


    int32_t             *mAuxBuffer;
    int32_t             *mAuxBuffer;
    int                 mAuxEffectId;
    int                 mAuxEffectId;
+10 −10
Original line number Original line Diff line number Diff line
@@ -3182,7 +3182,7 @@ void AudioFlinger::PlaybackThread::readOutputParameters_l()
    free(mEffectBuffer);
    free(mEffectBuffer);
    mEffectBuffer = NULL;
    mEffectBuffer = NULL;
    if (mEffectBufferEnabled) {
    if (mEffectBufferEnabled) {
        mEffectBufferFormat = EFFECT_BUFFER_FORMAT;
        mEffectBufferFormat = AUDIO_FORMAT_PCM_FLOAT;
        mEffectBufferSize = mNormalFrameCount * mixerChannelCount
        mEffectBufferSize = mNormalFrameCount * mixerChannelCount
                * audio_bytes_per_sample(mEffectBufferFormat);
                * audio_bytes_per_sample(mEffectBufferFormat);
        (void)posix_memalign(&mEffectBuffer, 32, mEffectBufferSize);
        (void)posix_memalign(&mEffectBuffer, 32, mEffectBufferSize);
@@ -3628,7 +3628,7 @@ status_t AudioFlinger::PlaybackThread::addEffectChain_l(const sp<EffectChain>& c
{
{
    audio_session_t session = chain->sessionId();
    audio_session_t session = chain->sessionId();
    sp<EffectBufferHalInterface> halInBuffer, halOutBuffer;
    sp<EffectBufferHalInterface> halInBuffer, halOutBuffer;
    effect_buffer_t *buffer = nullptr; // only used for non global sessions
    float *buffer = nullptr; // only used for non global sessions


    if (mType == SPATIALIZER) {
    if (mType == SPATIALIZER) {
        if (!audio_is_global_session(session)) {
        if (!audio_is_global_session(session)) {
@@ -3646,7 +3646,7 @@ status_t AudioFlinger::PlaybackThread::addEffectChain_l(const sp<EffectChain>& c
            size_t numSamples = mNormalFrameCount
            size_t numSamples = mNormalFrameCount
                    * (audio_channel_count_from_out_mask(channelMask) + mHapticChannelCount);
                    * (audio_channel_count_from_out_mask(channelMask) + mHapticChannelCount);
            status_t result = mAudioFlinger->mEffectsFactoryHal->allocateBuffer(
            status_t result = mAudioFlinger->mEffectsFactoryHal->allocateBuffer(
                    numSamples * sizeof(effect_buffer_t),
                    numSamples * sizeof(float),
                    &halInBuffer);
                    &halInBuffer);
            if (result != OK) return result;
            if (result != OK) return result;


@@ -3685,7 +3685,7 @@ status_t AudioFlinger::PlaybackThread::addEffectChain_l(const sp<EffectChain>& c
        halOutBuffer = halInBuffer;
        halOutBuffer = halInBuffer;
        ALOGV("addEffectChain_l() %p on thread %p for session %d", chain.get(), this, session);
        ALOGV("addEffectChain_l() %p on thread %p for session %d", chain.get(), this, session);
        if (!audio_is_global_session(session)) {
        if (!audio_is_global_session(session)) {
            buffer = halInBuffer ? reinterpret_cast<effect_buffer_t*>(halInBuffer->externalData())
            buffer = halInBuffer ? reinterpret_cast<float*>(halInBuffer->externalData())
                                 : buffer;
                                 : buffer;
            // Only one effect chain can be present in direct output thread and it uses
            // Only one effect chain can be present in direct output thread and it uses
            // the sink buffer as input
            // the sink buffer as input
@@ -3694,7 +3694,7 @@ status_t AudioFlinger::PlaybackThread::addEffectChain_l(const sp<EffectChain>& c
                        * (audio_channel_count_from_out_mask(mMixerChannelMask)
                        * (audio_channel_count_from_out_mask(mMixerChannelMask)
                                                             + mHapticChannelCount);
                                                             + mHapticChannelCount);
                const status_t allocateStatus = mAudioFlinger->mEffectsFactoryHal->allocateBuffer(
                const status_t allocateStatus = mAudioFlinger->mEffectsFactoryHal->allocateBuffer(
                        numSamples * sizeof(effect_buffer_t),
                        numSamples * sizeof(float),
                        &halInBuffer);
                        &halInBuffer);
                if (allocateStatus != OK) return allocateStatus;
                if (allocateStatus != OK) return allocateStatus;


@@ -3782,7 +3782,7 @@ size_t AudioFlinger::PlaybackThread::removeEffectChain_l(const sp<EffectChain>&
            for (size_t j = 0; j < mTracks.size(); ++j) {
            for (size_t j = 0; j < mTracks.size(); ++j) {
                sp<Track> track = mTracks[j];
                sp<Track> track = mTracks[j];
                if (session == track->sessionId()) {
                if (session == track->sessionId()) {
                    track->setMainBuffer(reinterpret_cast<effect_buffer_t*>(mSinkBuffer));
                    track->setMainBuffer(reinterpret_cast<float*>(mSinkBuffer));
                    chain->decTrackCnt();
                    chain->decTrackCnt();
                }
                }
            }
            }
@@ -4202,12 +4202,12 @@ NO_THREAD_SAFETY_ANALYSIS // manual locking of AudioFlinger


                        const size_t audioBufferSize = mNormalFrameCount
                        const size_t audioBufferSize = mNormalFrameCount
                            * audio_bytes_per_frame(hapticSessionChannelCount,
                            * audio_bytes_per_frame(hapticSessionChannelCount,
                                                    EFFECT_BUFFER_FORMAT);
                                                    AUDIO_FORMAT_PCM_FLOAT);
                        memcpy_by_audio_format(
                        memcpy_by_audio_format(
                                (uint8_t*)effectChains[i]->outBuffer() + audioBufferSize,
                                (uint8_t*)effectChains[i]->outBuffer() + audioBufferSize,
                                EFFECT_BUFFER_FORMAT,
                                AUDIO_FORMAT_PCM_FLOAT,
                                (const uint8_t*)effectChains[i]->inBuffer() + audioBufferSize,
                                (const uint8_t*)effectChains[i]->inBuffer() + audioBufferSize,
                                EFFECT_BUFFER_FORMAT, mNormalFrameCount * mHapticChannelCount);
                                AUDIO_FORMAT_PCM_FLOAT, mNormalFrameCount * mHapticChannelCount);
                    }
                    }
                }
                }
            }
            }
@@ -5898,7 +5898,7 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::MixerThread::prepareTrac
                mAudioMixer->setParameter(
                mAudioMixer->setParameter(
                        trackId,
                        trackId,
                        AudioMixer::TRACK,
                        AudioMixer::TRACK,
                        AudioMixer::MIXER_FORMAT, (void *)EFFECT_BUFFER_FORMAT);
                        AudioMixer::MIXER_FORMAT, (void *)AUDIO_FORMAT_PCM_FLOAT);
                mAudioMixer->setParameter(
                mAudioMixer->setParameter(
                        trackId,
                        trackId,
                        AudioMixer::TRACK,
                        AudioMixer::TRACK,
Loading