hello
I have written a C code for running a h264 decoder pipeline. the gstreamer pipeline I used is as follows :
appsrc -> h264parse -> ducatih264dec -> waylandsync
also I have inited and started a UDP socket that receives H264 frames from PC.
a thread has been started in EVM for receiving UDP packets and exctracting H264 frames and then pushing it in appsrc buffer.
In PC side, a software reads H264 frames from a file and send it to EVM frame by frame.
when I debug the PC software and run it step by step, it is seen that after sending about 11 or 12 frames to EVM, the output display of EVM starts to show the frames.
why does this high latency exist?
I also set the parameter "is-live" of appsrc to TRUE and parameter "max-reorder-frames" of ducatih264dec to 0. but still the high latency appears.
what can I do for reducing the latency to a value smaller than 2 frames?
I must declare that a similar pipeline exactly as above pipeline ran in PC side (in C code) and the parameter "is-live" of appsrc is set to TRUE. the latency between pushing h264 frames to appsrc and display was 2 frames. note that when setting parameter "is-live" of appsrc to FALSE, the latency was very high same as what is seen in EVM (about 12 frames).
now, I wonder that what is the difference between PC side C code and EVM C code? although all elements are the same and their parameters are same as each other.
any help will be appreciated.
Best Regards,
Ali