GstShark - Example: Scheduling time

From RidgeRun Developer Connection
Jump to: navigation, search




Previous: Example: Processing time Index Next: Example: Interlatency




The purpose of the GstShark scheduling time tracer is to measure the elapsed time from the moment when a buffer reaches the sink pad of an element and the moment in which it reaches the immediate consecutive element sink pad. It is important to mention that the measurements of this tracer do not take into consideration the time needed for the element to compute the arrived data buffer. Similar to the processing time tracer, the schedule time tracer provides information about the amount of time needed by the pipeline to process a given data buffer completely and with this gives an idea of the performance of the pipeline.

This tracer does not have any limitation with the category of the element that is being measured, and that makes the schedule time tracer specially useful for detecting bottlenecks on the pipeline, buffer drops, inter-clock differences, among others. For more detailed information about this tracer and its behavior refer to the tracer's page.

Error something wrong.jpg Problems running the pipelines shown on this page?
Please see our GStreamer Debugging guide for help.

Test pipeline

The following pipeline is an encoding example and it is the type of pipeline in which the GstShark scheduling time tracer can be very helpful. It has a video source, then the user might have big concerns about issues like detecting bottlenecks or frame drops. This is important, in particular, if the user recording to a video file.

GST_DEBUG="GST_TRACER:7" GST_TRACERS="scheduletime" gst-launch-1.0 \
videotestsrc is-live=true do-timestamp=true num-buffers=50 ! \
'video/x-raw, format=(string)YUY2, width=(int)1280, height=(int)720, framerate=(fraction)10/1' ! \
videoconvert ! queue ! avenc_h263p ! fakesink sync=true

Plot

Scheduling time for each element of the pipeline


Previous: Example: Processing time Index Next: Example: Interlatency