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

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

?? cam2fb.c

?? ov511攝像頭的發送圖片到LCD上的小程序
?? 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_fp111111=====  %d\n\r",dev_fp);	return dev_fp;}static inline int fb_init(void){	int dev_fp = -1;	dev_fp = open("/dev/fb/0", O_RDWR);	if (dev_fp < 0) {		perror("/dev/fb/0");		return -1;	}	if ((fb = (char*)mmap(0, 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[]){	char rgb[640*480*4]; // MAX	unsigned int frames = 0;	struct timeval start_tv, end_tv;	struct timezone tz;	int width, height, bpp;	int src_img;	int i;	if (argc != 5) {		printf("%s <width> <height> <bpp> <src_image> \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]);	if ((bpp!=16) && (bpp!=32)) {		printf("BPP must be 16 or 32\n");		return 0;	}#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	src_img = atoi(argv[4]);//	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 1	if ((fb_fp = fb_init()) < 0)		goto err;#endif	printf("cam2fb: %dx%d %dbpp, use %s\n", 			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);	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#if 0	clear(fb);#endif#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);#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);	if (fb_fp)		close(fb_fp);#endif	return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久久久久电影| 色婷婷国产精品| 日本在线不卡一区| 午夜视频在线观看一区| 亚洲黄色性网站| 亚洲一区二区高清| 亚洲主播在线播放| 亚洲小说春色综合另类电影| 亚洲综合一二区| 亚洲18色成人| 日本麻豆一区二区三区视频| 另类的小说在线视频另类成人小视频在线| 亚洲综合精品自拍| 日韩成人午夜精品| 国产一区二区精品久久99| 国产精品一二二区| 成人av电影在线网| 91网站在线观看视频| 色哟哟国产精品| 911国产精品| 久久久av毛片精品| 中文字幕一区二区不卡| 亚洲综合精品久久| 青青草精品视频| 国产sm精品调教视频网站| 99久久综合国产精品| 欧美日韩在线精品一区二区三区激情| 欧美女孩性生活视频| 国产亚洲女人久久久久毛片| 亚洲视频 欧洲视频| 天堂资源在线中文精品| 国产制服丝袜一区| 色综合久久66| 欧美大片一区二区| 亚洲视频狠狠干| 久久精品国产在热久久| 91视频在线观看| 日韩午夜激情电影| 亚洲天堂网中文字| 精一区二区三区| 欧美丝袜第三区| 国产精品女人毛片| 久久精品国内一区二区三区| 色噜噜久久综合| 337p日本欧洲亚洲大胆精品| 亚洲一区二区三区影院| 国产成人亚洲综合a∨婷婷| 欧美写真视频网站| 国产精品国产三级国产aⅴ原创 | 在线观看国产精品网站| 制服丝袜在线91| 亚洲日本成人在线观看| 狠狠狠色丁香婷婷综合激情| 欧美日韩免费视频| 亚洲视频小说图片| 国产成人综合视频| 精品免费一区二区三区| 日韩精品福利网| 欧美亚洲国产bt| 夜夜亚洲天天久久| 成人久久视频在线观看| 精品少妇一区二区三区| 五月激情综合网| 欧美综合在线视频| 夜夜精品浪潮av一区二区三区| 成人动漫av在线| 中文字幕精品在线不卡| 国产成人综合在线| 中文一区在线播放| 国产成人免费视频| 亚洲国产精品成人综合| 国产成人在线网站| 国产精品乱人伦一区二区| 国产精品自拍一区| 欧美激情资源网| av影院午夜一区| 亚洲色图制服诱惑| 欧洲亚洲国产日韩| 亚洲色图都市小说| 色综合中文字幕| 亚洲综合在线视频| 91精品国产手机| 激情av综合网| 国产免费久久精品| av资源网一区| 亚洲日本在线看| 欧美色国产精品| 久久福利视频一区二区| 国产视频一区在线播放| 国产1区2区3区精品美女| 国产精品福利在线播放| 欧美亚洲综合久久| 麻豆精品在线看| 久久精品水蜜桃av综合天堂| 菠萝蜜视频在线观看一区| 一区二区三区久久| 欧美一级在线视频| 成人激情免费视频| 一区二区三区欧美| 日韩欧美的一区二区| 成人激情开心网| 首页国产欧美日韩丝袜| 久久久精品天堂| 欧美色图激情小说| 国产麻豆精品theporn| 亚洲色图在线播放| 日韩一区二区三区电影在线观看| 国产乱子伦视频一区二区三区| 综合分类小说区另类春色亚洲小说欧美| 欧美影视一区二区三区| 国产在线精品一区二区| 亚洲卡通欧美制服中文| 精品1区2区在线观看| 日本电影亚洲天堂一区| 精品一区二区三区的国产在线播放 | 色综合色综合色综合色综合色综合| 亚洲免费观看在线观看| 日韩午夜av一区| 97久久人人超碰| 激情国产一区二区| 亚洲国产精品一区二区www在线 | 91在线无精精品入口| 美女视频第一区二区三区免费观看网站| 欧美国产精品中文字幕| 欧美一区二区三区色| 色婷婷激情一区二区三区| 国产一区二区福利| 男女男精品视频网| 亚洲午夜一二三区视频| 亚洲欧洲av一区二区三区久久| 日韩欧美黄色影院| 欧美精品久久一区二区三区| 91丨porny丨中文| 国产激情视频一区二区在线观看 | 国产精品久久久久久久久果冻传媒 | 午夜欧美在线一二页| 亚洲欧美日本在线| 欧美韩国一区二区| 亚洲精品一区在线观看| 日韩午夜小视频| 欧美一区二区女人| 91麻豆精品国产91久久久久久久久| 色综合久久久久综合99| av电影一区二区| 成人午夜av影视| 丁香五精品蜜臀久久久久99网站| 国产精品中文字幕日韩精品| 久久99精品国产麻豆不卡| 九九视频精品免费| 国产老女人精品毛片久久| 韩日av一区二区| 国内精品在线播放| 国产一区二区三区电影在线观看 | av亚洲精华国产精华| 懂色av一区二区在线播放| 国产一二精品视频| 国产麻豆精品一区二区| 国产福利一区二区三区视频| 国产精品996| 成人aaaa免费全部观看| 一本大道久久a久久精品综合| 一本色道亚洲精品aⅴ| 91蝌蚪porny| 欧美日韩成人激情| 欧美日韩亚洲高清一区二区| 欧美精品tushy高清| 日韩欧美国产一二三区| 久久青草欧美一区二区三区| 国产精品日韩成人| 亚洲欧美激情插| 日韩不卡一区二区三区| 精久久久久久久久久久| av亚洲精华国产精华| 欧美午夜精品一区| 精品国内片67194| 国产精品久久久久久亚洲伦| 一区二区三区在线播放| 日本人妖一区二区| 成人免费看的视频| 欧美日韩黄色影视| 精品国产成人在线影院 | 欧美天堂亚洲电影院在线播放 | 激情成人午夜视频| 色婷婷久久一区二区三区麻豆| 欧美一区二区成人| 国产精品视频你懂的| 亚洲6080在线| 国产suv精品一区二区6| 欧美日韩大陆在线| 国产精品久久久久久久久久久免费看 | 99久久免费精品| 欧美精品久久天天躁| 欧美国产精品中文字幕| 无码av免费一区二区三区试看 | 五月天久久比比资源色| 成人av综合在线| 日韩丝袜美女视频| 亚洲免费av网站| 国产凹凸在线观看一区二区| 91麻豆精品国产91久久久久久 |