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

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

?? init_vid1.c

?? TI dm6446 video subsytem window blending programme
?? C
字號:
#include <errno.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <fcntl.h>#include <unistd.h>#include <string.h>#include <sys/ioctl.h>#include <sys/mman.h>#include <asm/page.h>#include <linux/fb.h>#include <time.h>#include <sys/time.h>#include "davinci_fb.h"#undef DBG//#define DBG(x,...)#define DBG printf//#define VID1_ZOOM 1#undef VID1_ZOOM#define NUM_BUFS 3/* Scaling factors for the video standards */#define PAL             12#define NTSC            10#define UYVY_BLACK          0x10801080/* Custom Davinci FBDEV defines */#define VID0_INDEX 0#define VID1_INDEX 1#define ZOOM_1X    0#define ZOOM_2X    1#define ZOOM_4X    2#if defined(VID1_ZOOM)#define ZOOM_XFAC ZOOM_2X#define ZOOM_YFAC ZOOM_2Xstatic int p_X0 = 100, p_Y0 = 50;#else#define ZOOM_XFAC ZOOM_1X#define ZOOM_YFAC ZOOM_1Xstatic int p_X0 = 0, p_Y0 = 0;#endif#define SCREEN_BPP          16#ifdef SVIDEO_OUTPUT#  define D1_WIDTH            720#  define D1_HEIGHT           480#else#  define D1_WIDTH            800#  define D1_HEIGHT           600#endif#define D1_LINE_WIDTH       (D1_WIDTH * SCREEN_BPP / 8)#define D1_FRAME_SIZE       (D1_LINE_WIDTH * D1_HEIGHT)static int yfactor = 1;static struct Zoom_Params zoom;/****************************************************************************** * initDisplayDevice ******************************************************************************/static int initDisplayDevice(char *displays[]){    struct fb_var_screeninfo varInfo;    unsigned int            *buf;    int                      fd;    int                      i;    int                      std;    fd = open(FBVID1_DEVICE, O_RDWR);    if (fd == -1) {        ERR("Failed to open fb device %s (%s)\n", FBVID1_DEVICE,			strerror(errno));        return FAILURE;    }    if (ioctl(fd, FBIOGET_VSCREENINFO, &varInfo) == -1) {        ERR("Failed FBIOGET_VSCREENINFO on %s (%s)\n", FBVID1_DEVICE,			strerror(errno));        return FAILURE;    }#if 0    if (ioctl(fd, FBIO_GETSTD, &std) == -1) {        ERR("Failed to get video standard from display device driver\n");        return FAILURE;    }    if ((std >> 16) == 0x1) {        yfactor = NTSC;    }    else {        yfactor = PAL;    }    /* Make sure there is no zoom */    zoom.WindowID = VID1_INDEX;    zoom.Zoom_H = ZOOM_XFAC;    zoom.Zoom_V = ZOOM_YFAC;    if (ioctl(fd, FBIO_SETZOOM, &zoom)) {        ERR("Failed setting zoom parameters\n");        return FAILURE;    }    varInfo.xres = D1_WIDTH;    varInfo.yres = D1_HEIGHT;    varInfo.bits_per_pixel = SCREEN_BPP;    if (ioctl(fd, FBIOPUT_VSCREENINFO, &varInfo) == -1) {        ERR("Failed FBIOPUT_VSCREENINFO on %s (%s)\n", FBVID1_DEVICE,			strerror(errno));        return FAILURE;    }    if (ioctl(fd, FBIO_SETPOSX, p_X0) == -1) {        ERR("Failed FBIO_SETPOSX on %s (%s)\n", FBVID1_DEVICE,            strerror(errno));        return FAILURE;    }    if (ioctl(fd, FBIO_SETPOSY, p_Y0) == -1) {        ERR("Failed FBIO_SETPOSX on %s (%s)\n", FBVID1_DEVICE,            strerror(errno));        return FAILURE;    }    if (varInfo.xres != D1_WIDTH ||        varInfo.yres != D1_HEIGHT ||        varInfo.bits_per_pixel != SCREEN_BPP) {        ERR("Failed to get the requested screen size: %dx%d at %d bpp\n",            D1_WIDTH, D1_HEIGHT, SCREEN_BPP);        return FAILURE;    }#endif    /* Map the video buffer to user space */    displays[0] = (char *) mmap (NULL,                                 D1_FRAME_SIZE * NUM_BUFS,                                 PROT_READ | PROT_WRITE,                                 MAP_SHARED,                                 fd, 0);    if (displays[0] == MAP_FAILED) {        ERR("Failed mmap on %s (%s)\n", FBVID1_DEVICE, strerror(errno));        return FAILURE;    }    /* Clear the video buffers */    buf = (unsigned int *) displays[0];	if(1)	{		for (i=0; i<D1_FRAME_SIZE * NUM_BUFS / sizeof(unsigned int); i++) {			buf[i] = UYVY_BLACK;		}	}	for (i=0; i<NUM_BUFS-1; i++) {		displays[i+1] = displays[i] + D1_FRAME_SIZE;	}    return fd;}#define YUV_XRES 800#define YUV_YRES 600#define YUV_X    0#define YUV_Y    0#define MAX_YUVFILE 12static char *yuvnames[MAX_YUVFILE] = {	"0", "1", "2",  "3",    "4", "5", "6",  "7",    "8", "9", "10", "11" };void process_image(int num, char *flipbuffer){	#define MAX_YUVNAME  1024	#define YUV_PATHNAME "/opt/vpbe/yuv/"    #define YUV_SUFFIX   ".yuv"	char yuvfullname[MAX_YUVNAME] = "";    DBG("num: %d, max: %d\n", num, MAX_YUVFILE);	if(num < 0 || num >= MAX_YUVFILE)		num = 0;	strcpy(yuvfullname, YUV_PATHNAME);	strcpy(yuvfullname + strlen(yuvfullname), yuvnames[num]);	strcpy(yuvfullname + strlen(yuvfullname), YUV_SUFFIX);	DBG("filename: %s\n", yuvfullname);	if(1)	{		FILE *yuvfp = NULL;		char *pdisp = NULL;		int i = 0;		yuvfp = fopen(yuvfullname, "r");		if(yuvfp == NULL)		{			ERR("Open %s failed!\n", yuvfullname);			return;		}				pdisp = flipbuffer + YUV_Y * D1_LINE_WIDTH + YUV_X * 2; 		for(i = 0; i < YUV_YRES; i++)		{			int readnum = 0; 			if(0)				DBG("Line %d[%d]: Buffer0ff=%d, FileOff=%d, len=%d\n", 					i, i + YUV_Y, 					pdisp - flipbuffer, ftell(yuvfp), YUV_XRES * 2);						readnum = fread(pdisp, 1, 2 * YUV_XRES, yuvfp);			if( (YUV_XRES * 2) != readnum)			{				ERR("Read from file to buffer Error!%d read\n", readnum);				break;			}			fseek(yuvfp, readnum * (i + 1), SEEK_SET);			pdisp += D1_LINE_WIDTH;		}		fclose(yuvfp);	}}static int get_cur_display_idx(int fd){    struct fb_var_screeninfo vInfo;    int  indx;    if (ioctl(fd, FBIOGET_VSCREENINFO, &vInfo) == -1) {        ERR("Failed FBIOGET_VSCREENINFO (%s)\n", strerror(errno));        return FAILURE;    }		indx = (vInfo.yoffset < vInfo.yres) ? 0 : 1;		DBG("Current display index = %d\n", indx);	return indx;}static int flipDisplayBuffers(int fd, int displayIdx){    struct fb_var_screeninfo vInfo;    int                      dummy;    if (ioctl(fd, FBIOGET_VSCREENINFO, &vInfo) == -1) {        ERR("Failed FBIOGET_VSCREENINFO (%s)\n", strerror(errno));        return FAILURE;    }    vInfo.yoffset = vInfo.yres * displayIdx;    /* Swap the working buffer for the displayed buffer */    if (ioctl(fd, FBIOPAN_DISPLAY, &vInfo) == -1) {        ERR("Failed FBIOPAN_DISPLAY (%s)\n", strerror(errno));        return FAILURE;    }    /* Wait for vertical sync */    if (ioctl(fd, FBIO_WAITFORVSYNC, &dummy) == -1) {        ERR("Failed FBIO_WAITFORVSYNC (%s)\n", strerror(errno));        return FAILURE;    }    return SUCCESS;}int init_vid1(){	int  fbFd;	char *displays[NUM_BUFS];	double randnum;	short randcolor;	fbFd = initDisplayDevice(displays);	if (fbFd == FAILURE) 	{		return FAILURE;	}		if(1)	{		int picnum = 0;		int curdispinx = get_cur_display_idx(fbFd);		int workindex = (curdispinx == 0) ? 1 : 0;		struct timeval tv;		gettimeofday(&tv, NULL);		srandom(tv.tv_usec);		randnum = random();		randcolor = 1 + (unsigned char) (255.0 * randnum / (float)(RAND_MAX + 1.0));		DBG("rand:%f[0x%x], randcolor: %d\n", randnum, RAND_MAX, randcolor);		if(0)		{			memset(displays[workindex], randcolor, D1_FRAME_SIZE);		}		else		{			int j;						//for(j = 0; j < MAX_YUVFILE; j++)			{				if(1)				{					picnum = 1 + (unsigned char) (12.0 * randnum / (float)(RAND_MAX + 1.0));				}				else				{					picnum = j;				}				//process_image(picnum, displays[workindex]);				process_image(0, displays[workindex]);				flipDisplayBuffers(fbFd, workindex);			}		}	}	close(fbFd);	return SUCCESS;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩高清不卡一区| 欧美色图一区二区三区| 99久久综合国产精品| 欧美在线观看一区二区| 精品99一区二区三区| 亚洲美女淫视频| 精品亚洲国内自在自线福利| caoporn国产精品| 精品日韩99亚洲| 一区二区三区四区在线| 国产乱子轮精品视频| 欧美日韩一区二区三区高清| 国产精品欧美一区喷水| 久久99精品久久久久久动态图| 色一情一伦一子一伦一区| 久久免费看少妇高潮| 日韩中文欧美在线| 欧美三级中文字幕在线观看| 国产精品嫩草99a| 国产资源精品在线观看| 91精品免费观看| 亚洲影院免费观看| 菠萝蜜视频在线观看一区| 精品粉嫩aⅴ一区二区三区四区| 亚洲动漫第一页| 日本黄色一区二区| 亚洲图片激情小说| 成人三级伦理片| 久久精品亚洲精品国产欧美| 久久精品国产99国产| 91.成人天堂一区| 夜色激情一区二区| 91麻豆免费看| 亚洲欧美另类小说视频| 成人ar影院免费观看视频| 国产女人18水真多18精品一级做| 乱中年女人伦av一区二区| 欧美一卡2卡3卡4卡| 日韩av电影一区| 91麻豆精品国产91久久久久久久久 | 亚洲精品日产精品乱码不卡| 风间由美性色一区二区三区| 国产视频一区二区在线观看| 国产美女久久久久| 欧美激情艳妇裸体舞| 成人黄页在线观看| 亚洲色图制服丝袜| 欧美熟乱第一页| 视频在线在亚洲| 欧美一级一级性生活免费录像| 蜜乳av一区二区三区| 精品成人a区在线观看| 国产黄色91视频| 国产亲近乱来精品视频| gogo大胆日本视频一区| 亚洲综合丝袜美腿| 911精品国产一区二区在线| 久草热8精品视频在线观看| 26uuu亚洲| 91视频免费看| 石原莉奈在线亚洲二区| 久久先锋影音av鲁色资源网| 福利电影一区二区| 一区二区三区高清在线| 日韩三级精品电影久久久| 国产麻豆91精品| 樱花草国产18久久久久| 日韩欧美一二三四区| 99久久精品国产网站| 三级影片在线观看欧美日韩一区二区 | 日本亚洲天堂网| 久久久精品免费网站| 色综合久久久久综合体桃花网| 亚洲一区免费在线观看| 精品福利一区二区三区 | 97久久超碰国产精品| 午夜久久电影网| 久久麻豆一区二区| 在线观看成人免费视频| 国产精一区二区三区| 亚洲一二三专区| 久久久国产精华| 欧美精品久久久久久久多人混战 | 国产日韩欧美精品在线| 欧美视频一区在线| 国产成人欧美日韩在线电影 | 国产欧美视频在线观看| 欧美色图天堂网| caoporn国产一区二区| 免播放器亚洲一区| 亚洲男同性视频| 久久九九全国免费| 制服丝袜av成人在线看| 一本一道综合狠狠老| 国产一区在线观看视频| 亚洲国产精品久久久久婷婷884| 国产欧美一区二区三区鸳鸯浴| 欧美日韩在线播放三区| eeuss鲁片一区二区三区在线看| 久久国产尿小便嘘嘘| 亚洲午夜激情网页| 亚洲视频一二三| 中文字幕国产精品一区二区| 91精品国产福利| 精品视频在线免费观看| 一本一道久久a久久精品| 不卡一区二区在线| 国产美女娇喘av呻吟久久| 热久久久久久久| 午夜欧美大尺度福利影院在线看 | 久久婷婷国产综合精品青草| 欧美精品99久久久**| 欧美在线观看视频一区二区三区| 成人动漫av在线| 成人精品小蝌蚪| 成人免费电影视频| 国产成人超碰人人澡人人澡| 精品一区二区三区欧美| 久久精品国产亚洲高清剧情介绍| 日韩1区2区3区| 天天做天天摸天天爽国产一区| 亚洲综合色丁香婷婷六月图片| 亚洲视频一二区| 亚洲精品久久久蜜桃| 亚洲精品日产精品乱码不卡| 亚洲欧美一区二区三区久本道91 | 欧美日韩一区三区四区| 欧美亚洲图片小说| 在线亚洲免费视频| 欧美日韩亚州综合| 欧美军同video69gay| 欧美一级片在线观看| 日韩久久免费av| 精品国产a毛片| 国产精品每日更新在线播放网址| 欧美激情一区二区三区| 亚洲欧美乱综合| 图片区小说区区亚洲影院| 麻豆国产一区二区| 国产呦萝稀缺另类资源| 波多野结衣91| 欧美日韩高清不卡| 日韩一区二区免费在线观看| 久久久久久日产精品| 国产精品久久久久四虎| 亚洲风情在线资源站| 美女视频黄频大全不卡视频在线播放| 激情综合五月婷婷| 白白色亚洲国产精品| 欧美视频在线一区| 欧美mv日韩mv国产| 综合久久一区二区三区| 全国精品久久少妇| 99天天综合性| 日韩一二三区视频| 国产精品久久久久久久久免费丝袜| 亚洲综合一区二区三区| 精品一区二区成人精品| 91传媒视频在线播放| 欧美精品一区二区久久婷婷| 亚洲色图20p| 久草在线在线精品观看| 在线观看免费一区| 国产日产欧美一区二区视频| 亚洲国产精品久久不卡毛片| 国产精品亚洲人在线观看| 欧美亚洲综合一区| 国产人伦精品一区二区| 天涯成人国产亚洲精品一区av| 丁香五精品蜜臀久久久久99网站 | 日韩午夜激情av| 国产精品欧美久久久久无广告 | 久久九九全国免费| 亚洲一区二区五区| 国产精品性做久久久久久| 91麻豆精品一区二区三区| 欧美天堂一区二区三区| 国产欧美精品一区| 午夜视频在线观看一区二区| 国产精品一区二区三区网站| 7777精品伊人久久久大香线蕉完整版 | 麻豆91小视频| 91蝌蚪porny成人天涯| 欧美一区二区在线不卡| 亚洲一区在线观看免费观看电影高清| 精品一区二区三区日韩| 91国偷自产一区二区三区成为亚洲经典 | 午夜国产精品影院在线观看| 国内精品久久久久影院薰衣草| 成人午夜av电影| 国产情人综合久久777777| 亚洲成在人线在线播放| 不卡av在线免费观看| 日韩欧美国产午夜精品| 亚洲欧美日本韩国| 国产精品99久久久久久有的能看 | 国产一区二区中文字幕| 日韩欧美另类在线| 亚洲动漫第一页| 91麻豆免费看|