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

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

?? jpeg_test.c

?? 三星 s3c6400測試代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
	}

	printf(" Which file to read ? ");
	sel = GetIntNum();
	if (!FAT_ReadFile2(sel, uJpgAddr, &uJpgSize, &oSdhc))
		printf(" Loading failed ....\n");

	FAT_UnloadFileSystem(&oSdhc);
	SDHC_CloseMedia(&oSdhc);

	printf(" Stream size = %d bytes\n", uJpgSize);
	bIsJpgLoaded = true;

}

static void SaveRawImgToFile(void)
{
#if	 SEMIHOSTING
	SaveToFile(YUV_FILE_NAME, uRawImgHSz_Dec*uRawImgVSz_Dec*2, uRawImgAddr);
#else
	// Under Construction. SD will be used.
#endif
}

static void TestDecodingConformance(void)
{
	//JPEG_TYPE eJpgType;
	u32 uJpgSize, i;
	char cKey;
	char pFileName[50];
	u32 uNumOfFiles, uCnt;
	char pType[30];

	bIsOneStep = false;
	
	if ((!SDHC_OpenMedia(SDHC_HCLK, &oSdhc))||(!FAT_LoadFileSystem(&oSdhc)))
	{
		printf("FAIL TO OPEN MEDIA OR FAIL TO LOAD FILE SYSTEM\n");
		return;
	}

	FAT_GetTotalNumOfFiles(&uNumOfFiles, &oSdhc);
	for (i=0; i<uNumOfFiles; i++)
	{
		FAT_GetFileName(i, pFileName, &oSdhc);
		printf("%02d -- %s\n", i, pFileName);
	}

	FAT_GetTotalNumOfFiles(&uNumOfFiles, &oSdhc);

	for (uCnt=0; uCnt<uNumOfFiles; uCnt++)
	{
		if (!FAT_ReadFile2(uCnt, uJpgAddr, &uJpgSize, &oSdhc))
		{
			printf(" Loading failed .......\n");
			continue;
		}

		FAT_GetFileName(uCnt, pFileName, &oSdhc);

		printf(" 1. %s\n", pFileName);

		INTC_Init();
		INTC_SetVectAddr(NUM_JPEG, Isr_Jpeg);
		INTC_Enable(NUM_JPEG);

		bJpegDone = false;

		// Header Parsing
		JPEG_StartParsingHeader(uJpgAddr);
		WaitForSet(bJpegDone);
		if (eJpgStatus != OK_HD_PARSING)
			printf(" Parsing Error -------------------------------\n");

		JPEG_GetJpegType1(pType);
		printf(" 2. %s\n", pType);

		JPEG_GetDecodedWidthAndHeight(&uRawImgHSz_Dec, &uRawImgVSz_Dec);
		if ( uRawImgHSz_Dec == 0 || uRawImgVSz_Dec == 0 )
			printf("Error! Widht or Height is zero\n");
		else 
			printf(" 3. W = %d, H = %d\n", uRawImgHSz_Dec, uRawImgVSz_Dec);

		// Decoding body
		uRawImgAddr = uJpgAddr+((uJpgSize+16)/16)*16;
		bJpegDone = false;
		JPEG_StartDecodingBody(uRawImgAddr, false);
		WaitForSet(bJpegDone);
		if (eJpgStatus != OK_ENC_OR_DEC)
			printf(" Decoding Error -------------------------------\n");

		// printflay the image
		CAMERA_InitDmaInPath(uRawImgHSz_Dec, uRawImgVSz_Dec, uRawImgAddr, YCBYCR,
			uLcdHSz, uLcdVSz, uLcdFbAddr, eLcdBpp, FLIP_NO, ROT_0, C_PATH);

		bCamifDone = false;
		CAMERA_StartDmaInPath();
		WaitForConversionDone(bCamifDone);

		printf("\n Hit any key to continue, \'x\' to exit\n\n");
		cKey = Getc();
		if (cKey == 'X' || cKey == 'x')
			break;
	}
	FAT_UnloadFileSystem(&oSdhc);
	SDHC_CloseMedia(&oSdhc);
	
}

