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

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

?? video2video.c

?? wintech DAM 6416圖像處理平臺圖像實時采集顯示程序
?? C
字號:
/*! 
==============================================================================
								Video2Video
目的:驗證DAM6416P的視頻I/O功能。幫助用戶了解如何創建一個視頻應用程序。
內容:采集PAL制式的標準模擬視頻信號,并進行輸出。
運行方式:PCI方式和脫機運行方式。
運行環境:CCS2.2 or later(if any)

Copyright 2003 Wintech Digital. All Rights Reserved.
=============================================================================*/

#include <stdio.h>
#include <csl.h>
#include <std.h>
#include <sys.h>
#include <tsk.h>
#include <log.h>

#include "iekc64.h"

//
//	Depending on the demo configuration (PAL/NTSC, FULL/CIF)
//  prepare some constants
//
//	DEMO_PAL is already defined in the compiler options
//	for Debug_PAL build configuration

#ifdef PAL_DEMO_CIF
  #define DEMO_STANDARD   (PAL)
  #define DEMO_RES      (RES_PAL_CIF)
  #define WIDTH    (352)
  #define HEIGHT   (288)
#endif
#ifdef NTSC_DEMO_CIF
  #define DEMO_STANDARD   (NTSC)
  #define DEMO_RES      (RES_NTSC_CIF)
  #define WIDTH    (352)
  #define HEIGHT   (240)
#endif

#ifdef PAL_DEMO_FULL
  #define DEMO_STANDARD   (PAL)
  #define DEMO_RES      (RES_PAL_FULL)
  #define WIDTH    (720)
  #define HEIGHT   (576)
#endif
#ifdef NTSC_DEMO_FULL
  #define DEMO_STANDARD   (NTSC)
  #define DEMO_RES      (RES_NTSC_FULL)
  #define WIDTH    (720)
  #define HEIGHT   (480)
#endif

#define FRAME_SIZE_IN_PIXELS (WIDTH*HEIGHT) //frame size


// DSP/BIOS object
extern Uint32 seg_sdrama;
extern far LOG_Obj myLOG; 

// Define image buffers
#define Frames_Count   4         // frames in the buffer
#define Frames_ToKeep  1         // frames to be kept in the buffer

//	YUV422 pixels are 16 bits word, so Uint16
Uint16 CaptureBuffer[FRAME_SIZE_IN_PIXELS*Frames_Count]; //the capture buffer
Uint16 OutputBuffer[2][FRAME_SIZE_IN_PIXELS];            //ping-pong structure for output

Uint16* pVideoOutFrame=NULL;     //output frame pointer
Uint8   outVideoIndex=0;         //output frame index


// Function definition
void tsk_main(void);      //main task
void simpledelay(Uint16 delay_count);   //a simple delay funciton



//
// Function implementation
//


//a simple delay funciton
void simpledelay(Uint16 delay_count)
{
	int i;
	for (i=0;i<delay_count; i++)
	{
		asm("	nop ");
	}

}

void main(void)
{
	IEKC64_STATUS	status;
	TSK_Attrs attrs;

	//
	// Remember you should call CSL_init() first when using CSL of DSP/BIOS
	//
 	CSL_init();

	//
	//	This is the first API call you need
	//  It is mandatory to initialize the board
	//
	status = IEKC64_init();
 	if (!IEKC64_SUCCESS(status))
 	{
 		printf( "IEKC64_Init() failed with 0x%08X\n", status );
 		abort();
 	}

   
	// Toggle the on board LEDs
	// First turn off all LEDs
   	LED_set( BRACKET_RED, OFF );
 	LED_set( BRACKET_GREEN, OFF );
 	LED_set( ONBOARD_GREEN, OFF );
 	LED_set( ONBOARD_YELLOW, OFF );
 	LED_set( ONBOARD_RED, OFF );

	// Now toggle 
 	LED_set( ONBOARD_GREEN, ON );
 	simpledelay(1000);
 	LED_set( ONBOARD_YELLOW, ON );
 	simpledelay(1000);
 	LED_set( ONBOARD_RED, ON );
 	simpledelay(1000);
   	LED_set( BRACKET_RED, ON );
 	simpledelay(1000);
 	LED_set( BRACKET_GREEN, ON );
 	simpledelay(5000);

	// Turn off again
   	LED_set( BRACKET_RED, OFF );
 	LED_set( BRACKET_GREEN, OFF );
 	LED_set( ONBOARD_GREEN, OFF );
 	LED_set( ONBOARD_YELLOW, OFF );
 	LED_set( ONBOARD_RED, OFF );

   
   
	// Notice for the users!!!
	// Put your application specific initialization function here!
	// 
	
	
	// Now create the main task
	attrs = TSK_ATTRS;
	attrs.priority = 4;
	attrs.stacksize = 9024;
	attrs.stackseg = seg_sdrama;
	TSK_create((Fxn)tsk_main, &attrs);
	// After the main() exit, DSP/BIOS will be entered.
}	


