Mercurial > hg > svcore
diff transform/FeatureExtractionModelTransformer.h @ 1211:5a1198083d9a piper
Pull out model creation into the transformer thread run(), so that all communications with the plugin server happen on a single thread. Then make the model accessor wait for them to be created (which still happens right at the start of processing) before returning.
author | Chris Cannam |
---|---|
date | Mon, 17 Oct 2016 14:18:23 +0100 |
parents | b14064bd1f97 |
children | fe391a7b8376 |
line wrap: on
line diff
--- a/transform/FeatureExtractionModelTransformer.h Fri Oct 14 16:23:04 2016 +0100 +++ b/transform/FeatureExtractionModelTransformer.h Mon Oct 17 14:18:23 2016 +0100 @@ -19,6 +19,8 @@ #include "ModelTransformer.h" #include <QString> +#include <QMutex> +#include <QWaitCondition> #include <vamp-hostsdk/Plugin.h> @@ -74,7 +76,12 @@ void getFrames(int channelCount, sv_frame_t startFrame, sv_frame_t size, float **buffer); - // just casts + bool m_haveOutputs; + QMutex m_outputMutex; + QWaitCondition m_outputsCondition; + void awaitOutputModels(); + + // just casts: DenseTimeValueModel *getConformingInput();