Tool/software: Linux
Hi,
We are working with Vision Sdk links and chain framework and the chain is as follows
NullSrc(A15) -> Decode(IPU) -> Alg_preproc(A15) -> Alg_proc_a (EVE ) -> Alg_proc_b (DSP) -> Alg_proc_c (A15) -> Alg_postproc(A15) -> Display(IPU).
Out of these alg plugin links
- preproc and postproc work in "NOT_IN_PLACE" mode
- proc_a, proc_b and proc_c work in "IN_PLACE" mode.
The proc_a and proc_b function such that it processes only 1 in 15 frames, and act as pass-through for the rest.
This results in an uneven flow rate of buffers, which show up as jerky video on the display.
We tried to rectify it by adding some precise timed waits in proc_c.
This is resulting in a strange behavior where same video buffer (output buffer of preproc) is being picked up for processing in preproc link (from emptyQ) even before it gets used/released from proc_c link.
This behavior is not seen upon disabling the wait timers.
We suspect this is due to timeout logic present in IPC links.
Can you please confirm/correct our understanding, or point out what else can be causing this issue.
In case this is due to IPC link timeout, can we disable the same and How?
Thanks in advance,
Regards,
Ranjith Bhide
PS:
The waits are in range of 20-40 ms for each frame
The proc_a + proc_b takes 250ms for each processing frame and almost 0 ms for each pass-through frame
The input frame rate is 15 fps.