小弟最近在做本科的毕业设计,是一个s3c3440的usb摄像头图像采集,开发板用的扬创utu2440.提供的linux内核2.6.24,已经集成了对zc301的驱动,所以在dev下已经有一个video0,插上摄像头多了一个video1.这个是摄像头插上后超级终端的提示
*********************************************************************************
usb 1-1: new full speed USB device using s3c2410-ohci and address 11
usb 1-1: configuration #1 chosen from 1 choice
drivers/media/video/gspca/gspca_core.c: USB SPCA5XX camera found.(ZC3XX)经servfox测试:servfox -d /dev/video1 -g -s 640x480 -w 7070 可以获得图像 但是我在获取图像程序中设置的打开设备是/dev/video0,然后后获取的信息如下//查询驱动的功能
------------VIDIOC_QUERYCAP-----------
Capability Informations:
 driver: vivi
 card: vivi
 bus_info: 
 version: 00000400
 capabilities: 05000001//获取当前设备支持的视频格式
--------VIDIOC_ENUM_FMT---------
get the format what the device support
{ pixelformat = ''YUYV'', description = ''4:2:2, packed, YUYV'' }//设置视频设备数据格式
------------VIDIOC_S_FMT---------------
Stream Format Informations:
 type: 1
 width: 320
 height: 240
 pixelformat: YUYV
 field: 4
 bytesperline: 640
 sizeimage: 153600
 colorspace: 0
 priv: 0
 raw_date: @问题出现在我通过这样得到图像
1.直接获取了yuyv格式的图像,然后再YUYVviewer里面查看图片发现图片是一幅色条
2.获取YUYV图像,然后将其转成RGB24,再用libjpeg压缩得到图像,结果还是色条
我感觉是摄像头根本没有获取到图像,上面的图像貌似是一个默认图像,然后我把程序中的打开设备改成/dev/video1,但是设备能打开,到了获取Capability的时候就失败了,所以好像也不是这个问题。
到目前我这个本科学渣已经搞不懂了,请高人赐教!!