求linux 下usb 摄像头的应用程序的那个问题,我发了我部分的代码在上面能否帮忙看看,高手?
采用的是linux2.6.32.2的内核版本中的gspca驱动,摄像头已经加载成功,可以读到摄像头的参数(我printf出来的)。然后我做了内存映射mmap,然后ioct...
采用的是linux2.6.32.2的内核版本中的gspca驱动,摄像头已经加载成功,可以读到摄像头的参数(我printf出来的)。然后我做了内存映射mmap,然后ioctl采图像,接着判断ioctl是否收完。但是读出来只有4个char,非常的诡异,我用read也只有4个char。
我估计是我在内存映射或者是ioctl的地方做错了。 能否提供一些这部分的代码。其实也没有几句话。
char *start;
start = (char*)mmap(NULL,grab_vm.size,PROT_READ|PROT_WRITE,MAP_SHARED,cam_fd,0);
if (start < 0)
{
perror("mmap failed");
exit(1);
}
errorctl = ioctl(cam_fd,VIDIOCMCAPTURE,&grab_buf);
if(errorctl < 0)
{
perror("can not start to capture");
exit(1);
}
while(ioctl(cam_fd,VIDIOCSYNC,&grab_buf.frame) < 0){}
munmap(start,grab_vm.size); 展开
我估计是我在内存映射或者是ioctl的地方做错了。 能否提供一些这部分的代码。其实也没有几句话。
char *start;
start = (char*)mmap(NULL,grab_vm.size,PROT_READ|PROT_WRITE,MAP_SHARED,cam_fd,0);
if (start < 0)
{
perror("mmap failed");
exit(1);
}
errorctl = ioctl(cam_fd,VIDIOCMCAPTURE,&grab_buf);
if(errorctl < 0)
{
perror("can not start to capture");
exit(1);
}
while(ioctl(cam_fd,VIDIOCSYNC,&grab_buf.frame) < 0){}
munmap(start,grab_vm.size); 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询