svcore  1.9
FeatureExtractionModelTransformer Class Reference

#include <FeatureExtractionModelTransformer.h>

Inheritance diagram for FeatureExtractionModelTransformer:
Collaboration diagram for FeatureExtractionModelTransformer:

Public Types

typedef std::vector< Model * > Models
 
enum  Type { RTThread, NonRTThread }
 

Public Slots

void start ()
 

Public Member Functions

 FeatureExtractionModelTransformer (Input input, const Transform &transform)
 
 FeatureExtractionModelTransformer (Input input, const Transforms &relatedTransforms)
 
virtual ~FeatureExtractionModelTransformer ()
 
Models getAdditionalOutputModels ()
 Return any additional models that were created during processing. More...
 
bool willHaveAdditionalOutputModels ()
 Return true if the current transform is one that may produce additional models (to be retrieved through getAdditionalOutputModels above). More...
 
void abandon ()
 Hint to the processing thread that it should give up, for example because the process is going to exit or we want to get rid of the input model. More...
 
ModelgetInputModel ()
 Return the input model for the transform. More...
 
int getInputChannel ()
 Return the input channel spec for the transform. More...
 
Models getOutputModels ()
 Return the set of output models created by the transform or transforms. More...
 
Models detachOutputModels ()
 Return the set of output models, also detaching them from the transformer so that they will not be deleted when the transformer is. More...
 
virtual Models detachAdditionalOutputModels ()
 Return the set of additional models, also detaching them from the transformer. More...
 
QString getMessage () const
 Return a warning or error message. More...
 

Protected Types

typedef std::map< int, std::map< int, SparseTimeValueModel * > > AdditionalModelMap
 

Protected Member Functions

bool initialise ()
 
virtual void run ()
 
void createOutputModels (int n)
 
SparseTimeValueModelgetAdditionalModel (int transformNo, int binNo)
 
void addFeature (int n, int blockFrame, const Vamp::Plugin::Feature &feature)
 
void setCompletion (int, int)
 
void getFrames (int channelCount, long startFrame, long size, float **buffer)
 
DenseTimeValueModelgetConformingInput ()
 
template<typename ModelClass >
bool isOutput (int n)
 
template<typename ModelClass >
ModelClass * getConformingOutput (int n)
 

Protected Attributes

Vamp::Plugin * m_plugin
 
std::vector< Vamp::Plugin::OutputDescriptor * > m_descriptors
 
std::vector< int > m_fixedRateFeatureNos
 
std::vector< int > m_outputNos
 
std::map< int, bool > m_needAdditionalModels
 
AdditionalModelMap m_additionalModels
 
Transforms m_transforms
 
Input m_input
 
Models m_outputs
 
bool m_detached
 
bool m_detachedAdd
 
bool m_abandoned
 
QString m_message
 

Detailed Description

Definition at line 31 of file FeatureExtractionModelTransformer.h.

Member Typedef Documentation

◆ AdditionalModelMap

typedef std::map<int, std::map<int, SparseTimeValueModel *> > FeatureExtractionModelTransformer::AdditionalModelMap
protected

Definition at line 64 of file FeatureExtractionModelTransformer.h.

◆ Models

typedef std::vector<Model *> ModelTransformer::Models
inherited

Definition at line 43 of file ModelTransformer.h.

Member Enumeration Documentation

◆ Type

enum Thread::Type
inherited
Enumerator
RTThread 
NonRTThread 

Definition at line 29 of file Thread.h.

Constructor & Destructor Documentation

◆ FeatureExtractionModelTransformer() [1/2]

FeatureExtractionModelTransformer::FeatureExtractionModelTransformer ( Input  input,
const Transform transform 
)

Definition at line 42 of file FeatureExtractionModelTransformer.cpp.

References initialise().

◆ FeatureExtractionModelTransformer() [2/2]

FeatureExtractionModelTransformer::FeatureExtractionModelTransformer ( Input  input,
const Transforms relatedTransforms 
)

Definition at line 52 of file FeatureExtractionModelTransformer.cpp.

References initialise().

◆ ~FeatureExtractionModelTransformer()

FeatureExtractionModelTransformer::~FeatureExtractionModelTransformer ( )
virtual

Definition at line 476 of file FeatureExtractionModelTransformer.cpp.

References m_descriptors, and m_plugin.

Member Function Documentation

◆ getAdditionalOutputModels()

FeatureExtractionModelTransformer::Models FeatureExtractionModelTransformer::getAdditionalOutputModels ( )
virtual

Return any additional models that were created during processing.

This might happen if, for example, a transform was configured to split a multi-bin output into separate single-bin models as it processed. These should not be queried until after the transform has completed.

Reimplemented from ModelTransformer.

Definition at line 486 of file FeatureExtractionModelTransformer.cpp.

References m_additionalModels.

◆ willHaveAdditionalOutputModels()

bool FeatureExtractionModelTransformer::willHaveAdditionalOutputModels ( )
virtual

Return true if the current transform is one that may produce additional models (to be retrieved through getAdditionalOutputModels above).

Reimplemented from ModelTransformer.

Definition at line 502 of file FeatureExtractionModelTransformer.cpp.

References m_needAdditionalModels.

◆ initialise()

◆ run()

◆ createOutputModels()

void FeatureExtractionModelTransformer::createOutputModels ( int  n)
protected

!! SV doesn't actually support display of models that have !! different underlying rates together – so we always set !! the model rate to be the input model's rate, and adjust !! the resolution appropriately. We can't properly display !! data with a higher resolution than the base model at all

Definition at line 223 of file FeatureExtractionModelTransformer.cpp.

