I am a total newbie to OpenViBE.
I am trying to develop C++ plugin, more precisely a (Box)Algorithm that takes a Streamed Matrix as input, and produce a Streamed Matrix as output.
I have read the box plugins implementation algorithms, and looked at the code of the CBoxAlgorithmConfusionMatrix plugin as an example.
I am not sure I get (yet) all the plumbing necessary to pass around the data chunks between the BoxAlgorithm and the(s) Algorithm(s), and also between the BoxAlgorithm and the rest of the scenario.
For example, in CBoxAlgorithmConfusionMatrix::process(), there is the following code [openvibe 1.0.1 or git] :
Code: Select all
TParameterHandler < IMemoryBuffer* > l_oOutputMemoryBufferHandle(m_pConfusionMatrixEncoder->getOutputParameter(OVP_GD_Algorithm_StreamedMatrixStreamEncoder_OutputParameterId_EncodedMemoryBuffer)); l_oOutputMemoryBufferHandle=l_rDynamicBoxContext.getOutputChunk(0);
However, if this code is commented out, the BoxAlgorithm does not send anything to the following box (the MatrixDisplay linked to it in my scenario does not display anything).
Could you explain why this code is necessary ? Or refer me to the appropriate documentation ...
[I on linux (Ubuntu 14.04.3), I compile git head in RelWithDebInfo mode]