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

Commit 2d8b63b3 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Revert "PreProcessing: Data conversions for webrtc module and AEC...

Merge "Revert "PreProcessing: Data conversions for webrtc module and AEC check"" into main am: 2675cc0f

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



Change-Id: I34500398542c7031f6da0dc46096fe9a9119b4a3
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents cdc5ff5e 2675cc0f
Loading
Loading
Loading
Loading
+16 −24
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

#include <cstddef>
#define LOG_TAG "PreProcessingContext"
#include <audio_utils/primitives.h>
#include <Utils.h>

#include "PreProcessingContext.h"
@@ -282,39 +281,32 @@ IEffect::Status PreProcessingContext::process(float* in, float* out, int samples
    LOG(DEBUG) << __func__ << " start processing";
    std::lock_guard lg(mMutex);

    mProcessedMsk |= (1 << int(mType));

    // webrtc implementation clear out was_stream_delay_set every time after ProcessStream() call
    mAudioProcessingModule->set_stream_delay_ms(mEchoDelayUs / 1000);

    std::vector<int16_t> in16(samples);
    std::vector<int16_t> out16(samples);
    memcpy_to_i16_from_float(in16.data(), in, samples);

    mProcessedMsk |= (1 << int(mType));

    if ((mProcessedMsk & mEnabledMsk) == mEnabledMsk) {
        mProcessedMsk = 0;
        int processStatus = mAudioProcessingModule->ProcessStream(in16.data(), mInputConfig,
                                                                  mOutputConfig, out16.data());
        int processStatus = mAudioProcessingModule->ProcessStream(
                (const int16_t* const)in, mInputConfig, mOutputConfig, (int16_t* const)out);
        if (processStatus != 0) {
            LOG(ERROR) << "Process stream failed with error " << processStatus;
            return status;
        }
    }

    if (mType == PreProcessingEffectType::ACOUSTIC_ECHO_CANCELLATION) {
    mRevProcessedMsk |= (1 << int(mType));

    if ((mRevProcessedMsk & mRevEnabledMsk) == mRevEnabledMsk) {
        mRevProcessedMsk = 0;
        int revProcessStatus = mAudioProcessingModule->ProcessReverseStream(
                    in16.data(), mInputConfig, mInputConfig, out16.data());
                (const int16_t* const)in, mInputConfig, mInputConfig, (int16_t* const)out);
        if (revProcessStatus != 0) {
            LOG(ERROR) << "Process reverse stream failed with error " << revProcessStatus;
            return status;
        }
    }
    }

    memcpy_to_float_from_i16(out, out16.data(), samples);

    return {STATUS_OK, samples, samples};
}