Hi Oskar,
Thanks for you response. Based on your answer, I found something interesting.
We have a pipeline with the following:
1. Frame input queue to the neural network: We feed the images with this. We already have blocking set to False and maxSize set to 1 for this.
2. Detections output queue from the neural network: We get detections with this. We did not set block or maxSize explicitly (because we thought it should effectively only depend on the input queue)
As you know, when the device is disconnected, and we connect again, the sequence difference jumps from 3 to 14. But logically, if the input queue has maxSize =1 and blocking = False, it should not happen because there should be no accumulation in detections output queue if the oak device is disconnected for a period
Surprisingly, when I set maxSize=1 and blocking = False for detections output queue as well, the behavior changed. After a disconnect and reconnect, the sequence number difference starts from 16, and in about 30-40 cycles, it goes down slowly to 3 again.
Question 1: Why would setting maxSize and blocking for the frame input queue not be enough?
Question 2: To us, it feels like there's an internal queue of around 16 that is used while the device is disconnected and reconnected again (even if we explicitly fix it with maxSize). Do you have some ideas?
Question 3: Additionally, I'm trying to understand why we have this sequence number difference of 3 in the first place.
Since we maintain a sequence number for each frame we feed, we should get the same sequence number with getSequenceNum() api. Do you have some thoughts on this as well?
Thanks,
Sharad