References EditableDenseThreeDimensionalModel::BasicMultirateCompression, getConformingInput(), PluginRDFDescription::getOutputEventTypeURI(), PluginRDFDescription::getOutputSignalTypeURI(), Model::getSampleRate(), m_descriptors, m_needAdditionalModels, m_outputNos, ModelTransformer::m_outputs, m_plugin, ModelTransformer::m_transforms, EditableDenseThreeDimensionalModel::setBinNames(), Model::setRDFTypeURI(), SparseValueModel< PointType >::setScaleUnits(), and Model::setSourceModel().

Referenced by initialise().

◆ getAdditionalModel()

◆ addFeature()

◆ setCompletion()

void FeatureExtractionModelTransformer::setCompletion ( int  n,
int  completion 
)
protected

◆ getFrames()

void FeatureExtractionModelTransformer::getFrames ( int  channelCount,
long  startFrame,
long  size,
float **  buffer 
)
protected

◆ getConformingInput()

DenseTimeValueModel * FeatureExtractionModelTransformer::getConformingInput ( )
protected

◆ isOutput()

template<typename ModelClass >
bool FeatureExtractionModelTransformer::isOutput ( int  n)
inlineprotected

Definition at line 81 of file FeatureExtractionModelTransformer.h.

References ModelTransformer::m_outputs.

◆ getConformingOutput()

template<typename ModelClass >
ModelClass* FeatureExtractionModelTransformer::getConformingOutput ( int  n)
inlineprotected

Definition at line 85 of file FeatureExtractionModelTransformer.h.

References ModelTransformer::m_outputs.

◆ abandon()

void ModelTransformer::abandon ( )
inlineinherited

Hint to the processing thread that it should give up, for example because the process is going to exit or we want to get rid of the input model.

Caller should still wait() and/or delete the transform before assuming its input and output models are no longer required.

Definition at line 68 of file ModelTransformer.h.

References ModelTransformer::m_abandoned.

Referenced by ModelTransformerFactory::modelAboutToBeDeleted(), and setCompletion().

◆ getInputModel()

Model* ModelTransformer::getInputModel ( )
inlineinherited

◆ getInputChannel()

int ModelTransformer::getInputChannel ( )
inlineinherited

Return the input channel spec for the transform.

Definition at line 78 of file ModelTransformer.h.

References ModelTransformer::Input::getChannel(), and ModelTransformer::m_input.

◆ getOutputModels()

Models ModelTransformer::getOutputModels ( )
inlineinherited

Return the set of output models created by the transform or transforms.

Returns an empty list if any transform could not be initialised; an error message may be available via getMessage() in this situation.

Definition at line 86 of file ModelTransformer.h.

References ModelTransformer::m_outputs.

Referenced by ModelTransformer::detachOutputModels(), ModelTransformerFactory::modelAboutToBeDeleted(), and ModelTransformer::~ModelTransformer().

◆ detachOutputModels()

Models ModelTransformer::detachOutputModels ( )
inlineinherited

Return the set of output models, also detaching them from the transformer so that they will not be deleted when the transformer is.

The caller takes ownership of the models.

Definition at line 93 of file ModelTransformer.h.

References ModelTransformer::getOutputModels(), and ModelTransformer::m_detached.

Referenced by ModelTransformerFactory::transformMultiple().

◆ detachAdditionalOutputModels()

virtual Models ModelTransformer::detachAdditionalOutputModels ( )
inlinevirtualinherited

Return the set of additional models, also detaching them from the transformer.

The caller takes ownership of the models.

Definition at line 118 of file ModelTransformer.h.

References ModelTransformer::getAdditionalOutputModels(), and ModelTransformer::m_detachedAdd.

Referenced by ModelTransformerFactory::transformerFinished().

◆ getMessage()

QString ModelTransformer::getMessage ( ) const
inlineinherited

Return a warning or error message.

If getOutputModel returned a null pointer, this should contain a fatal error message for the transformer; otherwise it may contain a warning to show to the user about e.g. suboptimal block size or whatever.

Definition at line 129 of file ModelTransformer.h.

References ModelTransformer::m_message.

Referenced by ModelTransformerFactory::transformMultiple().

◆ start

Member Data Documentation

◆ m_plugin

Vamp::Plugin* FeatureExtractionModelTransformer::m_plugin
protected

◆ m_descriptors

std::vector<Vamp::Plugin::OutputDescriptor *> FeatureExtractionModelTransformer::m_descriptors
protected

◆ m_fixedRateFeatureNos

std::vector<int> FeatureExtractionModelTransformer::m_fixedRateFeatureNos
protected

Definition at line 58 of file FeatureExtractionModelTransformer.h.

Referenced by addFeature(), and initialise().

◆ m_outputNos

std::vector<int> FeatureExtractionModelTransformer::m_outputNos
protected

Definition at line 59 of file FeatureExtractionModelTransformer.h.

Referenced by createOutputModels(), initialise(), and run().

◆ m_needAdditionalModels

std::map<int, bool> FeatureExtractionModelTransformer::m_needAdditionalModels
protected

◆ m_additionalModels

AdditionalModelMap FeatureExtractionModelTransformer::m_additionalModels
protected

◆ m_transforms

◆ m_input

Input ModelTransformer::m_input
protectedinherited

◆ m_outputs

◆ m_detached

bool ModelTransformer::m_detached
protectedinherited

◆ m_detachedAdd

bool ModelTransformer::m_detachedAdd
protectedinherited

◆ m_abandoned

bool ModelTransformer::m_abandoned
protectedinherited

◆ m_message

QString ModelTransformer::m_message
protectedinherited

Definition at line 141 of file ModelTransformer.h.

Referenced by ModelTransformer::getMessage(), initialise(), and run().


The documentation for this class was generated from the following files: