mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-13 09:07:27 -05:00
[WIP] updated the 2 channel synthesizer to use a more SIMD friendly
filter structure. Updated the channel results array buffer to produce reusable buffers. This has dropped the overall memory usage considerably when profiling. Resolved issue in the processing chain where polyphase channel sources were not being stopped and were stacking up in memory.
This commit is contained in:
@@ -301,15 +301,17 @@ public class SynthesizerViewer extends JFrame
|
||||
ReusableComplexBuffer channel2Buffer = mReusableComplexBufferQueue.getBuffer(mSamplesPerCycle);
|
||||
getChannel2ControlPanel().getOscillator().generateComplex(channel2Buffer);
|
||||
|
||||
float[] synthesized = mSynthesizer.process(channel1Buffer.getSamples(), channel2Buffer.getSamples());
|
||||
ReusableComplexBuffer synthesizedBuffer = mReusableComplexBufferQueue.getBuffer(synthesized.length);
|
||||
System.arraycopy(synthesized, 0, synthesizedBuffer.getSamples(), 0, synthesized.length);
|
||||
|
||||
channel1Buffer.incrementUserCount();
|
||||
getChannel1Panel().receive(channel1Buffer);
|
||||
channel1Buffer.incrementUserCount();
|
||||
channel2Buffer.incrementUserCount();
|
||||
channel2Buffer.incrementUserCount();
|
||||
|
||||
ReusableComplexBuffer synthesizedBuffer = mSynthesizer.process(channel1Buffer, channel2Buffer);
|
||||
|
||||
getChannel1Panel().receive(channel1Buffer);
|
||||
|
||||
getChannel2Panel().receive(channel2Buffer);
|
||||
synthesizedBuffer.incrementUserCount();
|
||||
|
||||
getSpectrumPanel().receive(synthesizedBuffer);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user