diff --git a/plugins/samplesource/filesource/filesourcegui.ui b/plugins/samplesource/filesource/filesourcegui.ui
index f40501a14..458043fa2 100644
--- a/plugins/samplesource/filesource/filesourcegui.ui
+++ b/plugins/samplesource/filesource/filesourcegui.ui
@@ -475,6 +475,21 @@
100
+ -
+
+ 200
+
+
+ -
+
+ 500
+
+
+ -
+
+ 1k
+
+
-
diff --git a/plugins/samplesource/filesource/filesourceinput.cpp b/plugins/samplesource/filesource/filesourceinput.cpp
index 4f8ed2175..4f0241a55 100644
--- a/plugins/samplesource/filesource/filesourceinput.cpp
+++ b/plugins/samplesource/filesource/filesourceinput.cpp
@@ -174,7 +174,7 @@ bool FileSourceInput::start()
m_ifstream.seekg(sizeof(FileRecord::Header), std::ios::beg);
}
- if(!m_sampleFifo.setSize(m_sampleRate * sizeof(Sample))) {
+ if(!m_sampleFifo.setSize(m_settings.m_accelerationFactor * m_sampleRate * sizeof(Sample))) {
qCritical("Could not allocate SampleFifo");
return false;
}
@@ -405,6 +405,10 @@ bool FileSourceInput::applySettings(const FileSourceSettings& settings, bool for
if (m_fileSourceThread)
{
QMutexLocker mutexLocker(&m_mutex);
+ if (!m_sampleFifo.setSize(m_settings.m_accelerationFactor * m_sampleRate * sizeof(Sample))) {
+ qCritical("FileSourceInput::applySettings: could not reallocate sample FIFO size to %lu",
+ m_settings.m_accelerationFactor * m_sampleRate * sizeof(Sample));
+ }
m_fileSourceThread->setSampleRateAndSize(settings.m_accelerationFactor * m_sampleRate, m_sampleSize); // Fast Forward: 1 corresponds to live. 1/2 is half speed, 2 is double speed
}
}
diff --git a/plugins/samplesource/filesource/filesourcesettings.cpp b/plugins/samplesource/filesource/filesourcesettings.cpp
index c5c2f0442..950f1c1af 100644
--- a/plugins/samplesource/filesource/filesourcesettings.cpp
+++ b/plugins/samplesource/filesource/filesourcesettings.cpp
@@ -18,7 +18,7 @@
#include "filesourcesettings.h"
-const unsigned int FileSourceSettings::m_accelerationMaxScale = 1;
+const unsigned int FileSourceSettings::m_accelerationMaxScale = 2;
FileSourceSettings::FileSourceSettings()
{