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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? spcav4l.c

?? serverfox驅動的代碼,對服務器/客戶端模式感興趣的可以看看!
?? C
?? 第 1 頁 / 共 3 頁
字號:
  if (vd->formatIn != vd->videopict.palette ||      vd->bppIn != vd->videopict.depth)    exit_fatal ("could't set video palette Abort !");  if (erreur < 0)    exit_fatal ("could't set video palette Abort !");  if (vd->grabMethod)    {      if(debug) printf (" grabbing method default MMAP asked \n");      // MMAP VIDEO acquisition      memset (&(vd->videombuf), 0, sizeof (vd->videombuf));      if (ioctl (vd->fd, VIDIOCGMBUF, &(vd->videombuf)) < 0)	{	  perror (" init VIDIOCGMBUF FAILED\n");	}      if(debug) printf ("VIDIOCGMBUF size %d  frames %d  offets[0]=%d offsets[1]=%d\n",	      vd->videombuf.size, vd->videombuf.frames,	      vd->videombuf.offsets[0], vd->videombuf.offsets[1]);      vd->pFramebuffer =	(unsigned char *) mmap (0, vd->videombuf.size, PROT_READ | PROT_WRITE,				MAP_SHARED, vd->fd, 0);      vd->mmapsize = vd->videombuf.size;      vd->vmmap.height = vd->hdrheight;      vd->vmmap.width = vd->hdrwidth;      vd->vmmap.format = vd->formatIn;      for (f = 0; f < vd->videombuf.frames; f++)	{	  vd->vmmap.frame = f;	  if (ioctl (vd->fd, VIDIOCMCAPTURE, &(vd->vmmap)))	    {	      perror ("cmcapture");	    }	}      vd->vmmap.frame = 0;    }  else    {      /* read method */      /* allocate the read buffer */      vd->pFramebuffer =	(unsigned char *) realloc (vd->pFramebuffer, (size_t) vd->framesizeIn);      if(debug) printf (" grabbing method READ asked \n");      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");      if(debug) printf ("VIDIOCSWIN height %d  width %d \n",	      vd->videowin.height, vd->videowin.width);    }  vd->frame_cour = 0;  return erreur;}#if 0staticint probePalette ( struct vdIn *vd ){	/* probe palette and set a default one for unknow cams*/	int pal[] ={VIDEO_PALETTE_JPEG,VIDEO_PALETTE_YUV420P,VIDEO_PALETTE_RGB24,VIDEO_PALETTE_RGB565,VIDEO_PALETTE_RGB32};	struct video_picture pict;	int masq = 0x1;	int i;	int availpal = 0;	int defaut = 1;	/* initialize the internal struct */	if (ioctl (vd->fd, VIDIOCGPICT, &pict) < 0)    		{      		perror ("Couldnt get videopict params with VIDIOCGPICT\n");      		return -1;   		 }	/* try each palette we have we skip raw_jpeg */	for(i = 0; i < 5 ; i++){	pict.palette = pal[i];	/* maybe correct the bug on qca driver depth always 24 ? */		pict.depth = GetDepth (pal[i]);	if(debug) printf("try palette %d depth %d\n",pict.palette,pict.depth);	if (ioctl (vd->fd, VIDIOCSPICT, &pict) < 0)    		{      		if(debug) printf("Couldnt set palette first try %d \n", pal[i]);          		}	if (ioctl (vd->fd, VIDIOCGPICT, &pict) < 0)    		{      		if(debug) printf("Couldnt get palette %d \n", pal[i]);          		}	if (pict.palette != pal[i]){		if(debug) printf("Damned second try fail \n");			} else {		availpal = availpal | masq ;		if(debug) printf("Available  palette %d \n", pal[i]);		if (defaut){		 defaut = 0;		 //vd->formatIn = pal[i];		// vd->bppIn = GetDepth (pal[i]);		}		}			masq = masq << 1;	}	vd->palette = availpal;	//should set default palette here ? return 1;	}staticint probeSize ( struct vdIn *vd ){	/* probe size and set a default one for unknow cams */	int size[] = { 640,480,384,288,352,288,320,240,192,144,176,144,160,120 };	struct video_window win;	int maxw,minw,maxh,minh;	int masq = 0x1;	int i = 0;	int defaut = 1 ;	/* initialize de parameters */	maxw = vd->videocap.maxwidth;	minw = vd->videocap.minwidth;	maxh = vd->videocap.maxheight;	minh = vd->videocap.minheight;	if(debug) printf("probe size in \n");	while (size[i] > maxw){	if(debug) printf("skip size %d x %d\n",size[i],size[i+1]);		i += 2;		masq = masq << 1;		if (i > 13) break;	}	/* initialize the internal struct */	 if (ioctl (vd->fd, VIDIOCGWIN, &win) < 0) {		perror ("VIDIOCGWIN failed \n");		return -1;		}	/* now i is on the first possible width */	while ((size[i] >= minw) && i < 13) {	win.width = size[i];	win.height = size[i+1];	if (ioctl (vd->fd, VIDIOCSWIN, &win) < 0) {      		if(debug) printf ("VIDIOCSWIN reject width %d  height %d \n",	      		win.width, win.height);	          	} else {	vd->sizeothers = vd->sizeothers | masq;	 if(debug) printf ("Available Resolutions width %d  heigth %d \n",	 		win.width, win.height);	if (defaut)		{		 // vd->hdrwidth = win.width;		 // vd->hdrheight = win.height;		  defaut = 0;		}	}	masq = masq << 1 ;	i += 2;	}	return 1;	}#endifintchangeSize (struct vdIn *vd){  int erreur;  erreur = GetVideoPict (vd);  vd->formatIn = vd->videopict.palette;  vd->bppIn = vd->videopict.depth;  /* To Compute the estimate frame size perhaps not need !!! */  if ((vd->bppIn = GetDepth (vd->formatIn)) < 0)    {      perror ("getdepth  failed \n");      exit (1);    }  if (vd->grabMethod)    {      vd->vmmap.height = vd->hdrheight;      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");      if(debug) printf ("VIDIOCGWIN height %d  width %d \n",	      vd->videowin.height, vd->videowin.width);    }  vd->framesizeIn = ((vd->hdrwidth * vd->hdrheight * vd->bppIn) >> 3);return 0;}#if 0/* 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 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){		if(debug) 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 {	    if(debug) 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){	if(debug) 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){

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合五月天婷婷伊人| 欧美日韩一区二区在线视频| 日韩电影一区二区三区| 亚洲成人1区2区| 婷婷综合五月天| 蜜臀久久99精品久久久久久9| 亚洲成人免费在线| 麻豆精品在线视频| 韩国精品在线观看| 北岛玲一区二区三区四区| 99久久精品国产导航| 91天堂素人约啪| 欧美日本在线看| 欧美mv日韩mv国产网站app| 日韩三级视频在线看| 久久先锋影音av鲁色资源网| 亚洲国产高清aⅴ视频| 亚洲免费av高清| 日本不卡的三区四区五区| 国产在线观看免费一区| 成人福利电影精品一区二区在线观看| 93久久精品日日躁夜夜躁欧美| 91看片淫黄大片一级在线观看| 欧美午夜精品久久久久久孕妇| 欧美日韩中文字幕精品| 欧美变态tickling挠脚心| 国产蜜臀av在线一区二区三区| 国产精品久久久久影视| 亚洲成人高清在线| 国产精品亚洲一区二区三区在线| 成人av资源站| 欧美一区日韩一区| 成人免费一区二区三区在线观看| 亚洲午夜成aⅴ人片| 国产综合色精品一区二区三区| 91麻豆swag| 337p日本欧洲亚洲大胆精品 | 欧美日韩久久久一区| 精品日韩在线观看| 亚洲免费高清视频在线| 精品一区二区综合| 91久久久免费一区二区| 日韩欧美在线综合网| 亚洲精品视频自拍| 国产成人一区在线| 欧美日韩国产bt| 国产精品三级av| 精品一区二区免费视频| 91黄视频在线| 综合久久一区二区三区| 国产资源在线一区| 欧美日韩国产综合视频在线观看 | 欧美日韩午夜在线视频| 欧美mv日韩mv亚洲| 天天综合天天做天天综合| 99久久精品国产麻豆演员表| 久久综合一区二区| 美女脱光内衣内裤视频久久网站| 在线影院国内精品| 中文字幕综合网| 高清不卡在线观看| 久久精品亚洲国产奇米99| 日韩精品一级二级| 欧美午夜片在线看| 亚洲午夜激情av| 精品视频一区二区三区免费| 亚洲天堂av一区| av电影在线不卡| 国产精品久久久久久久裸模| 国产一级精品在线| 精品国产1区二区| 国产曰批免费观看久久久| 欧美白人最猛性xxxxx69交| 日韩高清在线一区| 日韩精品一区二区三区蜜臀| 日韩—二三区免费观看av| 欧美精品一级二级三级| 亚洲成av人影院在线观看网| 欧美日韩国产影片| 婷婷综合久久一区二区三区| 777奇米成人网| 蜜臀精品一区二区三区在线观看| 欧美精品99久久久**| 蜜臀va亚洲va欧美va天堂| 久久久蜜桃精品| 国产高清在线精品| 亚洲另类春色校园小说| 欧美性色黄大片手机版| 婷婷综合久久一区二区三区| 56国语精品自产拍在线观看| 久久国产精品免费| 国产日产欧美精品一区二区三区| 成人高清视频在线| 亚洲成人动漫一区| 精品成人一区二区三区四区| 国产成人a级片| 亚洲综合视频在线观看| 欧美精品第1页| 国产精一区二区三区| 最新国产成人在线观看| 欧美日韩亚洲综合一区| 国精产品一区一区三区mba视频 | 亚洲电影视频在线| 日韩小视频在线观看专区| 成人手机在线视频| 亚洲最新视频在线观看| 欧美一区二区三区在线| 波多野结衣中文字幕一区二区三区| 最新成人av在线| 精品人伦一区二区色婷婷| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 亚洲一区二区三区三| 精品蜜桃在线看| 色婷婷狠狠综合| 国产一区二区三区日韩| 亚洲精品第1页| 久久综合九色综合欧美就去吻| 色视频欧美一区二区三区| 麻豆成人91精品二区三区| 亚洲天堂av老司机| 久久午夜羞羞影院免费观看| 欧美日韩国产综合一区二区三区| 国产大片一区二区| 久久国产精品99久久久久久老狼 | 亚洲免费资源在线播放| 精品国产亚洲一区二区三区在线观看| 91亚洲永久精品| 韩国成人在线视频| 日韩不卡免费视频| 玉足女爽爽91| 日韩美女视频19| 欧美激情一二三区| 国产网红主播福利一区二区| 欧美高清www午色夜在线视频| 色综合久久综合网| 99视频超级精品| 国产福利一区二区三区在线视频| 日本欧美肥老太交大片| 亚洲一区二区av在线| 亚洲另类在线一区| 中文字幕一区二区三区不卡在线| 久久亚洲综合av| 26uuu成人网一区二区三区| 欧美二区三区91| 在线播放亚洲一区| 欧美日韩国产色站一区二区三区| 91麻豆产精品久久久久久| 成人av电影在线| 成人丝袜高跟foot| 99精品视频一区| 91同城在线观看| 日本丰满少妇一区二区三区| 欧美色国产精品| 欧美二区在线观看| 欧美变态tickling挠脚心| 精品国产成人系列| 欧美韩国日本综合| 国产精品女主播在线观看| 中文字幕一区视频| 亚洲一卡二卡三卡四卡无卡久久| 亚洲精品日产精品乱码不卡| 亚洲一区二区三区小说| 亚洲成人av在线电影| 久久不见久久见中文字幕免费| 美女视频黄a大片欧美| 国产高清精品网站| 色综合天天综合| 欧美日韩高清一区二区三区| 日韩一区二区三区免费观看| 久久精品综合网| 一区二区成人在线| 日本麻豆一区二区三区视频| 激情欧美一区二区三区在线观看| 国产成人在线看| 欧美午夜精品一区二区蜜桃| 日韩三级电影网址| 成人免费在线视频观看| 亚洲成人午夜影院| 国产精品系列在线观看| 色88888久久久久久影院按摩| 在线播放国产精品二区一二区四区| 精品国产sm最大网站| 中文字幕在线视频一区| 午夜精品福利视频网站| 国产高清在线精品| 欧美无砖专区一中文字| 久久精品视频一区二区| 亚洲国产精品一区二区www| 久久国产精品色| 在线观看av不卡| 国产校园另类小说区| 天天综合色天天| 成人午夜在线播放| 91精品国产黑色紧身裤美女| 国产精品乱人伦中文| 另类小说图片综合网| 91成人在线精品| 欧美极品少妇xxxxⅹ高跟鞋| 免费观看在线综合色| 91麻豆.com|