how to use tracer like latency leaks with api via code programatically

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

how to use tracer like latency leaks with api via code programatically

chakra
Hi,

I have a typical pipeline as below,

*rtspsrc->rtph264depay->rtph264pay->webrtcbin*

I want measure the exact latency introduced by pipeline in processing the
buffers and also to detect if any leaks.

I found a way using TRACER
https://gstreamer.freedesktop.org/documentation/additional/design/tracing.html

But the issues happens on my setup randomly and not always, and I cannot
keep the log enabled always as with below environment variables,

GST_TRACERS=leaks
GST_TRACERS=latency
GST_TRACERS=stats
GST_DEBUG="GST_TRACER:7"

So I am looking for a API(Code) way to enable and fetch tracer details
dynamically from pipeline on demand.

I could see some details here
https://gstreamer.freedesktop.org/documentation/additional/design/tracing.html?gi-language=c#tracer-api
on using it, but could not get a clear example to apply it

If some one can suggest an example/hint on this it would be helpful to
continue

Thanks



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: how to use tracer like latency leaks with api via code programatically

Nicolas Dufresne-5
Le vendredi 13 décembre 2019 à 05:18 -0600, chakra a écrit :

> Hi,
>
> I have a typical pipeline as below,
>
> *rtspsrc->rtph264depay->rtph264pay->webrtcbin*
>
> I want measure the exact latency introduced by pipeline in processing the
> buffers and also to detect if any leaks.
>
> I found a way using TRACER
> https://gstreamer.freedesktop.org/documentation/additional/design/tracing.html
>
> But the issues happens on my setup randomly and not always, and I cannot
> keep the log enabled always as with below environment variables,
>
> GST_TRACERS=leaks
> GST_TRACERS=latency
> GST_TRACERS=stats
> GST_DEBUG="GST_TRACER:7"
>
> So I am looking for a API(Code) way to enable and fetch tracer details
> dynamically from pipeline on demand.
The leak tracer can only work if it's enabled from the beginning, as it
needs to track the allocation to find leaks. But future version of
GStreamer introduce new action signal that let you "scope" the tracing
at run-time. Not compiled doc yet, as far as I know.

https://gitlab.freedesktop.org/gstreamer/gstreamer/blob/master/plugins/tracers/gstleaks.c#L30 
https://gitlab.freedesktop.org/gstreamer/gstreamer/blob/master/plugins/tracers/gstleaks.c#L30

There is no API yet to enable/disable other tracers at run-time. It is
something that has been discussed, and is likely wanted. That would
need to be designed and developed. I don't know in what form it will
exist. Unlike the leak tracers, most tracers are stateless, so they
don't maintain any log, so fetching is not really possible.

>
> I could see some details here
> https://gstreamer.freedesktop.org/documentation/additional/design/tracing.html?gi-language=c#tracer-api
> on using it, but could not get a clear example to apply it
>
> If some one can suggest an example/hint on this it would be helpful to
> continue
>
> Thanks
>
>
>
> --
> Sent from: http://gstreamer-devel.966125.n4.nabble.com/
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (201 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: how to use tracer like latency leaks with api via code programatically

chakra
Ok. Thank you

Hoping to see the changes from GStreamer 1.18 and way forward



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: how to use tracer like latency leaks with api via code programatically

Marianna S. Buschle
Is there any update on this?

I'm also very interested in being able to listen for trace information on an
app like it is possible with warnings and errors:
'g_signal_connect (bus, "message::error", G_CALLBACK (cb_message_error),
NULL);'

And also can we change the enabled tracers runtime?

I have found 'gst_debug_set_threshold_from_string()' for changing the value
of GST_DEBUG is there a similar one for GST_TRACERS?

Or does setenv("GST_TRACERS","...", 1) can work runtime, after calling
gst_init()?

I'm using "normal" gstreamer tracers and also some from gst-shark



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel