我正在尝试为我拥有的特殊相机设备编写符合 V4L2 的驱动程序,但该设备似乎对 V4L2 的缓冲系统并不特别友好。它不需要单独分配的缓冲区,而是需要一个能够保存一组缓冲区(通常为 4 个)的单个连续内存块,然后它提供一个状态寄存器告诉您哪个是最新的(在每帧经过 DMA 后更新给主人)。所以它基本上只需要一个大的 DMA 分配的内存块来工作,而不是 4 个最有可能分开的。
如何将它与 V4L 一起使用?我看到的所有内容VIDIOC_CREATE_BUFS
,VIDIOC_REQBUFS
以及缓冲区的内部分配,我都无法获得任何基于 V4L 的东西(比如qv4l2
在没有成功的情况下工作QBUF
并且DQBUF
使用它们的内部结构。
如何才能做到这一点?