cDataMemory¶
Description¶
central data memory component
Type hierarchy¶
This config type does not inherit from any base type.
Fields¶
isRb (numeric) [default: 1.0]
The default for the isRb option for all levels.
nT (numeric) [default: 100.0]
The default level buffer size in frames for all levels.
level[] (object of type cDataMemoryLevel)
An associative array containing the level configuration (obsolete, you should use the cDataWriter configuration in the components that write to the dataMemory to properly configure the dataMemory!)
cDataMemoryLevel¶
Type hierarchy¶
This config type does not inherit from any base type.
Fields¶
name (string) [default: None]
The name of this data memory level, must be unique within one data memory instance.
isRb (numeric) [default: 1.0]
Flag that indicates whether this level is a ring-buffer level (1) or not (0). I.e. this level stores the last 'nT' frames, and discards old data as new data comes in (if the old data has already been read by all registered readers; if this is not the case, the level will report that it is full to the writer attempting the write operation)
nT (numeric) [default: 100.0]
The size of the level buffer in frames (this overwrites the 'lenSec' option)
T (numeric) [default: 0.0]
The frame period of this level in seconds. Use a frame period of 0 for a-periodic levels (i.e. data that does not occur periodically)
lenSec (numeric) [default: 0.0]
The size of the level buffer in seconds
frameSizeSec (numeric) [default: 0.0]
The size of one frame in seconds. (This is generally NOT equal to 1/T, because frames may overlap)
growDyn (numeric) [default: 0.0]
Supported currently only if 'ringbuffer=0'. If this option is set to 1, the level grows dynamically, if more memory is needed. You can use this to store live input of arbitrary length in memory. However, be aware that if openSMILE runs for a long time, it will allocate more and more memory!
noHang (numeric) [default: 1.0]
This option controls the 'hang' behaviour for ring-buffer levels, i.e. the behaviour exhibited, when the level is full because data from the ring-buffer has not been marked as read because not all readers registered to read from this level have read data. Valid options are, 0, 1, 2 :
0 = always wait for readers, mark the level as full and make writes fail until all readers have read at least the next frame from this level
1 = don't wait for readers, if no readers are registered, i.e. this level is a dead-end (this is the default) / 2 = never wait for readers, writes to this level will always succeed (reads to non existing data regions might then fail), use this option with a bit of caution.