Go back to libsamplerate.

ms-pipeline-optim-2
Mooneer Salem 2025-07-29 14:17:55 -07:00
parent 3eb38ccb89
commit 86d1c640ff
2 changed files with 4 additions and 17 deletions

View File

@ -28,7 +28,6 @@
#include "../util/logging/ulog.h"
#if 0
// returns number of output samples generated by resampling
// TBD -- remove identical version from util.cpp.
static int resample_step(SRC_STATE *src,
@ -68,7 +67,6 @@ static int resample_step(SRC_STATE *src,
return src_data.output_frames_gen;
}
#endif
ResampleStep::ResampleStep(int inputSampleRate, int outputSampleRate, bool forPlotsOnly)
: inputSampleRate_(inputSampleRate)
@ -76,9 +74,7 @@ ResampleStep::ResampleStep(int inputSampleRate, int outputSampleRate, bool forPl
{
int src_error;
//resampleState_ = src_new(forPlotsOnly ? SRC_LINEAR : SRC_SINC_MEDIUM_QUALITY, 1, &src_error);
//assert(resampleState_ != nullptr);
resampleState_ = speex_resampler_init(1, inputSampleRate, outputSampleRate, 8, &src_error);
resampleState_ = src_new(forPlotsOnly ? SRC_LINEAR : SRC_SINC_MEDIUM_QUALITY, 1, &src_error);
assert(resampleState_ != nullptr);
// Pre-allocate buffers so we don't have to do so during real-time operation.
@ -94,8 +90,7 @@ ResampleStep::ResampleStep(int inputSampleRate, int outputSampleRate, bool forPl
ResampleStep::~ResampleStep()
{
//src_delete(resampleState_);
speex_resampler_destroy(resampleState_);
src_delete(resampleState_);
delete[] tempInput_;
delete[] tempOutput_;
@ -131,7 +126,6 @@ short* ResampleStep::execute(short* inputSamples, int numInputSamples, int* numO
auto inputPtr = inputSamples;
auto outputPtr = outputSamples_.get();
#if 0
while (numInputSamples > 0)
{
int inputSize = std::min(numInputSamples, inputSampleRate_ * 10 / 1000);
@ -146,11 +140,6 @@ short* ResampleStep::execute(short* inputSamples, int numInputSamples, int* numO
numInputSamples -= inputSize;
*numOutputSamples += numSamples;
}
#endif
uint32_t inSampleSize = numInputSamples;
uint32_t outSampleSize = outputSampleRate_;
speex_resampler_process_int(resampleState_, 0, inputSamples, &inSampleSize, outputPtr, &outSampleSize);
*numOutputSamples = outSampleSize;
return outputSamples_.get();
}

View File

@ -26,8 +26,7 @@
#include "IPipelineStep.h"
#include <memory>
//#include <samplerate.h>
#include <speex/speex_resampler.h>
#include <samplerate.h>
class ResampleStep : public IPipelineStep
{
@ -42,8 +41,7 @@ public:
private:
int inputSampleRate_;
int outputSampleRate_;
//SRC_STATE* resampleState_;
SpeexResamplerState* resampleState_;
SRC_STATE* resampleState_;
float* tempInput_;
float* tempOutput_;