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

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

?? cam2fb.c

?? 一個攝像頭Framebuffer應用程序在ARM平臺上的移植
?? C
字號:
/* * CAMIF test * * bushi@mizi.com * * $Id: cam2fb.c,v 1.1.1.1 2004/01/20 10:29:10 laputa Exp $ * */#include <stdio.h>#include <string.h>#include <stdlib.h>#include <fcntl.h>#include <unistd.h>#include <ctype.h>#include <errno.h>#include <sys/mman.h>#include <sys/time.h>#include <sys/ioctl.h>/* * must be  *   CAM_WIDTH  == FB_WIDTH *   CAM_HEIGHT <= FB_HEIGHT */#define CAM_WIDTH 240#define CAM_HEIGHT 180#define FB_WIDTH 240#define FB_HEIGHT 320/* kernel stuff */#define CAMIF_TYPE_RGB16 0#define CAMIF_TYPE_RGB32 1#define CAMIF_TYPE_YUV420 2/*static struct s3c2440_camif_cfg_param {	int img;	//source image type into the camera interface			// 0 for SXGA, 1 for VGA, 2 for QVGA	int dst_x;	int dst_y;} camif_cfg;*/typedef unsigned short __u16;struct video_picture{        __u16   brightness;        __u16   hue;        __u16   colour;        __u16   contrast;        __u16   whiteness;      /* Black and white only */        __u16   depth;          /* Capture depth */        __u16   palette;        /* Palette in use */#define VIDEO_PALETTE_GREY      1       /* Linear greyscale */#define VIDEO_PALETTE_HI240     2       /* High 240 cube (BT848) */#define VIDEO_PALETTE_RGB565    3       /* 565 16 bit RGB */#define VIDEO_PALETTE_RGB24     4       /* 24bit RGB */#define VIDEO_PALETTE_RGB32     5       /* 32bit RGB */#define VIDEO_PALETTE_RGB555    6       /* 555 15bit RGB */#define VIDEO_PALETTE_YUV422    7       /* YUV422 capture */#define VIDEO_PALETTE_YUYV      8#define VIDEO_PALETTE_UYVY      9       /* The great thing about standards is*/#define VIDEO_PALETTE_YUV420    10#define VIDEO_PALETTE_YUV411    11      /* YUV411 capture */#define VIDEO_PALETTE_RAW       12      /* RAW capture (BT848) */#define VIDEO_PALETTE_YUV422P   13      /* YUV 4:2:2 Planar */#define VIDEO_PALETTE_YUV411P   14      /* YUV 4:1:1 Planar */#define VIDEO_PALETTE_YUV420P   15      /* YUV 4:2:0 Planar */#define VIDEO_PALETTE_YUV410P   16      /* YUV 4:1:0 Planar */#define VIDEO_PALETTE_PLANAR    13      /* start of planar entries */#define VIDEO_PALETTE_COMPONENT 7       /* start of component entries */}camif_cfg;/****************/static int cam_fp = -1;static int fb_fp = -1;static char *fb = NULL;static inline int cam_init(void){	int dev_fp = -1;	//dev_fp = open("/dev/misc/cam", O_RDWR);	dev_fp  = open("/dev/video0",O_RDWR);	if (dev_fp < 0) {		perror("/dev/video0");		return -1;	}	printf("cam_fp = %d\n\r",dev_fp);	return dev_fp;}static inline int fb_init(void){	int dev_fp = -1;	dev_fp = open("/mnt/fb", O_RDWR|O_CREAT);	if (dev_fp < 0) {		perror("/mnt/fb");		return -1;	}/*if ((fb = (char*)mmap(NULL, FB_WIDTH*FB_HEIGHT*2, 			PROT_READ | PROT_WRITE, MAP_SHARED, dev_fp, 0)) < 0) 	{		  perror("mmap()");		  return -1;	}*/	return dev_fp;}static inline void start_capture(int fp){	char c;	write(fp, &c, 1);}static inline int read_data(int fp, char *buf, int width, int height, int bpp){	int ret;	if ((ret = read(fp, buf, width*height*bpp/8)) != width*height*bpp/8)	{		return 0;	}	return ret;}static inline void clear(char *dest){#ifdef FB_IMG_BPP	memcpy(dest, &img_data[0], FB_WIDTH*FB_HEIGHT*2);#else	memset(dest, 0, FB_WIDTH*FB_HEIGHT*2);#endif}#define MAX(x,y) ((x)>(y)?(x):(y))#define MIN(x,y) ((x)>(y)?(y):(x))static inline void draw(char *dest, char *src, int width, int height, int bpp		,int src_offset_x, int src_offset_y){	int x,y;	unsigned short *rgb16; 	unsigned long *rgb32;	unsigned long offset_x = 0;	unsigned long offset_y = 0;	int end_y = MIN(FB_HEIGHT, height - src_offset_y);	int end_x = MIN(FB_WIDTH, width - src_offset_x);	offset_x = src_offset_x * bpp/8;	offset_y = src_offset_y * width * bpp/8;	src += offset_y;	if (bpp==16) {		for (y=0;y<end_y;y++)			memcpy(dest+y*FB_WIDTH*2, src+y*width*2+offset_x, end_x*2);	} else {		for (y=0; y<end_y;y++) {			rgb32 = (unsigned long*)(src + y * width * 4 + offset_x);			rgb16 = (unsigned short*)(dest + y * FB_WIDTH * 2);			for (x=0;x<end_x;x++) {				*rgb16 = ((((*(rgb32)>>16)&0xff) >> 3) << 11) // red						| ((((*(rgb32)>>8)&0xff) >> 2) << 5)  // green						| ((((*(rgb32)>>0)&0xff) >> 3) << 0) ; // blue				rgb32 ++;				rgb16 ++;			}		}	}}static inline void print_fps(struct timeval *s, struct timeval *e){	unsigned long time;	unsigned long sec;	unsigned long usec;	int fps = 0;	sec = e->tv_sec - s->tv_sec;	if (e->tv_usec > s->tv_usec)		usec = e->tv_usec - s->tv_usec;	else {		usec = e->tv_usec + 1000000 - s->tv_usec;			sec--;	}	time = sec * 1000 + (usec+1) / 1000;	fps = 1000 / (time / 30);	printf("%d fps\n", fps);}int main(int argc, char *argv[]){	unsigned char * rgb; 	unsigned int frames = 0;	struct timeval start_tv, end_tv;	struct timezone tz;	int width, height, bpp;	int src_img;	int i;    	if (argc != 4) {		printf("%s <width> <height> <bpp> \n", argv[0]);		return 0;	}//	camif_cfg.dst_y = width = atoi(argv[1]);//	camif_cfg.dst_x = height = atoi(argv[2]);	width = atoi(argv[1]);	height = atoi(argv[2]);	bpp = atoi(argv[3]);	rgb = (unsigned char *)malloc(width*height*bpp/8);/*#if 0							//only support RGB16	if (bpp==16)		camif_cfg.dst_type = CAMIF_TYPE_RGB16;	else		camif_cfg.dst_type = CAMIF_TYPE_RGB32;	//not support yet#endif	camif_cfg.img = src_img;*/	if(cam_fp) close(cam_fp);	if(fb_fp) close(fb_fp);	if ((cam_fp = cam_init()) < 0)		 goto err;	if ((fb_fp = fb_init()) < 0)		 goto err;	printf("cam2fb: %dx%d %dbpp", width, height, bpp);/*	printf("displayed window: left-top (%d,%d), width(%d), height(%d)\n", 			x_offset, y_offset, 			MIN(FB_WIDTH, width-x_offset),			MIN(FB_HEIGHT, height-y_offset));*/	fflush(stdout);	sleep(1);//	while(1);#if 0	printf("camera cam_fp    %d\n\r",cam_fp);	printf("%0x\n\r",(('v')<<8)|1);	if (ioctl(cam_fp, ((('v')<<8)|7), &camif_cfg)) 	{		perror("ioctl");		goto err;	}	printf("%s\n\r",&camif_cfg);#endif  clear(fb);#if 1	//gettimeofday(&start_tv, &tz);#if 0	start_capture(cam_fp);#endif//	while (1) //  {//		if (!read_data(cam_fp, &rgb[0], width, height, bpp))//    memset(rgb, 0, width*height*2);		  i=read_data(cam_fp, rgb, width, height, bpp);//	  break;#if 0		start_capture(cam_fp);#endif	#if 1//	  for(i=0;i<240*320*2;i++)//	  rgb[i]=0xFF;//	  draw(fb, &rgb[0], width, height, bpp, 0, 0);      write(fb_fp, rgb, width*height*bpp/8);#endif//	  frames ++;				  /*if ((frames % 30) == 0) 		    {			     gettimeofday(&end_tv, &tz);			     print_fps(&start_tv, &end_tv);			     gettimeofday(&start_tv, &tz);		    }*///	}#endiferr:	   if (cam_fp)		   close(cam_fp);#if 0	if (fb)		munmap(fb, FB_WIDTH*FB_HEIGHT*2);#endif	if (fb_fp)		close(fb_fp);  free(rgb);	return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99精品久久久久婷婷| 国产精品污www在线观看| 亚洲一区二区在线播放相泽| 99精品视频一区二区三区| 国产精品午夜在线观看| 成人短视频下载 | 91精品国模一区二区三区| 精品少妇一区二区三区在线播放 | 中文字幕的久久| 成人av综合在线| 亚洲欧美国产高清| 欧美日韩一区不卡| 日本网站在线观看一区二区三区| 日韩小视频在线观看专区| 国产最新精品免费| 国产精品短视频| 欧美日韩中文国产| 精品一区二区在线看| 国产精品私房写真福利视频| 日韩欧美成人一区二区| 国内一区二区视频| 国产精品久久久久四虎| 欧美日韩一级片在线观看| 精品一区二区三区在线观看国产| 国产亚洲va综合人人澡精品| 色狠狠一区二区三区香蕉| 调教+趴+乳夹+国产+精品| 精品国产一区二区精华| 色偷偷一区二区三区| 麻豆免费看一区二区三区| 中文字幕第一区综合| 欧美日韩高清影院| 成人午夜av电影| 天天综合天天综合色| 国产欧美一区二区精品婷婷| 在线免费观看日韩欧美| 精品一区二区三区免费观看| 亚洲天堂久久久久久久| 日韩欧美色电影| 91麻豆免费视频| 极品少妇xxxx精品少妇| 亚洲高清视频的网址| 国产午夜精品福利| 欧美理论电影在线| 成人高清在线视频| 国内精品免费在线观看| 亚洲国产欧美一区二区三区丁香婷| 欧美成人福利视频| 色94色欧美sute亚洲线路二 | 亚洲日本中文字幕区| 日韩午夜中文字幕| 在线亚洲高清视频| 国产成人免费在线观看| 美女性感视频久久| 亚洲午夜羞羞片| 中文字幕一区在线观看| 久久蜜桃av一区二区天堂| 欧美军同video69gay| 一本一道波多野结衣一区二区| 蜜桃精品在线观看| 污片在线观看一区二区| 亚洲女子a中天字幕| 日本一区免费视频| 久久久亚洲欧洲日产国码αv| 欧美夫妻性生活| 精品视频一区二区不卡| 色94色欧美sute亚洲线路一久 | 婷婷丁香激情综合| 亚洲成a人在线观看| 亚洲蜜臀av乱码久久精品蜜桃| 国产午夜精品一区二区| 久久精品欧美日韩| 久久久久99精品国产片| 欧美精品一区男女天堂| 日韩西西人体444www| 91麻豆精品91久久久久久清纯| 欧美日韩一区二区在线视频| 日本韩国欧美在线| 在线视频亚洲一区| 日本国产一区二区| 在线精品亚洲一区二区不卡| 一本久道久久综合中文字幕| 97se亚洲国产综合自在线| 97久久精品人人做人人爽| av成人免费在线观看| 337p亚洲精品色噜噜| 7799精品视频| 欧美一卡二卡在线观看| 欧美变态口味重另类| 精品国精品国产| 久久久电影一区二区三区| 久久久久国产成人精品亚洲午夜| 久久亚洲精品小早川怜子| 国产日韩欧美精品综合| 国产精品久久久久久亚洲毛片| 成人免费一区二区三区在线观看| 亚洲视频一区在线| 亚洲福利一区二区三区| 奇米在线7777在线精品 | 亚洲男同1069视频| 亚洲一卡二卡三卡四卡| 日韩精彩视频在线观看| 精品夜夜嗨av一区二区三区| 国产高清精品在线| 91搞黄在线观看| 91精品国产综合久久久久久漫画 | 一个色在线综合| 日韩有码一区二区三区| 国产原创一区二区三区| 波多野结衣亚洲一区| 欧美日韩一区二区三区免费看| 91精品国产综合久久精品app| 欧美精品一区在线观看| 亚洲丝袜另类动漫二区| 人人狠狠综合久久亚洲| 成人免费视频一区二区| 欧美性色综合网| 久久免费的精品国产v∧| 亚洲欧美国产77777| 美日韩一区二区三区| av中文字幕不卡| 日韩欧美不卡在线观看视频| 国产精品久久久久久久岛一牛影视| 亚洲一区二区精品视频| 国产精品996| 欧美日韩国产天堂| 欧美国产1区2区| 丝袜国产日韩另类美女| 成人在线一区二区三区| 这里只有精品免费| 中文字幕一区二区三区在线播放 | 久久精品国产77777蜜臀| 97aⅴ精品视频一二三区| 日韩女优av电影| 亚洲自拍欧美精品| 国产成人精品午夜视频免费| 欧美亚洲动漫精品| 国产精品水嫩水嫩| 久久精品国产成人一区二区三区 | 在线国产电影不卡| 国产日韩成人精品| 美女诱惑一区二区| 在线观看av一区| 中文字幕在线一区| 国内成+人亚洲+欧美+综合在线| 欧美午夜一区二区三区| 国产精品久久午夜夜伦鲁鲁| 精品在线亚洲视频| 67194成人在线观看| 亚洲尤物视频在线| 一本一本大道香蕉久在线精品 | 91视频国产资源| 久久久.com| 奇米一区二区三区| 欧美理论片在线| 亚洲第一成年网| 在线日韩国产精品| 亚洲精品写真福利| 91日韩在线专区| 国产精品不卡视频| www.成人在线| 国产精品国模大尺度视频| 国产ts人妖一区二区| www国产精品av| 一本色道久久加勒比精品| 国产精品区一区二区三| 风间由美中文字幕在线看视频国产欧美| 欧美一区午夜视频在线观看| 午夜免费久久看| 欧美日韩一级片在线观看| 亚洲va天堂va国产va久| 精品视频123区在线观看| 亚洲高清不卡在线| 欧美高清性hdvideosex| 日韩影院免费视频| 欧美成人欧美edvon| 久久99精品国产.久久久久| 精品福利在线导航| 国产成人综合自拍| 国产精品女人毛片| 91久久精品一区二区三区| 一区二区三区中文在线观看| 色先锋aa成人| 五月婷婷综合激情| 欧美tickle裸体挠脚心vk| 国产精品一区专区| 国产三级久久久| 91在线观看污| 亚洲成人激情社区| 日韩欧美www| 成人av在线看| 亚洲v精品v日韩v欧美v专区| 欧美一区二区三区思思人| 国产一区二区三区免费看 | 婷婷丁香久久五月婷婷| 日韩欧美国产一二三区| 国产不卡在线视频| 亚洲人亚洲人成电影网站色| 欧美人与禽zozo性伦| 国内外精品视频|