I removed the buffering of the frames and the async calls. Now a configurable number of frames (m_max_queued_errored_frames) will be pushed to the queue, after that every 10000th frame with the same error will be pushed. This is much simpler than the previous design and it seems to run with no issues even with errors in every frame.
I removed the buffering of the frames and the async calls. Now a configurable number of frames (m_max_queued_errored_frames) will be pushed to the queue, after that every 10000th frame with the same error will be pushed. This is much simpler than the previous design and it seems to run with no issues even with errors in every frame.