linux 摄像头采集

采集到图片保存为JPEG文件,每个大小都为32K,明显有问题。用软件查看后发发现 图片有大量的无效数据。怀疑是mmap映射区间太大?应该怎么改呢?
videobuf[numbufs].start=mmap(NULL,buf.length,PROT_READ|PROT_WRITE,MAP_SHARED,video_fd,buf.m.offset);
buf为struct v4l2_buffer buf, mmap的大小是取决于 struct v4l2_buffer 结构变量的 length 的大小。
求高人指点!

作者: daisyzone   发布时间: 2011-06-13

首先要注意一下几点:
1、调用mmap函数之前要确定文件描述符video_fd对应的文件必须是打开的。
2、如果文件打开的方式是只读的话,那么不能指定为PORT_WRITE。
3、buf.length是映射的字节数,你说mmap大小这种说法是不正确的。
如果你觉得是mmap这里的问题,建议你通过查看mmap返回值来验证一下。
没有源代码,很难给你找错误。

作者: zwh5478877   发布时间: 2011-06-13