public class QOSEvent extends Event
The QOS event is generated in an element that wants an upstream element to either reduce or increase its rate because of high/low CPU load or other resource usage such as network performance. Typically sinks generate these events for each buffer they receive.
NativeObject.Initializer
defaultInit, LIFECYCLE, ownsHandle
Constructor and Description |
---|
QOSEvent(double proportion,
long difference,
ClockTime timestamp)
Creates a new quality-of-service event.
|
QOSEvent(NativeObject.Initializer init)
This constructor is for internal use only.
|
Modifier and Type | Method and Description |
---|---|
long |
getDifference()
Gets the difference value of this event.
|
double |
getProportion()
Gets the proportion value of this event.
|
ClockTime |
getTimestamp()
Gets the timestamp from this event.
|
getStructure
disposeNativeHandle, isWritable, makeWritable, ref, unref
classFor, disown, dispose, equals, finalize, getNativeAddress, handle, hashCode, initializer, initializer, instanceFor, invalidate, isDisposed, nativeValue, objectFor, objectFor, objectFor, objectFor, toString
public QOSEvent(NativeObject.Initializer init)
init
- initialization data.public QOSEvent(double proportion, long difference, ClockTime timestamp)
proportion indicates the real-time performance of the streaming in the element that generated the QoS event (usually the sink). The value is generally computed based on more long term statistics about the streams timestamps compared to the clock.
A value < 1.0 indicates that the upstream element is producing data faster than real-time. A value > 1.0 indicates that the upstream element is not producing data fast enough. 1.0 is the ideal proportion value. The proportion value can safely be used to lower or increase the quality of the element.
difference is the difference against the clock in running time of the last buffer that caused the element to generate the QOS event. A negative value means that the buffer with timestamp arrived in time. A positive value indicates how late the buffer with timestamp was.
timestamp is the timestamp of the last buffer that cause the element to generate the QOS event. It is expressed in running time and thus an ever increasing value.
The upstream element can use the diff and timestamp values to decide whether to process more buffers. For positive difference, all buffers with timestamp <= timestamp + difference will certainly arrive late in the sink as well.
The application can use general event probes to intercept the QoS event and implement custom application specific QoS handling.
proportion
- the proportion of the qos messagedifference
- the time difference of the last Clock synctimestamp
- the timestamp of the bufferpublic double getProportion()
The proportion indicates the real-time performance of the streaming in the element that generated the QoS event (usually the sink). The value is generally computed based on more long term statistics about the streams timestamps compared to the clock.
public long getDifference()
This is the difference against the clock in running time of the last buffer that caused the element to generate the QOS event. A negative value means that the buffer with timestamp arrived in time. A positive value indicates how late the buffer with timestamp was.
public ClockTime getTimestamp()
This is the timestamp of the last buffer that caused the element to generate the QOS event. It is expressed in running time and thus an ever increasing value.