FIFO Mode

In FIFO mode no images are discarded. When a producer adds image frames to the stream, they are placed in a queue for subsequent retrieval by the consumer. EGLStream sets the queue size when it creates the queue. If the producer attempts to insert a frame and the FIFO queue is full, then the producer stalls until there is room in the FIFO queue. When the consumer retrieves an image frame from the EGLStream, it sees the image frame that immediately follows the image frame that it last retrieved (unless no such frame has been inserted yet, in which case it retrieves the same image frame that it retrieved last time).

Timing of an EGLStream in FIFO mode is the responsibility of the consumer. Each image frame in the FIFO has an associated timestamp set by the producer. The consumer uses this timestamp to determine when the image frame is intended to be displayed.