Fixed: Crash during initialization of GraphicEQ/Convolution filters when loading the configuration in multiple threads concurrently. This occurred most often when using GraphicEQ both for playback and capture devices.
Improved: Updated FFTW to version 3.3.6-pl2.
This commit is contained in:
1 parent
ce857887af
commit
a3cb12ff8a
4 files changed
+2
No files matched your search
Binary file not shown.
Binary file not shown.
@@ -87,6 +87,7 @@ vector<wstring> ConvolutionFilter::initialize(float sampleRate, unsigned maxFram
|
|||||||
bufs[i] = buf;
|
bufs[i] = buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fftwf_make_planner_thread_safe();
|
||||||
filters = (HConvSingle*)MemoryHelper::alloc(sizeof(HConvSingle) * channelCount);
|
filters = (HConvSingle*)MemoryHelper::alloc(sizeof(HConvSingle) * channelCount);
|
||||||
for (unsigned i = 0; i < channelCount; i++)
|
for (unsigned i = 0; i < channelCount; i++)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ vector<wstring> GraphicEQFilter::initialize(float sampleRate, unsigned maxFrameC
|
|||||||
|
|
||||||
channelCount = (unsigned)channelNames.size();
|
channelCount = (unsigned)channelNames.size();
|
||||||
|
|
||||||
|
fftwf_make_planner_thread_safe();
|
||||||
fftwf_complex* timeData = fftwf_alloc_complex(filterLength * 2);
|
fftwf_complex* timeData = fftwf_alloc_complex(filterLength * 2);
|
||||||
fftwf_complex* freqData = fftwf_alloc_complex(filterLength * 2);
|
fftwf_complex* freqData = fftwf_alloc_complex(filterLength * 2);
|
||||||
fftwf_plan planForward = fftwf_plan_dft_1d(filterLength * 2, timeData, freqData, FFTW_FORWARD, FFTW_ESTIMATE);
|
fftwf_plan planForward = fftwf_plan_dft_1d(filterLength * 2, timeData, freqData, FFTW_FORWARD, FFTW_ESTIMATE);
|
||||||
|
|||||||
Reference in new issue
Block a user