static void SetJpegTypeForEnc(void)
{
	u32 uSelFmt;

	while (true)
	{
		printf("[0] Exit\n");
		printf("[1] YUV422 \n");
		printf("[2] YUV420 \n");

		printf("\n");
		printf("Enter the encoding format: ");

		uSelFmt = GetIntNum();

		if (uSelFmt == 0)
			return;
		else if (uSelFmt >=1 && uSelFmt <=2)
		{
			eJpgFormat = (uSelFmt == 1) ? JPEG_422: JPEG_420;
			printf("eJpgFormat = 0x%x\n", eJpgFormat);
			break;
		}
		else
			printf("Invalid Input! Retry It!!\n");
	}
}

void TestEncoding(void)
{
	bIsOneStep = false;	

	//SetRawImgTypeForEnc();
	SetJpegTypeForEnc();
	
	Assert(eRawImgFormat == YCBYCR || eRawImgFormat == RGB16);

	INTC_Init();
	INTC_SetVectAddr(NUM_JPEG, Isr_Jpeg);
	INTC_SetVectAddr(NUM_CAMIF_C, Isr_Camif_C);	
	INTC_Enable(NUM_JPEG);
	INTC_Enable(NUM_CAMIF_C);

	// Draw src. img.
	//GLIB oGlib(uGlibAddr, uRawImgHsz_Enc, uRawImgVsz_Enc, RGB16);
	//oGlib.DrawPattern(PTN1);
	GLIB_InitInstance(uGlibAddr, uRawImgHsz_Enc, uRawImgVsz_Enc, RGB16);
	GLIB_DrawPattern(uRawImgHsz_Enc, uRawImgVsz_Enc);

	if (eRawImgFormat == YCBYCR)
	{
		CAMERA_InitDmaInPath(uRawImgHsz_Enc, uRawImgVsz_Enc, uGlibAddr, RGB16,
			uRawImgHsz_Enc, uRawImgVsz_Enc, uRawImgAddr, YCBYCR, FLIP_NO, ROT_0, C_PATH);

		bCamifDone = false;
		CAMERA_StartDmaInPath();
		WaitForConversionDone(bCamifDone);
		
		/*
		POST_InitIp(	uRawImgHSz_Dec, uRawImgVSz_Dec, uRawImgAddr, YCBYCR,
					uLcdHSz, uLcdVSz, uLcdFbAddr, eLcdBpp, 1, false, ONE_SHOT, &oPost);
		bCamifDone = false;
		POST_StartProcessing(&oPost);
		while (!POST_IsFreeRunDone(&oPost));
		*/
	}

	uRawImgAddr = (eRawImgFormat == YCBYCR) ? uRawImgAddr : uGlibAddr;

	bJpegDone = false;
	JPEG_StartEncodingOneFrame(uRawImgHsz_Enc, uRawImgVsz_Enc, uRawImgAddr, eRawImgFormat,
		uJpgAddr, eJpgFormat);
	WaitForSet(bJpegDone);

	Assert(eJpgStatus == OK_ENC_OR_DEC);

	JPEG_GetEncodedStreamLen(&uJpgSize);
	printf(" Encoded Stream = %d bytes\n", uJpgSize);
	
}

static void SaveJpegStreamToFile(void)
{

#if	 SEMIHOSTING
	SaveToFile(CAPTURED_JPEG, uJpgSize, uJpgAddr);
#else
	// Under Construction. SD will be used.
#endif

}

