Return number of frames output from resample method
Change-Id: Ic297e2ed59839f1788c83e099ef1a9e4af29591f
diff --git a/services/audioflinger/AudioResamplerSinc.cpp b/services/audioflinger/AudioResamplerSinc.cpp
index ba9a356..41730ee 100644
--- a/services/audioflinger/AudioResamplerSinc.cpp
+++ b/services/audioflinger/AudioResamplerSinc.cpp
@@ -256,7 +256,7 @@
mVolumeSIMD[1] = u4_28_from_float(clampFloatVol(right));
}
-void AudioResamplerSinc::resample(int32_t* out, size_t outFrameCount,
+size_t AudioResamplerSinc::resample(int32_t* out, size_t outFrameCount,
AudioBufferProvider* provider)
{
// FIXME store current state (up or down sample) and only load the coefs when the state
@@ -272,17 +272,18 @@
// select the appropriate resampler
switch (mChannelCount) {
case 1:
- resample<1>(out, outFrameCount, provider);
- break;
+ return resample<1>(out, outFrameCount, provider);
case 2:
- resample<2>(out, outFrameCount, provider);
- break;
+ return resample<2>(out, outFrameCount, provider);
+ default:
+ LOG_ALWAYS_FATAL("invalid channel count: %d", mChannelCount);
+ return 0;
}
}
template<int CHANNELS>
-void AudioResamplerSinc::resample(int32_t* out, size_t outFrameCount,
+size_t AudioResamplerSinc::resample(int32_t* out, size_t outFrameCount,
AudioBufferProvider* provider)
{
const Constants& c(*mConstants);
@@ -357,6 +358,7 @@
mImpulse = impulse;
mInputIndex = inputIndex;
mPhaseFraction = phaseFraction;
+ return outputIndex / CHANNELS;
}
template<int CHANNELS>