Pipeline profiling.

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

Pipeline profiling.

wl2776
Administrator
Debug output contains timestamps.
Are there any scripts, that can parse them and estimate, for example, the time, required for seeking, for each element, or something else?
Reply | Threaded
Open this post in threaded view
|

Re: Pipeline profiling.

wl2776
Administrator
wl2776 wrote
Debug output contains timestamps.
Are there any scripts, that can parse them and estimate, for example, the time, required for seeking, for each element, or something else?
Ok, I'll try to be more specific.

I have compiled the seeking example $GStreamer_source/gst-plugins-base/tests/examples/seek/seek.c both in linux and in windows.

I had to change it a little to compile in windows:
replace GDK_WINDOW_XID with GDK_WINDOW_HWND in realize_cb
and add
#define VSINK "directdrawsink"

The problem is that seeking on the same file is much slower in windows than in linux.
I use playbin2 in both cases, and the same media file (MPEG2).

Now I'd like to estimate what causes the delay.

However, I'm not very familiar with all gstreamer debug categories and don't know which ones to switch on. This is important, because simple GST_DEBUG=5 brakes everything and distorts the picture.
Another problem, I'm not very familiar with playbin2 internals (have read about seeking and pipeline seeking in the design docs, hold its print right now).

There is no problem in capturing the debug output and parsing it with some perl or python script.
I just need to know what to capture and parse.
Reply | Threaded
Open this post in threaded view
|

Re: Pipeline profiling.

Stefan Sauer
wl2776 wrote:

> wl2776 wrote:
>  
>> Debug output contains timestamps.
>> Are there any scripts, that can parse them and estimate, for example, the
>> time, required for seeking, for each element, or something else?
>>
>>    
> Ok, I'll try to be more specific.
>
> I have compiled the seeking example
> $GStreamer_source/gst-plugins-base/tests/examples/seek/seek.c both in linux
> and in windows.
>
> I had to change it a little to compile in windows:
> replace GDK_WINDOW_XID with GDK_WINDOW_HWND in realize_cb
> and add
> #define VSINK "directdrawsink"
>
> The problem is that seeking on the same file is much slower in windows than
> in linux.
> I use playbin2 in both cases, and the same media file (MPEG2).
>
> Now I'd like to estimate what causes the delay.
>
> However, I'm not very familiar with all gstreamer debug categories and don't
> know which ones to switch on. This is important, because simple GST_DEBUG=5
> brakes everything and distorts the picture.
> Another problem, I'm not very familiar with playbin2 internals (have read
> about seeking and pipeline seeking in the design docs, hold its print right
> now).
>
> There is no problem in capturing the debug output and parsing it with some
> perl or python script.
> I just need to know what to capture and parse.
>  
I recommend to log to a file (GST_DEBUG_NO_COLOR=1 GST_DEBUG="*:5") and
then use gst-debug-viewer afterwards (its on git.freedesktop.org). If
its still too slow, try *:4 or maybe "*:4,*mpeg*:5".

Stefan

------------------------------------------------------------------------------
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Pipeline profiling.

Vineeth-2
In reply to this post by wl2776
I think trying to profile by checking the timestamps of the logs will be slightly inaccurate since there is the overhead of the all the logs;
If you need to measure a specific aspect perhaps you can use gettimeofday() or other glib equivalent.

On Tue, Apr 27, 2010 at 4:55 PM, wl2776 <[hidden email]> wrote:


wl2776 wrote:
>
> Debug output contains timestamps.
> Are there any scripts, that can parse them and estimate, for example, the
> time, required for seeking, for each element, or something else?
>
Ok, I'll try to be more specific.

I have compiled the seeking example
$GStreamer_source/gst-plugins-base/tests/examples/seek/seek.c both in linux
and in windows.

I had to change it a little to compile in windows:
replace GDK_WINDOW_XID with GDK_WINDOW_HWND in realize_cb
and add
#define VSINK "directdrawsink"

The problem is that seeking on the same file is much slower in windows than
in linux.
I use playbin2 in both cases, and the same media file (MPEG2).

Now I'd like to estimate what causes the delay.

However, I'm not very familiar with all gstreamer debug categories and don't
know which ones to switch on. This is important, because simple GST_DEBUG=5
brakes everything and distorts the picture.
Another problem, I'm not very familiar with playbin2 internals (have read
about seeking and pipeline seeking in the design docs, hold its print right
now).

There is no problem in capturing the debug output and parsing it with some
perl or python script.
I just need to know what to capture and parse.
--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Pipeline-profiling-tp2067092p2067391.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.

------------------------------------------------------------------------------
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel


------------------------------------------------------------------------------

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Pipeline profiling.

Nostalgia
Hi Vineeth-2,

I need to profile a gstreamer's plug in (omxh264enc), so to do that I see a
post where they recommend to use gettimeofday() in the plug in's source code
and you recommend this too. Can you help me to know where we found these
code sources and how we can change them ?

Hope that you or someone can help me ...

Regards,



--
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: Pipeline profiling.

Baby Octopus
You can see if this CPU profiling tool would help -
https://github.com/kirushyk/gst-instruments

On the contrary, I'm not sure what exact profiling you would want to do for
omx encoder. For the hardware encoding, the gst wrapper might have to use
very little CPU and may show negligible percentage

If you want to see what percentage of GPU is busy, I'm not really sure if
its even achievable :)  A crude method would be to run the pipeline in
non-live mode(as fast as possible) and see what FPS you are getting as
output to know the real horsepower of hardware encoder

~BO



--
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: Pipeline profiling.

Nostalgia
Hi BabyOctopus,

Thanks for your reply, I should calculate the latency of the plugin and the
% of GPU using during coding ...



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