v4l2中bufqueue数据管理和传输

ch_jason 2012-12-10 04:32:06
在v4l2下,camera数据通过bufqueue管理和传输的?
求大神过来看看。
...全文
563 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
YAVA_2009 2013-01-06
  • 打赏
  • 举报
回复
说的不错,顶一个!
kickxxx 2012-12-13
  • 打赏
  • 举报
回复
queue有多少个buffer没关系,我说的情况没有限定queue中有多少个buffer 每完成一帧数据,都会生成一个中断。 上面所说的完成一帧数据是指开发板的camera处理模块,从sensor或者AD转换芯片接收到完整的一帧数据,此时开发板的image process unit会产生一个中断。
ch_jason 2012-12-13
  • 打赏
  • 举报
回复
引用 1 楼 kickxxx 的回复:
简单的说,应用层和kernel层共同操作一个buffer queue, 拍照的情况下: application通过DEQUE_BUF从这个队列获取填充好的数据(此时如果队列内存在有效数据,那么kernel会返回,否则kernel阻塞,直到有效数据出现),使用完后,再把这个buffer 通过QUE_BUF入队,供kernel使用。 kernel 向应用层提供了两个接口……
预览的情况,queue总共六个buffer的情况下呢? 中断是在camera数据传输完毕才产生的?
kickxxx 2012-12-11
  • 打赏
  • 举报
回复
简单的说,应用层和kernel层共同操作一个buffer queue, 拍照的情况下: application通过DEQUE_BUF从这个队列获取填充好的数据(此时如果队列内存在有效数据,那么kernel会返回,否则kernel阻塞,直到有效数据出现),使用完后,再把这个buffer 通过QUE_BUF入队,供kernel使用。 kernel 向应用层提供了两个接口:一个QUEUE_BUF,一个DEQUE_BUF,kernel会记录buffer队列中哪一个包含有效数据,如果应用层DEQUEUE一个buffer,那么kernel会判断这个buffer是否已经填充了camera数据,如果是则返回,不是则阻塞。kernel在收到camera数据传输完毕的中断后,会把队列中的一个buffer置为可用,同时唤醒阻塞在buffer queue上的进程。 kernel和应用的关系,就是生产者和消费者关系,kernel负责填充camera数据,app负责消费camera数据

1,317

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