void Test_EncMotionJPEG(void)
{
	char x=0;
	u32 uSrcHsz ,uSrcVsz ;
	u32 uCaptureHsz, uCaptureVsz;
	CSPACE eDstDataFmt = RGB16;
	IMG_SIZE eCodecSz=VGA;
	IMG_SIZE ePreviewSz = VGA;

	u32 uCodecAddr = uJpgAddr + 0x500000;

	LCD_InitLDI(MAIN);
	LCD_InitDISPC(eDstDataFmt, uLcdFbAddr, WIN0, false);
	LCD_GetFrmSz(&uLcdHSz, &uLcdVSz, WIN0);
	LCD_Start();

	INTC_Init();
	INTC_SetVectAddr(NUM_JPEG, Isr_EncMotion);
	INTC_SetVectAddr(NUM_CAMIF_C, Isr_Camif_C);	
	INTC_Enable(NUM_JPEG);
	INTC_Enable(NUM_CAMIF_C);
	
	CAMERA_InitSensor1(ePreviewSz, CCIR601, YCBYCR);
	CAMERA_GetSrcImgSz(&uSrcHsz, &uSrcVsz);

	uSrcHsz = (uSrcHsz > uLcdHSz) ? uLcdHSz : uSrcHsz;
	uSrcVsz = (uSrcVsz > uLcdVSz) ? uLcdVSz : uSrcVsz;

	CAMERA_InitPreviewPath(uSrcHsz, uSrcVsz, uLcdFbAddr, eDstDataFmt, FLIP_NO, ROT_0);
	CAMERA_StartPreviewPath();

	while(true)
	{
		printf("x = Turn off Camera, s = Capture IMG(Enocoded To JPEG), c = Change IMG Size : ");
		x = Getc();
		printf("%c\n", x);

		if(x == 'x' || x=='X')
		{
			CAMERA_StopPreviewPath();
			break;
		}
		else if(x=='s' || x=='S')
		{
			CAMERA_StopPreviewPath();
			//CIM_SetSensorSize(eCodecSz);

			bCamifDone = false;
			
			ConvertImgSzToNumber(eCodecSz, &uCaptureHsz, &uCaptureVsz);
			eDstDataFmt = YCBYCR;

			CAMERA_InitCodecPath(uCaptureHsz, uCaptureVsz, uCodecAddr,  eDstDataFmt, FLIP_NO, ROT_0);
			CAMERA_StartCodecPath(MJPEG_FRAME_NUM);

			//while(!CIM_IsProcessingDone());
			WaitForConversionDone(bCamifDone);			

			CAMERA_ClearFrameEndStatus();
			printf("Capturing raw image  ... \n");	

			Delay(2000);

			bMjpgEncDone = false;
			uMjpgCount = 0;

			//JPEG_StartEncodingOneFrame(uCaptureHsz, uCaptureVsz, uCodecAddr, eDstDataFmt, uJpgAddr, eJpgFormat);
			JPEG_InitIpForMotionEncoding(uCaptureHsz, uCaptureVsz, uCodecAddr, eDstDataFmt,
										MJPEG_STREAM_ST, eJpgFormat, MJPEG_MAX_SZ);

			//JPEG_StartEncodingMotionJPEG(uCaptureHsz, uCaptureVsz, uCodecAddr, eDstDataFmt, MJPEG_STREAM_ST, eJpgFormat);

			WaitForSet(bMjpgEncDone);
			Assert(eJpgStatus == OK_ENC_OR_DEC);
			//JPEG_Wait_Done();

			JPEG_GetEncodedStreamLen(&uJpgSize);
			/*
			//+daedoo 061212
			CIM_SetSensorSize(ePreviewSz);
			CIM_InitPreviewPath(uSrcHsz, uSrcVsz, uLcdFbAddr, eDstDataFmt, FLIP_NO, ROT_0);
			CIM_StartPreviewPath();
			*/			

#ifdef SEMI_HOSTING
			printf("Saving image to file ... \n");						
			SaveToFile(CAPTURED_JPEG, uJpgSize, uJpgAddr);
#else
			// Under Construction. SD/MMC will be used.
#endif
			
		}

		else if(x=='c' || x=='C')
		{
			printf("1 = UXGA, 2 = SXGA, 3 = SVGA, 4 = VGA : ");
			x = Getc();
			printf("%c\n", x);

			eCodecSz =  (x=='1') ? UXGA : (x=='2') ? SXGA : (x=='3') ? SVGA : (x=='4') ? VGA : SVGA;
		}
		else
			printf("Invalid input! Retry!!\n");
	}
	CAMERA_StopPreviewPath();

}

