Hi, we have a processing chain composed of three v4l2 devices: --------------------- ----------------------- ---------------------- | v4l2 source | | v4l2 fixer | | v4l2 encoder | | (capture) |---------->| (mem2mem)| ------------>| (mem2mem) | ------------> |___________| |____________| |____________| "v4l2 source" generates consecutive sequence numbers so that we can detect whether a frame has been lost or not. "v4l2 fixer" and "v4l2 encoder" cannot lose frames because they don't interact with an external sensor. How should "v4l2 fixer" and "v4l2 encoder" behave regarding frame sequence number? Should they just copy the sequence number from the input buffer to the output buffer or should they maintain their own count for the CAPTURE queue? If the former option is chosen we should apply a patch like the following so that the sequence number of the input buffer is passed to the videobuf2 layer: diff --git a/drivers/media/video/videobuf2-core.c b/drivers/media/video/videobuf2-core.c index 1250662..7d8a88b 100644 --- a/drivers/media/video/videobuf2-core.c +++ b/drivers/media/video/videobuf2-core.c @@ -1127,6 +1127,7 @@ int vb2_qbuf(struct vb2_queue *q, struct v4l2_buffer *b) */ list_add_tail(&vb->queued_entry, &q->queued_list); vb->state = VB2_BUF_STATE_QUEUED; + vb->v4l2_buf.sequence = b->sequence; /* * If already streaming, give the buffer to driver for processing. Regards. -- Javier Martin Vista Silicon S.L. CDTUC - FASE C - Oficina S-345 Avda de los Castros s/n 39005- Santander. Cantabria. Spain +34 942 25 32 60 www.vista-silicon.com -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html