Hi, I think the sequence of using a V4L2 codec mem2mem driver is like this: 1. queue buffer for input buffer 2. queue buffer for output buffer 3. Streamon OUTPUT plane 4. Streamoff Capture plane 5. dequeue buffer for input buffer 6. dequeue buffer for output buffer And for the driver implementation, I see it needs to setup mem_ops for source and destination queue: for example, http://lxr.free-electrons.com/source/drivers/media/platform/s5p-jpeg/jpeg-core.c src_vq->mem_ops = &vb2_dma_contig_memops; dst_vq->mem_ops = &vb2_dma_contig_memops; My question is why we need the mem_ops in source and destination queues. In other woreds, why the driver need to allocate memory when user space applcation has provided the memory via #1 and #2 above? Thank you. -- 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