Fixes to reset calls, thanks to Justin Frankel
This commit is contained in:
@@ -404,6 +404,10 @@ StretchCalculator::reset()
|
|||||||
{
|
{
|
||||||
m_prevDf = 0;
|
m_prevDf = 0;
|
||||||
m_divergence = 0;
|
m_divergence = 0;
|
||||||
|
m_recovery = 0;
|
||||||
|
m_prevRatio = 1.0;
|
||||||
|
m_transientAmnesty = 0;
|
||||||
|
m_keyFrameMap.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<StretchCalculator::Peak>
|
std::vector<StretchCalculator::Peak>
|
||||||
|
|||||||
@@ -242,7 +242,7 @@ RubberBandStretcher::Impl::reset()
|
|||||||
m_emergencyScavenger.scavenge();
|
m_emergencyScavenger.scavenge();
|
||||||
|
|
||||||
if (m_stretchCalculator) {
|
if (m_stretchCalculator) {
|
||||||
m_stretchCalculator->setKeyFrameMap(std::map<size_t, size_t>());
|
m_stretchCalculator->reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
for (size_t c = 0; c < m_channels; ++c) {
|
for (size_t c = 0; c < m_channels; ++c) {
|
||||||
|
|||||||
@@ -1033,6 +1033,8 @@ D_Speex::resampleInterleaved(const float *const R__ in,
|
|||||||
void
|
void
|
||||||
D_Speex::reset()
|
D_Speex::reset()
|
||||||
{
|
{
|
||||||
|
m_lastratio = -1.0; // force reset of ratio
|
||||||
|
m_initial = true;
|
||||||
speex_resampler_reset_mem(m_resampler);
|
speex_resampler_reset_mem(m_resampler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1236,6 +1236,12 @@ int speex_resampler_reset_mem(SpeexResamplerState *st)
|
|||||||
st->mem[i] = 0;
|
st->mem[i] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < st->nb_channels; i++) {
|
||||||
|
st->last_sample[i] = 0;
|
||||||
|
st->magic_samples[i] = 0;
|
||||||
|
st->samp_frac_num[i] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
return RESAMPLER_ERR_SUCCESS;
|
return RESAMPLER_ERR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user