Loading media/libeffects/preprocessing/aidl/PreProcessingContext.cpp +24 −16 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ #include <cstddef> #define LOG_TAG "PreProcessingContext" #include <audio_utils/primitives.h> #include <Utils.h> #include "PreProcessingContext.h" Loading Loading @@ -281,32 +282,39 @@ 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( (const int16_t* const)in, mInputConfig, mOutputConfig, (int16_t* const)out); int processStatus = mAudioProcessingModule->ProcessStream(in16.data(), mInputConfig, mOutputConfig, out16.data()); 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( (const int16_t* const)in, mInputConfig, mInputConfig, (int16_t* const)out); in16.data(), mInputConfig, mInputConfig, out16.data()); 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}; } Loading Loading
media/libeffects/preprocessing/aidl/PreProcessingContext.cpp +24 −16 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ #include <cstddef> #define LOG_TAG "PreProcessingContext" #include <audio_utils/primitives.h> #include <Utils.h> #include "PreProcessingContext.h" Loading Loading @@ -281,32 +282,39 @@ 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( (const int16_t* const)in, mInputConfig, mOutputConfig, (int16_t* const)out); int processStatus = mAudioProcessingModule->ProcessStream(in16.data(), mInputConfig, mOutputConfig, out16.data()); 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( (const int16_t* const)in, mInputConfig, mInputConfig, (int16_t* const)out); in16.data(), mInputConfig, mInputConfig, out16.data()); 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}; } Loading