void JPEG_Test(void)
{
	int i, sel;

	const testFuncMenu menu[]=
	{
		0,                                  "Exit",
#ifdef SEMI_HOSTING
		GetJpegStreamFromPc,             "Load Jpg File from PC",
#endif		
		GetJpegStreamFromSd,             "Load Jpg File from SD",
		//SetJpegTypeForEnc,                   "Set Jpeg Encoding Format",
		TestEncoding,                      	  "Encoding Image test (Generated Image)",		
		//SetRawImgTypeForEnc,              "Set Raw Img. Type For Generated Image",
		TestOneStepDecoding,               "H/W Decoding test (One Step)",
		TestTwoStepDecoding,               "Decoding test (Two Step)",
		TestDscSubsys,                      	    "Camera Capture test",
		SaveRawImgToFile,                    "Save Raw Image",
		TestDecodingConformance,        "Jpg Stream->Raw Img->LCD Using SD/MMC",
		//Test_EncMotionJPEG,		     	   "Motion JPEG Encoding",
		SaveJpegStreamToFile,               "Save Jpg file to PC\n",
		0,0
	};

	SDHC_InitCh(SDHC_CHANNEL_0, &oSdhc);
	JPEG_Init();
	POST_InitCh(POST_A, &oPost);

	eJpgFormat = JPEG_420;
	eLcdBpp = RGB16;

	uLcdFbAddr = CODEC_MEM_ST+0x1000000;
	uGlibAddr = uLcdFbAddr + 240*320*4;
	uJpgAddr = CODEC_MEM_ST;

	eRawImgFormat = RGB16;
	uRawImgAddr = uJpgAddr + 0x10000;

	uRawImgHsz_Enc = 320;
	uRawImgVsz_Enc = 240;

	bIsJpgLoaded = false;
	bIsOneStep = false;
	uIntCnt = 0;

	LCD_SetPort();

	CAMERA_SFRInit();
	GPIO_SetFunctionAll(eGPIO_F, 0x2aaaaaa, 0); // Camera GPIO Setting : rGPFCON = 0x2aa aaaa
	GPIO_SetPullUpDownAll(eGPIO_F, 0);
   	CAMERA_ClkSetting(); // Camera Module CLK Setting

	LCD_InitLDI(MAIN);
	LCD_InitDISPC(eLcdBpp, uLcdFbAddr, WIN0, false);
	LCD_SetWinOnOff(1, WIN0);
	LCD_Start();
	LCD_GetFrmSz(&uLcdHSz, &uLcdVSz, WIN0);

	while(1)
	{
		printf("\n");
		for (i=0; (int)(menu[i].desc)!=0; i++) {
			printf("%2d: %s\n", i, menu[i].desc);
		}

		printf("\nSelect the function to test : ");
		sel = GetIntNum();
		printf("\n");

		if (sel == 0)
			break;
		else if (sel>0 && sel<(sizeof(menu)/8-1))
			(menu[sel].func) ();
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区三区| 国产精品成人免费在线| 久久综合九色综合久久久精品综合| 欧美经典一区二区| 一区二区在线观看免费| 国产成人一区在线| 欧美日韩国产高清一区二区 | 亚洲欧美怡红院| 人禽交欧美网站| 日本福利一区二区| 国产精品三级电影| 国产一区免费电影| 69堂亚洲精品首页| 一区二区三区四区亚洲| 成人av片在线观看| 精品国产不卡一区二区三区| 五月天欧美精品| 日本精品一级二级| 中文字幕精品三区| 国产盗摄精品一区二区三区在线| 欧美一级免费大片| 亚洲va欧美va国产va天堂影院| www.在线成人| 国产精品久久毛片| 成人黄页毛片网站| 久久精品一级爱片| 狠狠色丁香婷婷综合| 91精品国产欧美一区二区18| 婷婷久久综合九色国产成人| 91搞黄在线观看| 一区二区三区在线视频免费观看| 91在线观看视频| 最近日韩中文字幕| 91首页免费视频| 亚洲欧美一区二区在线观看| 99re8在线精品视频免费播放| 欧美激情一区在线观看| 成人免费高清视频在线观看| 中文字幕va一区二区三区| 成人亚洲一区二区一| 国产精品视频免费看| 91色porny在线视频| 一区二区三区精品久久久| 在线日韩国产精品| 亚洲成国产人片在线观看| 欧美精品在线一区二区| 久久精品国产亚洲a| 久久噜噜亚洲综合| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 国模套图日韩精品一区二区| 久久综合久久鬼色| 99久久精品国产精品久久| 亚洲日本韩国一区| 欧美日韩国产综合久久| 日本在线不卡视频| 久久蜜臀精品av| 91免费版pro下载短视频| 亚洲自拍偷拍综合| 日韩欧美国产一区二区三区| 国产精品一区二区无线| 亚洲欧美自拍偷拍色图| 8v天堂国产在线一区二区| 国产一区二区久久| 一级做a爱片久久| 日韩欧美国产综合一区 | 国产一区在线精品| 国产精品动漫网站| 欧美日韩不卡一区| 国产成人av福利| 一区二区国产盗摄色噜噜| 欧美电影免费观看高清完整版在线观看 | 男人的j进女人的j一区| 中文字幕欧美三区| 欧美三电影在线| 国产又黄又大久久| 亚洲sss视频在线视频| 久久亚洲精精品中文字幕早川悠里| www.视频一区| 青青草视频一区| 国产精品美女久久久久aⅴ| 欧美老年两性高潮| 老司机精品视频导航| 18涩涩午夜精品.www| 日韩欧美一区二区免费| 91在线你懂得| 狠狠色丁香婷综合久久| 亚洲午夜电影在线| 国产精品理伦片| 日韩一二三四区| 欧洲色大大久久| 成人免费观看视频| 久久国产尿小便嘘嘘尿| 一区二区三区91| 国产女主播在线一区二区| 依依成人综合视频| 欧美一区二区视频观看视频| 老汉av免费一区二区三区| 日韩一区二区三区高清免费看看| 一区二区三区中文字幕电影| 久久亚洲精品小早川怜子| 精品视频免费在线| 福利电影一区二区三区| 经典三级在线一区| 三级精品在线观看| 亚洲高清不卡在线观看| 亚洲色图都市小说| 亚洲欧美在线视频观看| 国产精品嫩草影院com| 久久综合色天天久久综合图片| 在线播放欧美女士性生活| 91在线国产福利| 成人黄色在线网站| 成人高清伦理免费影院在线观看| 国产丶欧美丶日本不卡视频| 国内精品嫩模私拍在线| 精品一区二区三区久久| 久久国产精品72免费观看| 日本不卡视频在线观看| 视频在线观看一区| 日韩成人dvd| 免费在线观看视频一区| 日韩av电影免费观看高清完整版| 亚洲444eee在线观看| 日韩精品一级二级 | 欧美一区在线视频| av亚洲精华国产精华精华| 视频一区国产视频| 一区二区高清在线| 亚洲国产精品麻豆| 亚洲高清三级视频| 青娱乐精品视频| 国产一区二区不卡老阿姨| 国产美女主播视频一区| 成人国产精品免费| 色老汉一区二区三区| 日本高清不卡在线观看| 欧美精品在线一区二区三区| 日韩精品中午字幕| 中文字幕免费一区| 一区二区在线看| 日本aⅴ精品一区二区三区| 黄色日韩网站视频| av一区二区三区| 欧美午夜精品一区二区三区| 日韩一级二级三级| 国产精品视频在线看| 亚洲综合一区二区精品导航| 日韩电影一区二区三区四区| 国产乱子伦视频一区二区三区 | 欧美亚洲禁片免费| 6080午夜不卡| 国产免费观看久久| 亚洲在线视频免费观看| 久久超碰97中文字幕| jizz一区二区| 欧美二区乱c少妇| 国产亚洲精品久| 天天亚洲美女在线视频| 懂色av中文一区二区三区| 在线观看av一区| 国产亚洲综合性久久久影院| 亚洲精品免费在线| 激情综合亚洲精品| 欧美色图在线观看| 久久久电影一区二区三区| 亚洲综合在线视频| 国产精品白丝av| 51精品秘密在线观看| 国产精品久久久久久久久免费丝袜 | 麻豆成人综合网| 91一区二区在线观看| 欧美大度的电影原声| 一区二区三区加勒比av| 国产乱码精品一区二区三区五月婷 | 制服丝袜亚洲播放| 亚洲视频一二三区| 国产一区二区在线观看免费| 欧美性一二三区| 亚洲欧美在线观看| 国产一区二区免费看| 欧美一区2区视频在线观看| 亚洲欧美一区二区三区孕妇| 国产在线精品一区在线观看麻豆| 欧美裸体一区二区三区| 日韩理论在线观看| 国产黄色91视频| 欧美大片在线观看一区| 日日夜夜精品视频免费| 一本一道综合狠狠老| 亚洲国产激情av| 国产成人av一区二区三区在线观看| 日韩一级成人av| 日韩—二三区免费观看av| 欧美日韩国产高清一区二区| 亚洲免费观看高清完整版在线观看 | 樱花影视一区二区| 91蝌蚪porny成人天涯| 中文一区二区在线观看| 国产精品一二三| 国产日韩精品视频一区|