Reject sample rates that are out-of-range for libsoundtouch.

master
Fedor 2020-01-21 13:57:36 +03:00
parent 93f487041c
commit 2b9905b1ba
2 changed files with 8 additions and 3 deletions

View File

@ -283,9 +283,9 @@ void SoundTouch::calcEffectiveRateAndTempo()
// Sets sample rate. // Sets sample rate.
void SoundTouch::setSampleRate(uint srate) void SoundTouch::setSampleRate(uint srate)
{ {
bSrateSet = true;
// set sample rate, leave other tempo changer parameters as they are. // set sample rate, leave other tempo changer parameters as they are.
pTDStretch->setParameters((int)srate); pTDStretch->setParameters((int)srate);
bSrateSet = true;
} }

View File

@ -126,8 +126,13 @@ void TDStretch::setParameters(int aSampleRate, int aSequenceMS,
int aSeekWindowMS, int aOverlapMS) int aSeekWindowMS, int aOverlapMS)
{ {
// accept only positive parameter values - if zero or negative, use old values instead // accept only positive parameter values - if zero or negative, use old values instead
if (aSampleRate > 0) this->sampleRate = aSampleRate; if (aSampleRate > 0)
if (aOverlapMS > 0) this->overlapMs = aOverlapMS; {
if (aSampleRate > 192000) ST_THROW_RT_ERROR("Error: Excessive samplerate");
this->sampleRate = aSampleRate;
}
if (aOverlapMS > 0) this->overlapMs = aOverlapMS;
if (aSequenceMS > 0) if (aSequenceMS > 0)
{ {