From 068307b70eff70d16298222b4d6299ccbccf9c5a Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 11 Jan 2010 14:58:11 +0100 Subject: [PATCH] docs: update QoS documeent Add some ideas about a new QoS message. See also #322947 --- docs/design/part-qos.txt | 55 ++++++++++++++++++++++++++++++++++------ 1 file changed, 47 insertions(+), 8 deletions(-) diff --git a/docs/design/part-qos.txt b/docs/design/part-qos.txt index f43547185b..2ab58a05cb 100644 --- a/docs/design/part-qos.txt +++ b/docs/design/part-qos.txt @@ -31,22 +31,61 @@ QoS event The QoS event is generated by an element that synchronizes against the clock. It travels upstream and contains the following fields: - - timestamp: The timestamp on the buffer that generated the QoS - event. These timestamps are expressed in total running_time in - the sink so that the value is ever increasing. + - timestamp, G_TYPE_UINT64: + The timestamp on the buffer that generated the QoS event. These timestamps + are expressed in total running_time in the sink so that the value is ever + increasing. - - jitter: The difference of that timestamp against the current clock time. - Negative values mean the timestamp was on time. Positive values - indicate the timestamp was late by that amount. + - jitter, G_TYPE_INT64: + The difference of that timestamp against the current clock time. Negative + values mean the timestamp was on time. Positive values indicate the + timestamp was late by that amount. - - proportion: Long term prediction of the ideal rate relative to - normal rate to get optimal quality. + - proportion, G_TYPE_DOUBLE: + Long term prediction of the ideal rate relative to normal rate to get + optimal quality. The rest of this document deals with how these values can be calculated in a sink and how the values can be used by other elements to adjust their operations. +QoS message +----------- + +Whenever QoS discards a piece of data or affects the quality of the stream, a +message must be posted by the element that performed the QoS. + +This message can be posted by a sink/src that performs synchronisation against the +clock or it could be dropped by an upstream element that performs QoS because of +QOS events received from downstream. + + - live: G_TYPE_BOOLEAN: + If the QoS message was dropped by a live element such as a sink or a live + source. If the live property is FALSE, the QoS message was generated as a + response to a QoS event in a non-live element. + + - timestamp, G_TYPE_UINT64: + Running_time of the data that is dropped. + + - jitter, G_TYPE_INT64: + The lateness of the buffer. + + - proportion, G_TYPE_DOUBLE: + Long term prediction of the ideal rate. + +Optional stats: + + - dropped, G_TYPE_INT64: + The total number of dropped buffers since the element went to READY + last. -1 if unknown. + + - handled, G_TYPE_INT64: + The total number of processed buffers since the element went to READY + last. -1 if unknown. + + + Collecting statistics ---------------------