aboutsummaryrefslogtreecommitdiff
path: root/externals/oboe/src/flowgraph/resampler/PolyphaseResampler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'externals/oboe/src/flowgraph/resampler/PolyphaseResampler.cpp')
-rw-r--r--externals/oboe/src/flowgraph/resampler/PolyphaseResampler.cpp61
1 files changed, 0 insertions, 61 deletions
diff --git a/externals/oboe/src/flowgraph/resampler/PolyphaseResampler.cpp b/externals/oboe/src/flowgraph/resampler/PolyphaseResampler.cpp
deleted file mode 100644
index c16273b79c..0000000000
--- a/externals/oboe/src/flowgraph/resampler/PolyphaseResampler.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <algorithm> // Do NOT delete. Needed for LLVM. See #1746
-#include <cassert>
-#include <math.h>
-#include "IntegerRatio.h"
-#include "PolyphaseResampler.h"
-
-using namespace RESAMPLER_OUTER_NAMESPACE::resampler;
-
-PolyphaseResampler::PolyphaseResampler(const MultiChannelResampler::Builder &builder)
- : MultiChannelResampler(builder)
- {
- assert((getNumTaps() % 4) == 0); // Required for loop unrolling.
-
- int32_t inputRate = builder.getInputRate();
- int32_t outputRate = builder.getOutputRate();
-
- int32_t numRows = mDenominator;
- double phaseIncrement = (double) inputRate / (double) outputRate;
- generateCoefficients(inputRate, outputRate,
- numRows, phaseIncrement,
- builder.getNormalizedCutoff());
-}
-
-void PolyphaseResampler::readFrame(float *frame) {
- // Clear accumulator for mixing.
- std::fill(mSingleFrame.begin(), mSingleFrame.end(), 0.0);
-
- // Multiply input times windowed sinc function.
- float *coefficients = &mCoefficients[mCoefficientCursor];
- float *xFrame = &mX[static_cast<size_t>(mCursor) * static_cast<size_t>(getChannelCount())];
- for (int i = 0; i < mNumTaps; i++) {
- float coefficient = *coefficients++;
- for (int channel = 0; channel < getChannelCount(); channel++) {
- mSingleFrame[channel] += *xFrame++ * coefficient;
- }
- }
-
- // Advance and wrap through coefficients.
- mCoefficientCursor = (mCoefficientCursor + mNumTaps) % mCoefficients.size();
-
- // Copy accumulator to output.
- for (int channel = 0; channel < getChannelCount(); channel++) {
- frame[channel] = mSingleFrame[channel];
- }
-}