首页 > 解决方案 > 驱动程序是否负责按照传递给它的顺序返回缓冲区

问题描述

根据V4L2框架的要求,驱动程序必须以与传递给它的顺序相同的顺序返回缓冲区吗?即使帧连续传递,是否允许以其他顺序返回缓冲区?

例如,如果先前通过请求三个缓冲区VIDIOC_REQBUFSVIDIOC_QUERYBUF是否允许驱动程序执行此类行为?

Time |  VIDIOC_QBUF   | VIDIOC_DQBUF
-----+----------------+----------------  
  |    [buf 0 emppty]
  |    [buf 1 emppty]
  |    [buf 2 emppty]
  |                    [buf 0 frame 0]
  |    [buf 0 emppty]
  |                    [buf 2 frame 1]
  |    [buf 2 emppty]
  |                    [buf 1 frame 2]
  |         ...             ...
  v

标签: linuxlinux-kernellinux-device-driverv4l2

解决方案


推荐阅读