Queue

Queue blocks attached to consumer blocks keep track of payloads waiting to be acquired by the consumer. Each consumer block must have an attached queue block to manage available packets. Queue blocks attached to memory boundary Source IPC blocks keep track of payloads waiting to be copied across memory boundary. Each memory boundary Source IPC block must have an attached queue block to manage available packets.

media/image15.png

NvSciStream supports two types of queue blocks: FIFOs and mailboxes. A FIFO block is used when all data must be processed. Payloads always wait in FIFO until the consumer acquires them. Mailboxes are used when the consumer always acts on the most recent data. If a new payload arrives in the mailbox when one is already waiting, the previous one is skipped and immediately returned to the producer for reuse.