I have set up the resizer in single shot mode to decode data using the user pointer interface in dvsdk_4_02_00_06.
It appears to be working, but eventually the video output freezes due to the thread getting stuck.It never returns with an error, just hangs. I've searched on the forums for some ideas, and I found some posts referencing a clock divider for the resizer module. When I adjust the clock divider to slow down the clock, I can improve the reliability, but the frame rate goes down, as I would expect.
DM368 does not have a resizer on Rx path. We utilized the IPIPE resizer for TX (i.e. encoder and PIP) and Rx(decoder) path by making IPIPE to single shot mode..
a) We are introducing a small delay of 5 ms in between calls to IPIPE resizer. i.e.
while()
{
Transmit(Tx Path)
camera--->CCDC----->mem----->ipipe--|-->mem----->channel 1----->Encoder
|--->mem----->channel2----->PIP(display local image)
5 ms sleep
Receiver(Rx Path)
Decoder o/p---->mem---->ipipe---->memory
5 ms sleep
}
It seems that IPIPE hangs if we do not introduce the sleep between forward and reverse path. Please note that IPIPE is configured for Tx and Rx path for every frame and ipipe i/p and o/p formats are different between Tx and Rx path. Because of the sleep the frame rate is reduced.
Why is it required to put sleep before performing operations?
Can it be avoided? How?