// This is the main task which will be entered after the DSP/BIOS was run
void tsk_main(void)
{
	IEKC64_STATUS	status;
	Uint32 			boardCpuClock;
	Uint32 			dspBiosCpuClock;
	Uint32 i=0;
	Uint16* temp_address1=NULL;
	Uint16* temp_address2=NULL;
	static Uint32 index=1;

	IEKC64_VIDEOOUT	videoOut = IEKC64_VIDEOOUT_DEFAULT;
	IEKC64_VIDEOIN	videoIn = IEKC64_VIDEOIN_DEFAULT;
	// Video moudle definition 
	Handle			hVin;			// video input handle
	Handle			hVout;			// video output handle

	// Check CPU frequency configuration
	// 函數的返回值為 IEKC64_cpuClock,
	// 而同時*pDspBiosClock被賦予由DSP/BIOS反算得到的DSP Speed。
	boardCpuClock=IEKC64_getCpuClock(&dspBiosCpuClock);
	
	LOG_printf(&myLOG, "DSP clock frequency: %u Mhz\n", boardCpuClock);
	LOG_printf(&myLOG, "DSP/BIOS clock frequency: %u Mhz\n", dspBiosCpuClock);

	if(boardCpuClock != dspBiosCpuClock)
	{	
		LOG_printf(&myLOG, "WARNING: Board clock is different from DSP/BIOS configuration file clock.\n");
		// turn on the red LED to indicate the difference
		LED_set( ONBOARD_RED, ON );
	}


	//
	//	Now we prepare the VIN & VOUT moudle configurations 
	//	
	videoIn.Standard=DEMO_STANDARD;
	videoIn.Resolution=DEMO_RES;
	videoIn.FrameFormat=YUV422PIXEL;
	videoIn.VideoInSelect=COMPOSITE;
	videoIn.nTemporalDecimationFactor=1;
	videoIn.isOneShot=FALSE;
	videoIn.nFramesInBuffer=Frames_Count;
	videoIn.nFramesToKeep=Frames_ToKeep;
	videoIn.pCaptureBuffer=(Uint32*)CaptureBuffer;

	videoOut.Standard=DEMO_STANDARD;
	videoOut.Resolution=DEMO_RES;
	videoOut.FrameFormat=YUV422PIXEL;
	videoOut.VideoOutSelect=COMPOSITE;	
	
	//
	//	Let's open VIN & VOUT
	//	
	status = VIN_open(&videoIn,&hVin);
	if (!IEKC64_SUCCESS(status))
 	{
 		LOG_printf(&myLOG, "VIN_open() failed with 0x%08X\n", status );
 		abort();
 	}

	status = VOUT_open(&videoOut,&hVout);
	if (!IEKC64_SUCCESS(status))
 	{
 		LOG_printf(&myLOG, "VOUT_open() failed with 0x%08X\n", status );
 		abort();
 	}


	//
	//	Let's start video acquire & generation
	//	
	status = VOUT_start(hVout);
	if (!IEKC64_SUCCESS(status))
 	{
 		LOG_printf(&myLOG, "VOUT_start() failed with 0x%08X\n", status );
 		abort();
 	}

	status = VIN_start(hVin);
	if (!IEKC64_SUCCESS(status))
 	{
 		LOG_printf(&myLOG, "VIN_start() failed with 0x%08X\n", status );
 		abort();
 	}

	// Init the output frame pointer
	outVideoIndex=0;
	pVideoOutFrame=&OutputBuffer[0][0];

	LOG_printf(&myLOG, "Video2Video Example Starts!\n\n");


	// The following is the simplest way to use the VIDEO moudle
	// It creats a infinit loop in which a new frame is captured
	// and then sent to output directly

   	while(1)
	{
		// ouput LOG information
		LOG_printf(&myLOG, "Video2Video Example. Getting Video Frame index:%d !\n", index++);
		
		// toggle the green LED
	 	if (index%20)
		 	LED_set( ONBOARD_GREEN, OFF );
	    else
		 	LED_set( ONBOARD_GREEN, ON );

		//
		//	Try to get a frame at input
		//
		status = VIN_getFrame(hVin, (void**)&temp_address1,IEKC64_VIDEO_WAIT_INFINITE);
		//
		//	If we have it, display it
		//
		if (IEKC64_SUCCESS(status))
	 	{
	 	   	//
			// If we have the new frame, we can process it
			// For simplicity reasons, we just move the input frame data to
			// the ouput frame without any processing 
	
			
	    	// Porcessing begins!
	
			// We just move data here without any processing
			temp_address2=pVideoOutFrame;
			for (i=0;i<FRAME_SIZE_IN_PIXELS;i++)
				*(temp_address2++) = *(temp_address1++);
			
			// Notice for the users!!!
			// Put your specific processing codes here!
			// 
	    	
	    	
	    	// Porcessing ends!
	    	
	    	// Now output the frame 
	    	VOUT_putFrame(hVout, pVideoOutFrame,IEKC64_VIDEO_NO_WAIT);
	    	
	    	// update the index and output frame pointer
	    	outVideoIndex=(outVideoIndex+1)%2;
			pVideoOutFrame=&OutputBuffer[outVideoIndex][0];
	
		}
	}

}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
琪琪一区二区三区| 亚洲电影激情视频网站| 91精品国产91热久久久做人人| 一本色道**综合亚洲精品蜜桃冫| 成人av在线看| 91欧美一区二区| 色婷婷综合中文久久一本| 972aa.com艺术欧美| 91一区二区三区在线观看| 色综合天天狠狠| 欧美视频三区在线播放| 欧美日韩激情一区二区| 欧美剧在线免费观看网站| 6080亚洲精品一区二区| 欧美va日韩va| 中文字幕不卡在线观看| 自拍偷拍欧美激情| 亚洲国产日韩精品| 免费黄网站欧美| 国产伦精品一区二区三区视频青涩| 国产一区二区网址| 99久久精品国产导航| 欧美日韩在线播放一区| 91精品欧美福利在线观看| 久久综合狠狠综合久久综合88| 亚洲国产精品国自产拍av| 亚洲精品乱码久久久久久黑人| 午夜视频一区二区三区| 久久er99精品| 色婷婷综合久久久久中文一区二区| 欧美精品自拍偷拍| 欧美r级在线观看| 1000部国产精品成人观看| 天天综合天天做天天综合| 国产一区二区三区| 91久久精品一区二区三| 精品免费日韩av| 一区二区成人在线| 国产麻豆精品theporn| 欧美午夜一区二区三区免费大片| www久久精品| 亚洲在线免费播放| 国产福利精品导航| 欧美日韩一区二区三区高清| 亚洲国产成人午夜在线一区| 午夜精品久久久久久不卡8050| 国产精品一区二区不卡| 欧美军同video69gay| 综合中文字幕亚洲| 国产尤物一区二区| 欧美日韩成人综合天天影院 | 欧美午夜精品久久久久久孕妇| 欧美xxx久久| 亚洲成人一区在线| 97精品超碰一区二区三区| 精品国产免费久久| 午夜视频一区二区| 色婷婷亚洲一区二区三区| 国产三级一区二区| 九一九一国产精品| 欧美在线视频日韩| 中文字幕综合网| 成人动漫精品一区二区| 日韩精品一区二区三区视频播放| 亚洲午夜免费电影| 99久久精品情趣| 国产精品剧情在线亚洲| 高清成人免费视频| 国产亚洲欧美日韩日本| 精品无人码麻豆乱码1区2区| 911国产精品| 日本三级亚洲精品| 在线成人av影院| 亚洲午夜在线观看视频在线| 日本久久精品电影| 亚洲精品国久久99热| 色婷婷精品大视频在线蜜桃视频| ...av二区三区久久精品| 风间由美性色一区二区三区| 国产欧美日韩在线看| 国产白丝网站精品污在线入口| 久久久久久久久久久久久女国产乱| 精品一区二区三区av| 亚洲精品在线观看视频| 国产成人在线色| 国产精品国模大尺度视频| 99精品在线观看视频| 亚洲最色的网站| 欧美中文字幕亚洲一区二区va在线| 一区二区三区在线观看视频| 欧美日韩在线不卡| 免费人成在线不卡| 久久久久久久综合日本| 97久久超碰国产精品| 亚洲一区二区三区四区不卡| 日韩一区二区在线播放| 国产一区二区91| 日韩理论片在线| 欧美群妇大交群中文字幕| 美腿丝袜亚洲一区| 久久久久99精品国产片| 成人久久视频在线观看| 亚洲资源在线观看| 日韩一区二区精品| 国产精品一区免费在线观看| 亚洲人妖av一区二区| 91精品国产色综合久久久蜜香臀| 国产精品影视网| 亚洲日本成人在线观看| 日韩一二三区视频| jlzzjlzz国产精品久久| 日韩精品欧美成人高清一区二区| 久久精品人人做人人综合| 99麻豆久久久国产精品免费优播| 午夜伦理一区二区| 久久久久久久电影| 欧美日韩五月天| 成人免费高清在线观看| 奇米一区二区三区av| 国产精品第四页| www成人在线观看| 欧美四级电影网| 成人午夜伦理影院| 日韩中文字幕亚洲一区二区va在线| 久久精品一区二区三区四区| 欧美人牲a欧美精品| 99精品热视频| 国产成人日日夜夜| 蜜桃久久久久久| 亚洲影视资源网| 国产精品每日更新在线播放网址 | 国产性天天综合网| 欧美美女一区二区三区| 91免费精品国自产拍在线不卡| 狠狠狠色丁香婷婷综合激情 | 99久久婷婷国产精品综合| 麻豆91小视频| 日韩av电影天堂| 一区二区激情视频| 亚洲猫色日本管| 中文字幕日韩av资源站| 国产午夜久久久久| 久久久亚洲精华液精华液精华液| 91精品综合久久久久久| 欧亚洲嫩模精品一区三区| a美女胸又www黄视频久久| 处破女av一区二区| 老鸭窝一区二区久久精品| 亚洲成人在线观看视频| 亚洲国产日产av| 亚洲综合丁香婷婷六月香| 亚洲另类色综合网站| 亚洲三级小视频| 亚洲精品五月天| 亚洲视频一区二区在线观看| 中文字幕中文字幕在线一区| 国产精品黄色在线观看| 中文字幕不卡在线观看| 《视频一区视频二区| 亚洲三级电影网站| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲男人的天堂一区二区| 亚洲欧美经典视频| 亚洲最色的网站| 日韩精品福利网| 国产曰批免费观看久久久| 国产精品综合一区二区| 成人黄色片在线观看| 色综合天天综合网天天狠天天| 欧洲av在线精品| 欧美久久高跟鞋激| 久久综合久色欧美综合狠狠| 国产亚洲精品精华液| 亚洲少妇30p| 热久久久久久久| 国产成人免费av在线| 色综合久久久久久久| 91精品欧美一区二区三区综合在 | 不卡影院免费观看| 欧美三级三级三级| 精品国产伦理网| 国产精品福利一区| 五月激情综合网| 国产精品自在在线| 91在线你懂得| 日韩欧美亚洲一区二区| 国产精品久久午夜夜伦鲁鲁| 亚洲国产精品视频| 国产在线精品一区二区| 91碰在线视频| 亚洲精品在线一区二区| 一区二区三区四区不卡在线 | 精品一区二区三区av| av激情亚洲男人天堂| 欧美日韩的一区二区| 国产精品天美传媒| 日本成人在线不卡视频| 不卡的看片网站| 日韩免费高清av| 亚洲午夜av在线|