<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p></p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;">I am looking to profile my rather simple Gstreamer pipeline for a school project (Essentially videotestsrc ! omxh264enc ! rtph264pay, with a gst-rtsp-server wrapped around it).
 I wanted to resolve some questions regarding it:</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;">1) The GstVideoEnc base class (<a href="http://code.metager.de/source/xref/freedesktop/gstreamer/gst/plugins-base/gst-libs/gst/video/gstvideoencoder.c" target="_blank" class="x_OWAAutoLink" id="LPlnk871676" title="http://code.metager.de/source/xref/freedesktop/gstreamer/gst/plugins-base/gst-libs/gst/video/gstvideoencoder.c
Ctrl+Click or tap to follow the link">http://code.metager.de/source/xref/freedesktop/gstreamer/gst/plugins-base/gst-libs/gst/video/gstvideoencoder.c</a>)
 says that the function which is registered as the callback to the base class's handle_frame() will run first. In the end, to transfer the frame to the downstream element, the derived class should call gst_video_encoder_finish_frame().</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;"><br>
</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;">2) However, GstVideoEnc does not talk about handle_output_frame(), which seems to be specific to GstOMXVideoEncClass (<a href="https://github.com/tjormola/gst-omx/blob/master/omx/gstomxvideoenc.h" target="_blank" class="x_OWAAutoLink" id="LPlnk549137">https://github.com/tjormola/gst-omx/blob/master/omx/gstomxvideoenc.h</a>).
 A callback to this is registered by omxh264enc, and it is this function that finally calls _finish_frame().</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;"><br>
</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;">3) So what happens between _handle_frame and handle_output_frame? _handle_frame() does not call any other function. My intuition is that _handle_frame does something to offload
 the computation to the OMX API (not visible in the code) and stores the result in a buffer in memory and transfers control back to the parent class (GstOMXVideoEncClass) at which time the parent class calls handle_output_frame. Am I right? </p>
<br style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;">
4) So is it right to measure the the time taken from the beginning of _handle_frame to when _finish_frame is called as the time the frame spends in the plugin? </div>
<br>
Thanks,
<p></p>
<p>-Aswin</p>
</div>
</body>
</html>