MX51 V4L2 output 驱动

原文:http://blog.csdn.net/kickxxx/article/details/6639780


之前调试MXC V4L2驱动一直没有注意到output/mxc_v4l2_output.c这个文件,因为capture/*.c已经提供了still capture, stream capture, 以及overlay,所以没仔细的去看mxc_v4l2_output.c提供的功能,直到前几天负责维护overlay hal的同事提出打开了overlay hal /dev/video16这个设备节点,才让我跟到这个文件中

先从/dev/video0 和video16说起:

MXC V4L2生成了三个设备节点, /dev/radio0 /dev/video0以及/dev/video16, /dev/radio0就不讨论了,项目中没接触到。

/dev/video0是mxc_v4l2_capture驱动创建的设备节点, 而/dev/video16是mxc_v4l2_output驱动创建的设备节点。

/dev/video0节点既可用于capture又可用来overlay, 

而/dev/video16完全是为push mode overlay模式服务的,所谓push mode模式(以下几行纯属臆测):应用通过stream capture从/dev/video0 dequeue到图像buffer数据,然后把这个指针再传给/dev/video16(当然是通过VIDIOC_Q_BUF),output 模块会直接将queue进来的buffer直接输出到framebuffer,这就完成了Overlay功能

push mode overlay和 /dev/video0支持的直接overlay的区别是,  push mode overlay需要应用空间参与数据的处理,用户空间参与的代价就是cpu占用率,好处是用空间有机会接触到每一帧传送到 framebuffer的数据。而直接overlay是你启动overlay后,所有数据直接从camera流动到framebuffer, 中间没有任何机会接触数据,只能在frame buffer这里截获数据,速度是真快。(先到这里吧,有任务)


push mode模式的另外一个好处是,就是你可以使用USB camera, 对camera进行处理显示

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值