May I ask if there is a way to perform repeat capture ICaptureSession->repeat(Request)
without using multi-threading?
So far, all Jetson sample code I have seen use multi-threading if repeat()
is used. I have tried different things and always got waitForIdleLocked
error without using multi-threading. And when that error happens, the application hangs. That made me wondering if multi-threading is necessary to perform repeat capture. Basically, one dedicated thread keeps reading from the EGLStream.
From the document, I saw it is possible that the stream could be stall if the consumer is not fast enough. Is it the reason that a dedicated thread is necessary to keep streaming moving? When the stream is stall, what can I do to restore the stream?
To summarize.
- Is multi-threading necessary to perform repeat capture?
- If it is necessary, is that because the stream could be stall if the consumer is not fast enough and then the application could hang?
- If it is not necessary, how can I restore the stream if it stalls?
Thank you very much for your help!