LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1104|回复: 1

摄像头视频采集问题

[复制链接]
发表于 2007-11-30 22:12:16 | 显示全部楼层 |阅读模式
int main(int argc,char** argv)
{
img=(unsigned char *)malloc(IMGSIZE*sizeof(char));
printf("opne v4l\n");
if((vd.fd=open("/dev/video0",O_RDWR))<0)
    {
       printf("open v4l error\n");
                  exit(1);
    }
ioctl(vd.fd,VIDIOCGCAP,&(vd.capability));
printf("capability.name: %s\n",vd.capability.name);

///////get picture//////////////
ioctl(vd.fd,VIDIOCGPICT,&(vd.picture));
///////////set picture////////////////
vd.picture.depth=12;
vd.picture.palette=15;
if(ioctl(vd.fd,VIDIOCSPICT,&(vd.picture))<0)
  {
printf("vidiocspic error\n");
exit(1);
  }
////////mmap_init///////
vd.mmap.width=IMGWIDTH;
vd.mmap.height=IMGHEIGHT;
vd.mmap.format=VIDEO_PALETTE_RGB24;
vd.frame=0;
vd.framestat[0]=vd.framestat[1]=0;
//////////get buffer////////////////////////
if((ioctl(vd.fd,VIDIOCGFBUF,&(vd.buffer)))==-1)
{
printf("get mbuf error\n");
exit(1);
}
//////////////////mmap_init//////////////////
if((ioctl(vd.fd,VIDIOCGMBUF,&(vd.mbuf)))==-1)
{
printf("get mbuf error\n");
exit(1);
}
vd.map=(unsigned char*)mmap(0,vd.mbuf.size,PROT_READ|PROT_WRITE,MAP_SHARED,vd.fd,0);
if(MAP_FAILED==vd.map)
{
perror("");
printf("mmap error\n");
}
printf("vd.map=%d\n",(int)vd.map);
////////////grab frame//////////////////////////////
vd.mmap.frame=0;
ioctl(vd.fd,VIDIOCMCAPTURE,&(vd.mmap));
vd.framestat[0]=1;
vd.frame=0;
////////////////grab sync/////////////////////////////
ioctl(vd.fd,VIDIOCSYNC,&(vd.frame));
vd.framestat[vd.frame]=0;
/////////////get address///////////////////////////      
   img=vd.map+vd.mbuf.offsets[vd.frame];
       printf("vd.map=%d\n",(int)vd.map);
          printf("vd.mbuf.offsets[vd.frame]=%d\n",(int)vd.mbuf.offsets[vd.frame]);
           printf("img1=%d\n",(int)img);
。。。。。。
运行后显示
vd.map=-1211031552
vd.mbuf.offsets[vd.frame]=0
img1=-1211031552
就不明白为什么mmap()返回给的值是个负的 不知道哪里出问题了
请各位帮忙看看 谢谢了
发表于 2007-12-5 14:26:21 | 显示全部楼层
没有看懂,vd是什么?没做过linux下的摄像头视频采集,linux下也有视频采集驱动吗??
楼主能不能解释一下。很有兴趣想自己也做一个,楼主能不能指点一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表