【问题标题】:Control V4L2/VB2 Buffer Allocation?控制 V4L2/VB2 缓冲区分配?
【发布时间】:2014-06-04 12:57:38
【问题描述】:

我正在尝试为我拥有的特殊相机设备编写符合 V4L2 的驱动程序,但该设备似乎对 V4L2 的缓冲系统不是特别友好。它不需要单独分配的缓冲区,而是需要一个能够保存一组缓冲区(通常为 4 个)的单个连续内存块,然后它提供一个状态寄存器告诉您哪个是最新的(在每帧被 DMA 后更新给主人)。所以它基本上只需要一个大的 DMA 分配的内存块来工作,而不是 4 个最有可能分开的。

如何将它与 V4L 一起使用?我看到的关于VIDIOC_CREATE_BUFSVIDIOC_REQBUFS 等的所有内容都是缓冲区的内部分配,而且我无法获得任何基于 V4L 的内容(比如 qv4l2 在没有成功的 QBUFDQBUF 使用它们的情况下工作内部结构。

如何做到这一点?

【问题讨论】:

    标签: linux linux-kernel linux-device-driver v4l2


    【解决方案1】:

    为了补全,终于在“meye”驱动中找到了解决办法。我删除了所有 VB2 并编写了自己的 reqbuf、querybuf、qbuf 和 dqbuf,以及我自己的 mmap 例程来处理分配。一切正常!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-25
      • 2021-07-21
      • 2013-09-26
      • 1970-01-01
      • 2011-01-19
      • 2011-04-15
      • 2017-03-09
      • 1970-01-01
      相关资源
      最近更新 更多