Hi TI experts,
In an OMX chain that includes Capture->DEI->DSP->display i need to measure the delay from the time the frame is captured until the time it is sent to the display. Does anyone know how it should be done?
Thanks,
Gabi
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi TI experts,
In an OMX chain that includes Capture->DEI->DSP->display i need to measure the delay from the time the frame is captured until the time it is sent to the display. Does anyone know how it should be done?
Thanks,
Gabi
There are a few related Forum threads, like this one:
http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/t/152211.aspx
Regards,
Marc
Hi Marc,
Thanks for your reply, i have read carefully that thread. I am measuring time delay of several OMX chains and i get the following results:
CAP422->display 100msec
CAP-DEI->dis 200msec
In the thread you have sent me Vimal Jain is asking if notify_always mode is used.
Can you please explain what is notify_always mode and how to use it?
Thanks,
Gabi
Gabi,
Capture-Display latency is including the TV delay ? Could you please check, if you connect camera directly to TV/monitor what is delay ?
To enable notify_always, you can use following format for each port.
OMX_PARAM_COMPPORT_NOTIFYTYPE sNotifyType = {NULL};
OMX_INIT_PARAM (sNotifyType);
sNotifyType.eNotifyType = OMX_NOTIFY_TYPE_ALWAYS;
sNotifyType.nPortIndex = nPortIndex1;
eError = OMX_SetParameter (hComp1,
( OMX_INDEXTYPE ) OMX_TI_IndexParamCompPortNotifyType,
&sNotifyType);
Regards
Vimal
Hi Vimal,
Vimal Jain said:Capture-Display latency is including the TV delay ? Could you please check, if you connect camera directly to TV/monitor what is delay ?
I wasn't aware to the Capture-Display latency, i have measured it and it is about 100msec, thus i beleive that i need to change the measurments results to
CAP422->display 0 msec
CAP-DEI->dis 100msec
Vimal Jain said:Gabi,
To enable notify_always, you can use following format for each port.
OMX_PARAM_COMPPORT_NOTIFYTYPE sNotifyType = {NULL};
OMX_INIT_PARAM (sNotifyType);
sNotifyType.eNotifyType = OMX_NOTIFY_TYPE_ALWAYS;
sNotifyType.nPortIndex = nPortIndex1;
eError = OMX_SetParameter (hComp1,
( OMX_INDEXTYPE ) OMX_TI_IndexParamCompPortNotifyType,
&sNotifyType);
What is the trade-off when using OMX_NOTIFY_TYPE_ALWAYS?, i mean where do i loose when i use this mode? does frame rate will degrade?
Gabi,
Notify_always will make the buffer to be processed as soon as possible, compare to periodic task. It might increase M3 load a bit due to more cache evictions. For VC type app, It will not impact significantly as number of channels are less. Notify_always should reduce latency in each chain by ~1/2 frame.
Regards
Vimal
Hi Vimal,
Thanks for your answer, after thinking about your answer i have another question, is it possible to reduce the periodic task time, i mean instead of going to Notify_always mode, to find the optimal trade off between latency and processor load by reducing the periodic time?
Thanks,
Gabi
Gabi,
In periodic mode minimum 1/2 frame duration can be used, else it will be overkill for M3. For few channels, running, based on notify is fine. Typically this matters in multichannel cases, where last MHz of M3 is critical. in EZSDK Only decoder period is controlled based on frame rate, rest components period is ~ one frame duration.
Regards
Vimal