亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? spcav4l.c

?? arm9 Linux下基于攝像頭的物體移動檢測程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
      vd->vmmap.width = vd->hdrwidth;      vd->vmmap.format = vd->formatIn;    }  else    {      if (ioctl (vd->fd, VIDIOCGWIN, &vd->videowin) < 0)	perror ("VIDIOCGWIN failed \n");      vd->videowin.height = vd->hdrheight;      vd->videowin.width = vd->hdrwidth;      if (ioctl (vd->fd, VIDIOCSWIN, &vd->videowin) < 0)	perror ("VIDIOCSWIN failed \n");      printf ("VIDIOCGWIN height %d  width %d \n",	      vd->videowin.height, vd->videowin.width);    }  vd->framesizeIn = ((vd->hdrwidth * vd->hdrheight * vd->bppIn) >> 3);//  vd->pixTmp =//    (unsigned char *) realloc (vd->pixTmp, (size_t) vd->framesizeIn);}/* return masq byte for the needed size */static int convertsize( int width, int height){	switch (width){	case 640:		if(height == 480)		return VGA;	break;	case 384:		if(height == 288)		return PAL;	break;	case 352:		if(height == 288)		return SIF;	break;	case 320:		if(height == 240)		return CIF;	break;	case 192:		if(height == 144)		return QPAL;	break;	case 176:		if(height == 144)		return QSIF;	break;	case 160:		if(height == 120)		return QCIF;	break;	default:	break;	} return -1;}static int sizeconvert( int *width, int *height, int size){	switch (size){	case VGA:		*height = 480;		*width = 640;			break;	case PAL:		*height = 288;		*width = 384;			break;	case SIF:		*height = 288;		*width = 352;			break;	case CIF:		*height = 240;		*width = 320;			break;	case QPAL:		*height = 144;		*width = 192;			break;	case QSIF:		*height = 144;		*width = 176;			break;	case QCIF:		*height = 120;		*width = 160;			break;	default:	return -1;	break;	} return 0;}static int convertpalette( int palette){	switch (palette){	case VIDEO_PALETTE_JPEG:		return JPG;	break;	case VIDEO_PALETTE_YUV420P:			return YUV420P;	break;	case VIDEO_PALETTE_RGB24:			return RGB24;	break;	case VIDEO_PALETTE_RGB565:			return RGB565;	break;	case VIDEO_PALETTE_RGB32:			return RGB32;	break;	default:	break;	} return -1;}static int paletteconvert( int code){	switch (code){	case JPG:		return VIDEO_PALETTE_JPEG;				break;	case YUV420P:		return VIDEO_PALETTE_YUV420P;			break;	case RGB24:		return VIDEO_PALETTE_RGB24;				break;	case RGB565:		return VIDEO_PALETTE_RGB565;			break;	case RGB32:		return VIDEO_PALETTE_RGB32;			break;	default:	return -1;	break;	} return 0;}/*check palette not so easy try VIDIOCMCAPTURE IOCTL the only one with palette and size *//* some drivers may fail here  */static int checkpalette (struct vdIn *vd){	unsigned char masq = 0x00;	int f = 0;	int needpalette = 0;	int palette =0;		needpalette = convertpalette(vd->formatIn); 	/* is the palette available */	if (!(vd->palette & needpalette)){	/* find an other one */		if(needpalette >1){			masq = needpalette -1;		}	if (( masq & vd->palette) > 1){		/* check lower masq upper size */		while (!((needpalette = needpalette >> 1) & vd->palette) && needpalette);	} else if ((masq & vd->palette) == 0){		masq = 0xff -(needpalette << 1) +1;		if ((masq & vd->palette) == 0){			/* no more size available */			needpalette = 0;		} else {		/* check upper masq */			while (!((needpalette = needpalette << 1) & vd->palette) && needpalette);		}		} // maybe == 1	} 		if ((palette = paletteconvert( needpalette)) < 0){		printf("Invalid palette in check palette fatal !! \n");		return -1;	}      if (palette){      vd->vmmap.height = vd->hdrheight;      vd->vmmap.width = vd->hdrwidth;      vd->vmmap.format = palette;      	  vd->vmmap.frame = 0;	  if (ioctl (vd->fd, VIDIOCMCAPTURE, &(vd->vmmap)))	    {	      perror ("cmcapture");	      return -1;	    }	    } else {	    printf("palette not find check palette fatal !! \n");	    return -1;		    }	    /*populate the change */	vd->formatIn = palette;return palette;   }/* test is palette and size are available otherwhise return the next available palette and size palette is set by preference order jpeg yuv420p rbg24 rgb565 and rgb32 */static int check_palettesize(struct vdIn *vd ){	int needsize = 0;	int needpalette = 0;	unsigned char masq = 0x00;	/* initialize needed size */	if ((needsize = convertsize(vd->hdrwidth,vd->hdrheight)) < 0){	printf( "size seem unavailable fatal errors !!\n");		return -1;	}	/* is there a match with available palette */	/* check */	if (!(vd->sizeothers & needsize)){	if (needsize > 1){		masq = needsize -1;		}	if (( masq & vd->sizeothers) > 1){		/* check lower masq upper size */		while (!((needsize = needsize >> 1) & vd->sizeothers) && needsize);	} else if ((masq & vd->sizeothers) == 0){		masq = 0xff -(needsize << 1) +1;		if ((masq & vd->sizeothers) == 0){			/* no more size available */			needsize = 0;		} else {		/* check upper masq */			while (!((needsize = needsize << 1) & vd->sizeothers) && needsize);		}		} // maybe == 1	 	}	if(needsize){		/* set the size now check for a palette */		if(sizeconvert( &vd->hdrwidth,&vd->hdrheight,needsize) > 0){			printf( "size not set fatal errors !!\n");		return -1;		}		if((needpalette = checkpalette(vd) < 0)){		return -1;		}	 } else {		 printf ("Damned no match found Fatal errors !!\n");		 return -1;	 }return needsize;	}static intisSpcaChip (const char *BridgeName){  int i = -1;  int find = -1;  int size = 0;    /* Spca506 return more with channel video, cut it */    /* return Bridge otherwhise -1 */  for (i = 0; i < MAX_BRIDGE -1; i++)    {    size = strlen (Blist[i].name) ;    printf ("is_spca %s \n",Blist[i].name);      if (strncmp (BridgeName, Blist[i].name, size) == 0)	{	find = i;	  break;	}    }  return find;}static intGetStreamId (const char *BridgeName){  int i = -1;  int match = -1;/* return Stream_id otherwhise -1 */  if ((match = isSpcaChip (BridgeName)) < 0)    {      printf ("Not an Spca5xx Camera !!\n");      return match;    }  switch (match)    {    case BRIDGE_SPCA505:    case BRIDGE_SPCA506:      i = YYUV;      break;    case BRIDGE_SPCA501:      i = YUYV;      break;    case BRIDGE_SPCA508:      i = YUVY;      break;    case BRIDGE_SPCA536:    case BRIDGE_SPCA504:    case BRIDGE_SPCA500:    case BRIDGE_SPCA504B:    case BRIDGE_SPCA533:    case BRIDGE_SPCA504C:    case BRIDGE_ZR364XX:    case BRIDGE_ZC3XX:    case BRIDGE_CX11646:    case BRIDGE_SN9CXXX:    case BRIDGE_MR97311:         i = JPEG;      break;    case BRIDGE_ETOMS:    case BRIDGE_SONIX:    case BRIDGE_SPCA561:    case BRIDGE_TV8532:      i = GBRG;      break;    default:      i = UNOW; // -1;      printf ("Unable to find a StreamId !!\n");      break;    }  return i;}static intGetDepth (int format){  int depth;  switch (format)    {      case VIDEO_PALETTE_JPEG:      {	depth = 8;		      }      break;    case VIDEO_PALETTE_RAW:      {	depth = 8;		      }      break;    case VIDEO_PALETTE_YUV420P:      {	depth = (8 * 3) >> 1;      }      break;    case VIDEO_PALETTE_RGB565:      depth = 16;      break;    case VIDEO_PALETTE_RGB24:      depth = 24;      break;    case VIDEO_PALETTE_RGB32:      {	depth = 32;      }      break;    default:      depth = -1;      break;    }  return depth;}__u8SpcaGetBrightness (struct vdIn * vdin){  if (GetVideoPict (vdin) < 0)    {      printf (" Error getBrightness \n");      return 0;    }  return ((vdin->videopict.brightness) >> 8);}voidSpcaSetBrightness (struct vdIn *vdin, __u8 bright){  vdin->videopict.brightness = bright << 8;  if (SetVideoPict (vdin) < 0)    {      printf (" Error setBrightness \n");    }}__u8SpcaGetContrast (struct vdIn *vdin){  if (GetVideoPict (vdin) < 0)    {      printf (" Error getContrast \n");      return 0;    }  return ((vdin->videopict.contrast) >> 8);}voidSpcaSetContrast (struct vdIn *vdin, __u8 contrast){  vdin->videopict.contrast = contrast << 8;  if (SetVideoPict (vdin) < 0)    {      printf (" Error setContrast \n");    }}__u8SpcaGetColors (struct vdIn *vdin){  if (GetVideoPict (vdin) < 0)    {      printf (" Error getColors \n");      return 0;    }  return ((vdin->videopict.colour) >> 8);}voidSpcaSetColors (struct vdIn *vdin, __u8 colors){  vdin->videopict.colour = colors << 8;  if (SetVideoPict (vdin) < 0)    {      printf (" Error setColors \n");    }}/* we assume that struct videopict is initialized */unsigned short upbright( struct vdIn *vdin){ 		unsigned short bright =0;		bright = vdin->videopict.brightness;	if(( bright+0x200) < 0xffff){	bright += 0x200;	vdin->videopict.brightness = bright;	if (SetVideoPict (vdin) < 0)    		{      			printf (" Error setVideopict \n");			return 0;    		}		}	return bright;	}unsigned short downbright( struct vdIn *vdin){		unsigned short bright =0;		bright = vdin->videopict.brightness;	if(( bright-0x200) > 0){	bright -= 0x200;	vdin->videopict.brightness = bright;	if (SetVideoPict (vdin) < 0)    		{      			printf (" Error setVideopict \n");			return 0;    		}		}	return bright;	}unsigned short upcontrast( struct vdIn *vdin){		unsigned short contrast =0;		contrast = vdin->videopict.contrast;	if((contrast+0x200) < 0xffff){	contrast += 0x200;	vdin->videopict.contrast = contrast;	if (SetVideoPict (vdin) < 0)    		{      			printf (" Error setVideopict \n");			return 0;    		}		}	return contrast;}unsigned short downcontrast( struct vdIn *vdin){		unsigned short contrast =0;		contrast = vdin->videopict.contrast;	if( (contrast-0x200) > 0){	contrast -= 0x200;	vdin->videopict.contrast = contrast;	if (SetVideoPict (vdin) < 0)    		{      			printf (" Error setVideopict \n");			return 0;    		}		}	return contrast;	}voidqualityUp(struct vdIn *vdin){	struct video_param *videoparam= &vdin->videoparam;	int fd = vdin->fd;	unsigned char index = videoparam->quality;	index += 1;	spcaSetQuality(fd,videoparam,index);}voidqualityDown(struct vdIn *vdin){	struct video_param *videoparam= &vdin->videoparam;	int fd = vdin->fd;	unsigned char index = videoparam->quality;	if(index > 0) index--;	spcaSetQuality(fd,videoparam,index);}voidtimeUp(struct vdIn *vdin){	struct video_param *videoparam= &vdin->videoparam;	int fd = vdin->fd;	unsigned short index = videoparam->time_interval;	index+=10;	spcaSetTimeInterval(fd,videoparam,index);}voidtimeDown(struct vdIn *vdin){	struct video_param *videoparam= &vdin->videoparam;	int fd = vdin->fd;	unsigned short index = videoparam->time_interval;	if(index > 0) index -=10;	spcaSetTimeInterval(fd,videoparam,index);}voidspcaSetAutoExpo(struct vdIn *vdin){	struct video_param *videoparam= &vdin->videoparam;	int fd = vdin->fd;	videoparam->chg_para = CHGABRIGHT;	videoparam->autobright = !videoparam->autobright;	if(ioctl(fd,SPCASVIDIOPARAM, videoparam) == -1){		printf ("autobright error !!\n");	} else		spcaPrintParam (fd,videoparam);	}static void spcaPrintParam (int fd, struct video_param *videoparam){	if(ioctl(fd,SPCAGVIDIOPARAM, videoparam) == -1){		printf ("wrong spca5xx device\n");	} else 		printf("quality %d autoexpo %d Timeframe %d \n",			 videoparam->quality,videoparam->autobright,videoparam->time_interval);}static void spcaSetTimeInterval(int fd, struct video_param *videoparam, unsigned short time){	if (time < 1000) {	videoparam->chg_para = CHGTINTER;	videoparam->time_interval = time;	if(ioctl(fd,SPCASVIDIOPARAM, videoparam) == -1){		printf ("frame_times error !!\n");	} else		spcaPrintParam (fd,videoparam);	}}static void spcaSetQuality(int fd, struct video_param *videoparam, unsigned char index){	if (index < 6) {	videoparam->chg_para = CHGQUALITY;	videoparam->quality = index;	if(ioctl(fd,SPCASVIDIOPARAM, videoparam) == -1){		printf ("quality error !!\n");	} else		spcaPrintParam (fd,videoparam);	}}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线播放一区二区三区| 亚洲国产一区视频| 韩国一区二区在线观看| 欧美一级二级三级乱码| 日日摸夜夜添夜夜添精品视频| 欧美群妇大交群的观看方式| 日本美女视频一区二区| 精品国产一区二区精华 | 樱桃视频在线观看一区| 欧美无乱码久久久免费午夜一区| 午夜精品123| 欧美大片一区二区三区| 国产不卡视频一区| 亚洲精品国产成人久久av盗摄 | 国产成人一区在线| 国产精品每日更新在线播放网址| 91老师国产黑色丝袜在线| 亚洲成人精品一区| 久久一区二区视频| 91视频在线观看| 蜜臀久久99精品久久久久久9| 久久久久久久久99精品| 一本到不卡免费一区二区| 日本视频中文字幕一区二区三区| 久久久美女毛片| 欧美色大人视频| 国产一区二区精品在线观看| 亚洲美女视频在线| 欧美mv日韩mv国产| 色综合久久中文字幕| 另类的小说在线视频另类成人小视频在线 | 欧美日精品一区视频| 久久成人18免费观看| 亚洲婷婷综合色高清在线| 69久久99精品久久久久婷婷 | 欧美一区二区三区小说| av在线一区二区| 裸体健美xxxx欧美裸体表演| 日韩一区欧美小说| www欧美成人18+| 欧美高清www午色夜在线视频| 成人一级黄色片| 另类欧美日韩国产在线| 亚洲一级在线观看| 国产精品乱人伦中文| 精品国产亚洲在线| 欧美丰满嫩嫩电影| 一本大道久久a久久综合婷婷| 国内不卡的二区三区中文字幕| 一区二区三区国产| 国产精品九色蝌蚪自拍| 久久久久久麻豆| 日韩视频在线你懂得| 欧美三级日韩三级| 91网站最新地址| 国产经典欧美精品| 久久国产精品一区二区| 国产精品香蕉一区二区三区| 亚洲一级片在线观看| 最新热久久免费视频| 欧美国产日韩亚洲一区| 久久综合九色综合97婷婷| 91精品国产91久久综合桃花| 欧美日韩一级二级| 欧亚洲嫩模精品一区三区| 99久久99久久综合| 99久久免费视频.com| 成人午夜av在线| 成人va在线观看| 成人免费毛片片v| 成人免费看视频| av影院午夜一区| 91老司机福利 在线| 91视频com| 欧美一a一片一级一片| 色一区在线观看| 日本韩国一区二区| 91精品办公室少妇高潮对白| 在线观看一区二区精品视频| 91片黄在线观看| 色八戒一区二区三区| 在线一区二区三区四区| 91久久线看在观草草青青| 欧洲日韩一区二区三区| 欧美日韩一级二级三级| 欧美一区二区免费视频| 日韩写真欧美这视频| 精品久久99ma| 日本一区二区三级电影在线观看 | 国产成人在线观看免费网站| 风流少妇一区二区| 91麻豆免费视频| 欧美日韩精品一区二区天天拍小说 | 国产日韩欧美a| 国产精品久久久久久久裸模| 一卡二卡三卡日韩欧美| 日韩专区在线视频| 国产一区视频在线看| 成人免费观看视频| 欧亚洲嫩模精品一区三区| 欧美一区二区三区不卡| 久久理论电影网| 亚洲欧美区自拍先锋| 午夜免费欧美电影| 色婷婷激情久久| 欧美一区二区三级| 国产欧美日韩精品一区| 亚洲一区二区三区美女| 蜜桃av噜噜一区| 成人av在线观| 51精品久久久久久久蜜臀| 久久精品夜夜夜夜久久| 一区二区高清在线| 精品亚洲成a人| 一本大道久久a久久综合| 91精品午夜视频| 国产精品人人做人人爽人人添| 亚洲综合另类小说| 国产精品资源网站| 欧美日韩一卡二卡三卡| 国产亚洲综合av| 天堂av在线一区| 不卡电影一区二区三区| 日韩无一区二区| 亚洲男同1069视频| 韩国精品一区二区| 欧美精品在线观看播放| 国产精品伦一区| 精品一区二区综合| 欧美在线观看禁18| 国产精品视频yy9299一区| 日韩av一区二区在线影视| aa级大片欧美| 2023国产精华国产精品| 五月婷婷久久丁香| 91一区一区三区| 国产欧美一区二区三区在线看蜜臀 | 欧美色区777第一页| 国产精品网站在线观看| 久久丁香综合五月国产三级网站| 在线亚洲高清视频| 日韩毛片视频在线看| 国产精品自拍毛片| 精品美女一区二区| 日韩精品久久理论片| 日本韩国精品一区二区在线观看| 久久久国产精华| 捆绑调教一区二区三区| 欧美日韩国产高清一区| 亚洲精品成人精品456| 成人免费视频app| 国产午夜精品理论片a级大结局| 免费的国产精品| 91精品在线麻豆| 调教+趴+乳夹+国产+精品| 91美女片黄在线| 亚洲欧美影音先锋| 91在线视频网址| 国产精品久久777777| 成人免费av资源| 国产精品视频免费看| 成人免费的视频| 国产精品理伦片| 99久久精品免费观看| 亚洲欧洲无码一区二区三区| 成人av电影在线观看| 亚洲国产精品二十页| 丁香啪啪综合成人亚洲小说| 中文字幕国产一区二区| 欧美午夜不卡在线观看免费| 亚洲午夜电影在线观看| 欧美日韩在线电影| 日韩精品色哟哟| 精品免费国产二区三区| 国产专区欧美精品| 国产日韩欧美精品综合| www.亚洲激情.com| 亚洲男人电影天堂| 欧美狂野另类xxxxoooo| 久久国内精品自在自线400部| 精品奇米国产一区二区三区| 国内精品写真在线观看| 国产午夜精品美女毛片视频| av中文字幕一区| 亚洲一二三级电影| 日韩精品影音先锋| 福利一区在线观看| 亚洲欧美日韩国产一区二区三区| 欧美日韩视频专区在线播放| 免费看精品久久片| 国产欧美一区二区精品性色 | 亚洲一区二区三区爽爽爽爽爽| 欧美日韩国产综合一区二区| 美日韩一区二区| 亚洲国产岛国毛片在线| 91成人在线精品| 久久er精品视频| 中文字幕一区二区三中文字幕 | 欧美一区二区不卡视频| 国产老女人精品毛片久久|