InterLatency tracer - Dieptranivsr/DroneIVSR GitHub Wiki
The interlatency
tracer measures the time that a buffer takes to travel from one point to another inside the pipeline. The total latency of the pipeline is the time that the buffer needs to go from the source to the sink element (most downstream). However, the interlatency tracer makes it possible to know what route of the pipeline is adding more time to the overall latency by displaying the exact time that the buffer took to go through every element on the pipeline.
The interlatency
tracer only provides accurate data when the elements on the pipeline correspond to the categories: source elements, sink elements, or filter elements. This is a known limitation of the tracer.
The interlatency
tracer provides the times that each buffer took to get from the source pad of the source element to each other element's source pad. The time displayed in the logs has precision in the order of nanoseconds. As it is expected, the highest values correspond to the time needed for the buffer to travel from the source element to the sink element at the end of the pipeline.
Pipeline
Consider the following pipeline as an example.
$ GST_DEBUG="GST_TRACER:7" GST_TRACERS="interlatency" gst-launch-1.0 videotestsrc ! queue ! videorate max-rate=15 ! fakesink sync=true
Output
0:00:05.005932055 12129 0xbbc720 TRACE GST_TRACER :0:: interlatency, from_pad=(string)videotestsrc0_src, to_pad=(string)queue0_src, time=(string)0:00:01.066017418;
0:00:05.005967402 12129 0xbbc720 TRACE GST_TRACER :0:: interlatency, from_pad=(string)videotestsrc0_src, to_pad=(string)videorate0_src, time=(string)0:00:01.066054304;
0:00:05.072540930 12129 0xbbc720 TRACE GST_TRACER :0:: interlatency, from_pad=(string)videotestsrc0_src, to_pad=(string)fakesink0_sink, time=(string)0:00:01.132617436;
Each log entry includes the from_pad and to_pad fields to identify the path that is being measured. It includes also a time field that provides the time it took to get to the specified pad.