1.USB摄像头驱动
很多摄像头芯片在Linux kernel内置的驱动里并没有附带,国内的中星微芯片(vimicro)在Linux kernel
里也没有.
幸好 (spca5xx). 做了很多USB摄像头的支持.
我用的0AC8:301B(中星微的),在spca5xx软件里就支持.
1.1 怎么编译,安装?
下载,解压缩.
修改Makefile里的kernel目录,编译驱动都需要你当前启动kernel的源代码目录.
在代码目录产生spca5xx.ko(Linux kernel 2.6.xx版本).
insmod spca5xx.ko
注意kernel要支持v4l接口.(media support).
1.2 应用怎么用?
1.)你可以下载
spcaview,来编译,运行.
2.)也可以用gqcam, xawtv,gnomemeeting, camE等软件.(标准v4l接口).
2.EGui 怎么用这个驱动?
2.1简单原理.
EGui用的也是标准v4l接口,打开/dev/video0设备文件,进行一些设置后.读出具体的数据.
EGui设置读到的数据是RGB的.再采用drawrgb,来显示.
其实EGui采用的v4l这个接口来自vidcat.c (webcam里面的一个子程序).
2.2 程序实现.
程序代码
展开后在EGui/demo/usbcam/目录
usbcam.c 主要负责EGui的显示接口,
vidcat.c 负责v4l接口.
程序采用timer方式0.5秒显示一帧. 我主要是实现功能没有仔细优化.
其实我看了spca5xx的驱动,它每次读2个帧进行buffer处理,我每次都读0帧,并没有理睬1帧.这个可以
优化.
还有就是open,close文件的处理,我现在为了保证安全每次timer都重新做一次,要是优化应该可以不需
要.由于我对v4l的原理不清楚,没有分开做.有兴趣的朋友可以帮我优化优化.
如果有其他问题文档上没有提及的请到的论坛上提问.
good luck
asmcos
2006-04-21
--------------------
egui是一个图形库,
阅读(522) | 评论(0) | 转发(0) |