主题 : 有个问题,有点不懂,linux V4L2编程,读完缓存后,为什么还要写入呢?? 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 48584
精华: 0
发帖: 40
金钱: 210 两
威望: 42 点
综合积分: 80 分
注册时间: 2011-06-02
最后登录: 2011-12-25
楼主  发表于: 2011-07-11 02:53

 有个问题,有点不懂,linux V4L2编程,读完缓存后,为什么还要写入呢??

   if(::ioctl(fd,VIDIOC_DQBUF,&buf)==-1)//读缓冲地址
       return -1;

   //重新放入缓冲队列
   if(::ioctl(fd,VIDIOC_QBUF,&buf)==-1)
       return -1;

???这样操作的目的何在??
级别: 侠客
UID: 15047
精华: 0
发帖: 67
金钱: 335 两
威望: 67 点
综合积分: 134 分
注册时间: 2010-02-27
最后登录: 2017-09-13
1楼  发表于: 2011-07-11 08:37
你这个问题是VLC流控制的抓包吗?
级别: 新手上路
UID: 48584
精华: 0
发帖: 40
金钱: 210 两
威望: 42 点
综合积分: 80 分
注册时间: 2011-06-02
最后登录: 2011-12-25
2楼  发表于: 2011-07-11 15:20

 回 1楼(hhb0316) 的帖子

不是很懂,,查了一些资料,好像是说,V4L2不是专门为摄像头设计的,还有其他的设备也有可能使用到,因此视频流所占用的缓冲区域,有可能会被其他设备冲刷掉,所以读取后,重新写入,是为了防止视频流被冲掉,倒置摄像头无法正常工作!!!!
级别: 新手上路
UID: 48584
精华: 0
发帖: 40
金钱: 210 两
威望: 42 点
综合积分: 80 分
注册时间: 2011-06-02
最后登录: 2011-12-25
3楼  发表于: 2011-07-11 15:20
不是很懂,,希望有人能出来回答下
先谢谢了!!
在挣扎中坚持!
级别: 新手上路
UID: 60326
精华: 0
发帖: 22
金钱: 110 两
威望: 22 点
综合积分: 44 分
注册时间: 2011-12-08
最后登录: 2014-11-27
4楼  发表于: 2014-08-28 17:28
处理完后,当然要放回去呀。 缓存区只是一个fifo的管道,里面的东西都被你取出来了,缓存帧存哪?