» FreeFrameExtendedSpecification
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

FreeFrameExtendedSpecification

Extending FreeFrame

Disclaimer: The following extensions to the freeframe specification are not official. Based on the official freeframe system specification they are a proposal how we could use spreaded inputs and outputs (i.e. lists of inputs and outputs). Naming is not so cool yet...

Even though they are only proposals they are used with some of the video tracking freeframe plugins that ship with vvvv.

ad 3. Enumerated and derived types

NumOutputs (32-bit unsigned integer)
Definition:
Specifies the number of outputs that the plugin implements.


ParameterType (32-bit unsigned integer)
adding the following types:

Value Type Description
20 valuespread A spread/list/array of floats
21 colorspread A spread/list/array of colors
22 stringspread A spread/list/array of strings

ad 4. Structures

SetInputStruct (size = 16 bytes)

 SetInputStruct {
   DWORD Index;
   DWORD SliceCount;
   double* Spread;
 }

Fields:

  • Index: Index of the parameter to set.
  • SliceCount: Number of elements in the spread.
  • Spread: Pointer to the first slice (element) in the spread.

GetOutputStruct (size = 8 bytes)

 GetOutputStruct {
   DWORD SliceCount;
   float* Spread;
 }

Fields:

  • SliceCount: Number of elements in the spread.
  • Spread: Pointer to the first slice (element) in the spread.

ad 5. Functions

Function Code Table
Global functions:
adding the following functions

Code Function Input value type Output value type
20 getNumOutputs none NumOutputs
21 getOutputName OutputNumber Pointer to ParameterName
22 getOutputType OutputNumber ParameterType

Instance specific functions:
adding the following functions

Code Function Input value type Output value type
19 setThreadLock boolean Success/error code
23 getOutputSliceCount none Integer
24 getOutput OutputNumber Pointer to float of first slice/element in spread
30 setInput Pointer to InputStruct Success/error code

ad 5.1. Global functions

getNumOutputs (function code = 20)

  • Input value: none
  • Return value: NumOutputs indicating the number of outputs in plugin or FF_FAIL on error.

getOutputName (function code = 21)

  • Input value: index: OutputNumber
  • Return value: 32-bit pointer to ParameterName (16 byte char array) containing the name of parameter specified by index. Returns FF_FAIL on error.

getParameterType (function code = 22)

  • Input value: index: OutputNumber
  • Return value: ParameterType value which tells the host what kind of data the parameter index is. Returns FF_FAIL on error.

ad 5.2. Instance specific functions

setThreadLock (function code = 19, needs valid instanceID!)

  • Input value: doSet: boolean
  • Return value: Success/error code
This is useful for applications that use the DSFreeFrameWrapper that have the video running in a different thread than the video processing. you can set the threadlock before starting to set all parameters and remove it when finished. use the same threadlock in processFrameCopy before manipulating the image!

getOutputSliceCount (function code = 23, needs valid instanceID!)

  • Input value: index: OutputNumber
  • Return value: Integer specifying the number of slices/elements in the spread

getOutput (function code = 24, needs valid instanceID!)

  • Input value: index: OutputNumber
  • Return value: Pointer to float of first slice/element in spread

setInput (function code = 30, needs valid instanceID!)

  • Input value: index: Pointer to InputStruct
  • Return value: Success/error code

anonymous user login

Shoutbox

~22h ago

joreg: vvvv gamma 6.5 is out, see changelog: https://thegraybook.vvvv.org/changelog/6.x.html

~5d ago

joreg: Workshop on 13 06: All about signed distance fields in FUSE, signup here: https://thenodeinstitute.org/courses/ss24-vvvv-all-about-signed-distance-fields-with-fuse/

~12d ago

joreg: Workshop on 06 06: All about noise Functions with FUSE, signup here: https://thenodeinstitute.org/courses/ss24-vvvv-all-about-noise-functions-with-fuse/

~18d ago

joreg: Workshop on 29 05: Introduction to the core FUSE principles, signup here: https://thenodeinstitute.org/courses/ss24-vvvv-introduction-to-core-fuse-principles/

~24d ago

joreg: Workshop on 23 05: Integrating Rhino 3D with vvvv, Signup here: https://thenodeinstitute.org/courses/ss24-vvvv-integrating-rhino-3d-with-vvvv/

~1mth ago

joreg: Workshop on 16 05: Introduction to Shaders. Signup here: https://thenodeinstitute.org/courses/ss24-vvvv-introduction-to-shaders-in-vvvv/

~1mth ago

bjoern: hello, I am looking for a job / project starting june. get in touch via vvvv specialists available for hire

~1mth ago

joreg: Workshop on 09 05: Deepdive into the Stride 3D Engine. Signup here: https://thenodeinstitute.org/courses/ss24-vvvv-advanced-3d-rendering-in-vvvv-with-stride/

~1mth ago

tekcor: Dear vvvv community, I am leaving my personal fundraiser here because I know many of you personally, sending love https://t.ly/iV9l_