Improvements for gstlatency tracing plugin

Frédéric Bertolus frederic.bertolus at parrot.com
Fri Jan 8 01:05:43 PST 2016


Hello,

I use the gstlatency tracer plugins but I found some limitations for my need so I would like to add multiple features to this plugin.
So I have few questions:

- Is there a basic implementation of the timer feature like latency(timer=100ms) or its only in the draft document ?
- Is the parameters system for the trace plugins already exist ? I don't manage to find a trace plugin with a parameter as example.

I would add to add the following parameters :

start/stop/duration parameters
------------------------------

The goal is to add 3 optionnals parameters to latency plugin to enables traces for a limited duration and/or start the trace after few seconds.
In my use case, I have a pipeline with a valve and i want to read the latency when the valve is open (this is not the case at the start of my process).


Examples :

latency(start=10s)                 # trace from 10s to EOS
latency(start=120s;duration=5s)    # trace from 120s during 5s
latency(start=120s;end=130s)       # trace from 120s during 10s
latency(end=30s)                   # trace from pipeline start during 30s

These parameters could be useful for all GstTracer plugins.

from_pad/to_pad parameters
--------------------------

The goal is to add 2 parameters to configure the bound of the latency mesurement. This could permit to  mesure the latency on a part of the pipeline and not only the whole pipeline. The parameters from_pad and to_pad would target a specific pad in the pipeline.


Examples with this pipeline :  videotestsrc ! videoconvert name=convert ! gaussianblur name=blur ! videoconvert ! autovideosink

latency(to_pad=blur)   # measure latency between videotestsrc:src and blur:sink
latency(from_pad=blur)   # measure latency between blur:src and autovideosink:sink
latency(from_pad=convert, to_pad=blur) # measure latency between convert:src and blur:sink
latency(to_pad=blur:src) # measure latency between videotestsrc:src and blur:src
latency(from_pad=blur:sink, to_pad=blur:src) # measure latency between blur:sink and blur:src
latency(to_pad=blur), latency(from_pad=blur:sink) # measure separately latency from videotestsrc:src to blur:sink and from blur:sink to autovideosink:sink

The main difficulty of this change is to pass parameter to the plugins. Then the current event generation system in pad hook should works.

output destination parameter
----------------------------

The goal is to have a separate log for each tracing plugin. For this an optional parameter for all tracing plugins could be useful.

Example :
latency(output=/tmp/latency.log), rusage(output=/tmp/rusage.log)



Do you think these changes could be integrated upstream ? Do you have any suggestions to improve all this ?


Thanks,

Frédéric Bertolus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20160108/413dd1e8/attachment.html>


More information about the gstreamer-devel mailing list