示例#1
0
int main()
{
    // define number of samples to be computed
    unsigned int num_samples = 100;    
    
    // Bezier points = control polygon, (n+1)x2 matrix
    MatX2 BP;
    
    // curve points
    MatX2 C_Casteljau, C_Bernstein;
    
    // read Bezier points
    if( !readBCV("../data/simple.bcv",BP) ) return -1;
    
    // compute curve points using Bernstein basis
    std::clock_t start = std::clock();
    BernsteinCurve( C_Bernstein, BP, num_samples );
    measureTime(start);
    
    // compute curve points using DeCasteljau
    start = std::clock();
    CasteljauCurve( C_Casteljau, BP, num_samples );
    measureTime(start);
    
    // export curves
    if( !writeMatrixData("../plots/output.txt",C_Bernstein) ) return -1;

    return 0;
}
示例#2
0
int main(int argc, char *argv[])
{
long enteredMainTime = clock1000();
measureTime(NULL);
setUdcCacheDir();
browserName = hBrowserName();
organization = "UCSC";

/* Push very early error handling - this is just
 * for the benefit of the cgiVarExists, which
 * somehow can't be moved effectively into doMiddle. */
htmlPushEarlyHandlers();
cgiSpoof(&argc, argv);
char * link = webTimeStampedLinkToResourceOnFirstCall("HGStyle.css",TRUE); // resource file link
if (link)                                                                  // wrapped in html
    htmlSetStyle(link);

oldVars = hashNew(10);

if (cgiVarExists("hgt.redirectTool"))
    {
    printf("Content-type: text/html\n\n");

    cart = cartForSession(hUserCookie(), NULL, NULL);
    printf("<html><body>\n");
    printf("<form id=\"redirForm\" method=\"POST\" action=\"http://tefor.net/crisporMax/crispor.cgi\">\n");
    printf("<input type=\"hidden\" name=\"pos\" value=\"%s\">", cartString(cart, "position"));
    printf("<input type=\"hidden\" name=\"org\" value=\"%s\">", cartString(cart, "db"));
    printf("<input type=\"hidden\" name=\"pam\" value=\"NGG\">\n");
    // a hidden submit button, see
    // http://stackoverflow.com/questions/477691/submitting-a-form-by-pressing-enter-without-a-submit-button
    printf("<input type=\"submit\" style=\"position: absolute; left: -9999px; width: 1px; height: 1px;\">\n");
    printf("</form>\n");
    // a little javascript that clicks the submit button
    printf("<script>document.getElementById(\"redirForm\").submit();</script>\n");
    printf("</body></html>\n");
    }
else
    cartHtmlShell("UCSC Genome Browser v"CGI_VERSION, doMiddle, hUserCookie(), excludeVars, oldVars);

if (measureTiming)
    measureTime("Time to write and close cart");
if (measureTiming)
    {
    fprintf(stdout, "<span class='timing'>Overall total time: %ld millis<br /></span>\n",
            clock1000() - enteredMainTime);
    }
cgiExitTime("hgTracks", enteredMainTime);
return 0;
}
MeasureResult SortMethodAnalyzer::measureSort(const InitializeParameters &parameters) {
  int compareCount;
  SortTimeFunction stm(m_sortMethod, parameters, compareCount);
  double timeUsage = measureTime(stm, MEASURE_PROCESSTIME);

  return MeasureResult(parameters.m_elementCount, compareCount, timeUsage*1000);
}
示例#4
0
long long testPerformance(long long tests, int bit_count, int repetitions)
{
	gmp_randstate_t RAND;
	gmp_randinit_default(RAND);
	gmp_randseed_ui(RAND, getTime());

	mpz_t base;
	mpz_init_set_ui(base, 1);
	mpz_mul_2exp(base, base, bit_count-1); // base = 2^(bit_count-1)

	mpz_t n;
	mpz_init(n);
	long long time = 0;
	int test;
	for (test = 0; test < tests; test++) {
		mpz_urandomb(n, RAND, bit_count-1);
		mpz_add(n, n, base); // n has bit_count bits

		time += measureTime(n, repetitions);
	}
	mpz_clear(n);
	mpz_clear(base);
	gmp_randclear(RAND);

	return time / tests; // Average
}
示例#5
0
int main(int argc, char *argv[])
{
long enteredMainTime = clock1000();
measureTime(NULL);
browserName = hBrowserName();
organization = "UCSC";

/* Push very early error handling - this is just
 * for the benefit of the cgiVarExists, which
 * somehow can't be moved effectively into doMiddle. */
htmlPushEarlyHandlers();
cgiSpoof(&argc, argv);
char * link = webTimeStampedLinkToResourceOnFirstCall("HGStyle.css",TRUE); // resource file link
if (link)                                                                  // wrapped in html
    htmlSetStyle(link);

oldVars = hashNew(10);

if (cgiVarExists("hgt.redirectTool"))
    {
    printf("Content-type: text/html\n\n");
    errAbortSetDoContentType(FALSE);
    cart = cartForSession(hUserCookie(), NULL, NULL);
    extToolRedirect(cart, cgiString("hgt.redirectTool"));
    }
else
    cartHtmlShell("UCSC Genome Browser v"CGI_VERSION, doMiddle, hUserCookie(), excludeVars, oldVars);

if (measureTiming)
    measureTime("Time to write and close cart");
if (measureTiming)
    {
    fprintf(stdout, "<span class='timing'>Overall total time: %ld millis<br /></span>\n",
            clock1000() - enteredMainTime);
    }
cgiExitTime("hgTracks", enteredMainTime);
return 0;
}
示例#6
0
void menu::checkCollisiton() {
   // cout << "check \n";
    
    
    _preState = _collistionFlag;
    
    float diffR = _parentR + _myR;
    
    /*
    cout << "diffR:";
    cout << diffR;
    cout << "px,py,mx,my:";
    cout << _parentPoint.x;
    cout << ", ";
    cout << _parentPoint.y;
    cout << ", ";
    cout << _myPoint.x;
    cout << ", ";
    cout << _myPoint.y;
    cout << "\n ";
    */
    
    float diffValue = sqrt(
                           (_parentPoint.x - _myPoint.x)*(_parentPoint.x - _myPoint.x)+
                           (_parentPoint.y - _myPoint.y)*(_parentPoint.y - _myPoint.y));
    if (diffValue < diffR) {
        _collistionFlag = true;
        if (_preState == false) {
            _startTime = ofGetElapsedTimeMillis();
        }
    } else {
        _collistionFlag = false;
        _menuSelected = false;
        _startTime = 0;
        _continueTime = 0;
    }
    
    measureTime();
}
task main()
{
	clearTimer(T1);
	wait1Msec(200);
	SensorType[left] 		= testSensorType;
	SensorType[middle] 	= testSensorType;
	SensorType[right] 	= testSensorType;
	bFloatConversionErrors = false;

	for (TInstructions index = typeIdleLoop; index < typeLast; ++index)
	{
	  nElapsedTime[index] = 0.0;
  }


	//memset(nElapsedTime, 0, sizeof(nElapsedTime));

	clearTimer(T1);
	while (true)
	{
	  measureTime(typeIdleLoop);
		measureTime(typeAlive);

		measureTime(typeIntegerAssignConstant);
		measureTime(typeIntegerAddConstant);
		measureTime(typeIntegerAssignVariable);
		measureTime(typeIntegerAssignIndexed);
		measureTime(typeIntegerAddVariable);
		measureTime(typeIntegerAssignSensor);

		measureTime(typeLongAssignConstant);
		measureTime(typeLongAssignVariable);
		measureTime(typeLongAssignIndexed);
		measureTime(typeLongAddConstant);
		measureTime(typeLongAddVariable);
		measureTime(typeLongTimes);

		measureTime(typeFloatAssignConstant);
		measureTime(typeFloatAssignVariable);
		measureTime(typeFloatAddConstant);
		measureTime(typeFloatAddVariable);
		measureTime(typeFloatTimes);
	#if defined(hasTranscendentalSupport)
		measureTime(typeSine);
		measureTime(typeCosine);
	#endif

		measureTime(typeLogical);

		measureTime(typeTrinaryAdd);
		measureTime(typeTrinaryAddConstant1);
		measureTime(typeTrinaryAddConstant2);

	#if defined(NXT) || defined(TETRIX)
		measureTime(typeClearScreen);
		measureTime(typeClearPixel);
		measureTime(typeRectangleDraw);
		measureTime(typeRectangleErase);
		measureTime(typeRectangleFill);
		//measureTime(typeIOMapRead);
	#endif


		playSound(soundBeepBeep);
	}
	return;
}
/* yj: Added MultiSliceFlag for multi-slice decoding */
OMX_BOOL AvcDecoder_OMX::AvcDecodeVideo_OMX(
							OMX_U8** 	aOutBuf, 
							OMX_U32* 	aOutBufSize,
							OMX_TICKS* 	aOutTimestamp,
        					OMX_U8** 	aInBuf, 
							OMX_U32* 	aInBufSize,
							OMX_TICKS*	aInTimestamp,
        					OMX_PARAM_PORTDEFINITIONTYPE* aPortParam,
        					OMX_S32* 	iFrameCount, 
							OMX_BOOL 	aMarkerFlag, 
							OMX_BOOL 	*aResizeFlag,
							OMX_BOOL	MultiSliceFlag)
{
    OMX_BOOL Status = OMX_TRUE;
	int ret = 0;

	unsigned char*	pNalBuffer	= *aInBuf;
	int 			NalSize		= *aInBufSize;

	// RainAde for thumbnail
	//*aInBufSize  = 0;
    *aResizeFlag = OMX_FALSE;

#ifdef MFC_FPS
	gettimeofday(&start, NULL);
	decode_cnt++;
#endif

	ret = mfc_dec_slice(pNalBuffer, NalSize, MultiSliceFlag);

	switch(ret)
	{
		case -1 :
		{
			Status = OMX_FALSE;
			LOGE("mfc_dec_slice fail\n");
			break;
		}
		case 0:
		{
#ifdef MFC_FPS
			need_cnt++;
#endif
			Status = OMX_TRUE;
	        // RainAde for thumbnail
			*aInBufSize  = 0;
			break;
		}
		case 1 :
		{
#ifdef MFC_FPS
			gettimeofday(&stop, NULL);
			time += measureTime(&start, &stop);
			frame_cnt++;
#endif

			if(aPortParam->format.video.nFrameWidth  != (unsigned int)iDisplay_Width
			|| aPortParam->format.video.nFrameHeight != (unsigned int)iDisplay_Height)
			{
				LOGV("iDisplay_Width : %d\n", (int)iDisplay_Width);
				LOGV("iDisplay_Height: %d\n", (int)iDisplay_Height);

				if(iDisplay_Width > 720)
				{
					Status = OMX_FALSE;
					break;
				}
					
				aPortParam->format.video.nFrameWidth  = iDisplay_Width;
				aPortParam->format.video.nFrameHeight = iDisplay_Height;

				*aResizeFlag = OMX_TRUE;
				Status = OMX_TRUE;
				break;
			}
				
			if(AddTimestamp(aInTimestamp) == OMX_FALSE)
			{
				LOGE("AddTimestamp fail\n");
			    return OMX_FALSE;
			}
			
			if(GetYuv(aOutBuf, aOutBufSize, aOutTimestamp) == OMX_FALSE)
			{
				Status = OMX_FALSE;
				break;
			}

			(*iFrameCount)++;
							
			Status = OMX_TRUE;
	        // RainAde for thumbnail
			*aInBufSize  = 0;
			break;
		}
		default :
		{
			Status = OMX_FALSE;
			LOGE("UnExpected Operation\n");
			break;
		}
	}

	if(Status == OMX_FALSE)
	{
		*iFrameCount = 0;
		*aOutBufSize = 0;

		return OMX_FALSE;
	}

	return OMX_TRUE;
}
示例#9
0
int Test_Decoder_Ring_Buffer(int argc, char **argv)
{
	void	*handle;
	void	*pStrmBuf;
	long	nStrmSize;
	int		nReadLeng;
	long	nYUVLeng;
	int		in_fd, out_fd;
	char	*in_addr;
	int		cnt = 1;
	int		file_size;
	int		remain;
	struct stat		s;
	unsigned char	*pYUVBuf;
	SSBSIP_MFC_STREAM_INFO  stream_info;

#ifdef FPS
	struct timeval	start, stop;
	unsigned int	time = 0;
	int				frame_cnt = 0;
#endif

#ifdef ROTATE_ENABLE
	int				rotation_value;
#endif

	if (argc != 3) {
		printf("Usage : mfc <input file name> <output filename>\n");
		return -1;
	}
	
	///////////////////////////////////
	// Input/Output Stream File Open //
	///////////////////////////////////
	in_fd	= open(argv[1], O_RDONLY);
	out_fd	= open(argv[2], O_RDWR | O_CREAT | O_TRUNC, 0644);
	if( (in_fd < 0) || (out_fd < 0) ) {
		LOG_MSG(LOG_ERROR, "Test_Decoder_Ring_Buffer", "Input/Output file open failed\n");
		return -1;
	}

	// get input file size
	fstat(in_fd, &s);
	file_size = s.st_size;

	// Input file should be mapped with memory. 
	// because file operations have a lot of performance down.
	// So, I Strongly recommend you to use mmap() of input file.
	in_addr = (char *)mmap(0, file_size, PROT_READ, MAP_SHARED, in_fd, 0);
	if(in_addr == NULL) {
		LOG_MSG(LOG_ERROR, "Test_Decoder_Ring_Buffer", "Mmap of Input file was failed\n");
		return -1;
	}

	LOG_MSG(LOG_TRACE, "Test_Decoder_Ring_Buffer", "###  Start Decoding\n");

	/////////////////////////////////////
	///    1. Create new instance     ///
	///      (SsbSipMfcDecodeInit)    ///
	/////////////////////////////////////
	handle = SsbSipMfcDecodeInit(SSBSIPMFCDEC_H264);
	if (handle == NULL) {
		LOG_MSG(LOG_ERROR, "Test_Decoder_Ring_Buffer", "SsbSipMfcDecodeInit Failed.\n");
		return -1;

	}

	////////////////////////////////////////////
	///    2. Obtaining the Input Buffer     ///
	///      (SsbSipMfcDecodeGetInBuf)       ///
	////////////////////////////////////////////
	pStrmBuf = SsbSipMfcDecodeGetInBuf(handle, &nStrmSize);
	if (pStrmBuf == NULL) {
		LOG_MSG(LOG_ERROR, "Test_Decoder_Ring_Buffer", "SsbSipMfcDecodeGetInBuf Failed.\n");
		SsbSipMfcDecodeDeInit(handle);
		return -1;
	}
	LOG_MSG(LOG_ERROR, "Test_Decoder_Ring_Buffer", "XXXX  pStrmBuf =0x%X.\n", pStrmBuf);


	/////////////////////////////////////////////
	//   Read Video Stream from File           //
	//   (Size of reading is returned          //
	//    by SsbSipMfcDecodeGetInBuf() call)   //
	/////////////////////////////////////////////
	remain = file_size;
	memcpy(pStrmBuf, in_addr, nStrmSize);
	remain -= nStrmSize;
	LOG_MSG(LOG_TRACE, "Test_Decoder_Ring_Buffer", "remain = %d\n", remain);

	////////////////////////////////////
	//	Rotation Test				  //
	////////////////////////////////////
#ifdef ROTATE_ENABLE
	rotation_value = 0x11;
	SsbSipMfcDecodeSetConfig(handle, MFC_DEC_SETCONF_POST_ROTATE, &rotation_value);
#endif

	////////////////////////////////////////////////////////////////
	///    3. Configuring the instance with the config stream    ///
	///       (SsbSipMfcDecodeExe)                             ///
	////////////////////////////////////////////////////////////////
	if (SsbSipMfcDecodeExe(handle, nStrmSize) != SSBSIP_MFC_DEC_RET_OK) {
		LOG_MSG(LOG_TRACE, "Test_Decoder_Ring_Buffer", "MFC Decoder(RING_BUF mode) Configuration Failed.\n");
		return -1;
	}


	/////////////////////////////////////
	///   4. Get stream information   ///
	/////////////////////////////////////
	SsbSipMfcDecodeGetConfig(handle, MFC_DEC_GETCONF_STREAMINFO, &stream_info);

	LOG_MSG(LOG_TRACE, "Test_Decoder_Ring_Buffer", 	\
		"\t<STREAMINFO> width=%d   height=%d    buf_width=%d    buf_height=%d.\n",	\
		stream_info.width, stream_info.height, stream_info.buf_width, stream_info.buf_height);

	while(1) {

		////////////////////////////////////////////
		///    5. Obtaining the Input Buffer     ///
		///      (SsbSipMfcDecodeGetInBuf)       ///
		////////////////////////////////////////////
		pStrmBuf = SsbSipMfcDecodeGetInBuf(handle, &nStrmSize);


		//////////////////////////////////////////////////
		///   Fill the Input Buffer only if required.  ///
		//////////////////////////////////////////////////
		if (nStrmSize > 0) {
			if (remain >= nStrmSize) {
				//printf("\n##################################");
				//printf("\n#   READING ONE UNIT FROM FILE   #");
				//printf("\n##################################\n");

				cnt++;
				memcpy(pStrmBuf, in_addr + (cnt * nStrmSize), nStrmSize);
				remain -= nStrmSize;
				nReadLeng = nStrmSize;
			}
			else {
				//printf("\n##########################################");
				//printf("\n##    READING THE LAST BLOCK OF FILE    ##");
				//printf("\n##########################################");

				cnt++;
				memcpy(pStrmBuf, in_addr + (cnt * nStrmSize), remain);
				nReadLeng = remain;
				remain = 0;
			}
		//	LOG_MSG(LOG_TRACE, "Test_Decoder_Ring_Buffer", "remain = %d\n", remain);
		}
		else {
			nReadLeng = 0;
		}

	#ifdef FPS
		gettimeofday(&start, NULL);
	#endif
	
		/////////////////////////////////
		///       6. DECODE           ///
		///    (SsbSipMfcDecodeExe)   ///
		/////////////////////////////////
		if (SsbSipMfcDecodeExe(handle, nReadLeng) != SSBSIP_MFC_DEC_RET_OK)
			break;

	#ifdef FPS
		gettimeofday(&stop, NULL);
		time += measureTime(&start, &stop);
		frame_cnt++;
	#endif
	
		/////////////////////////////////////////////
		///    7. Obtaining the Output Buffer     ///
		///      (SsbSipMfcDecodeGetOutBuf)       ///
		/////////////////////////////////////////////
		pYUVBuf = SsbSipMfcDecodeGetOutBuf(handle, &nYUVLeng);
	
	#ifndef FPS
		write(out_fd, pYUVBuf, (stream_info.buf_width * stream_info.buf_height * 3) >> 1);
	#endif
	}

#ifdef FPS
	LOG_MSG(LOG_TRACE, "Test_Decoder_Ring_Buffer", 	\
		"Decoding Time : %u, Frame Count : %d, FPS : %f\n", time, frame_cnt, (float)frame_cnt*1000/time);
#endif

	//////////////////////////////////////
	///    8. SsbSipMfcDecodeDeInit    ///
	//////////////////////////////////////
	SsbSipMfcDecodeDeInit(handle);
	munmap(in_addr, file_size);

	LOG_MSG(LOG_TRACE, "Test_Decoder_Ring_Buffer", "\n\n@@@ Program ends.\n");

	close(in_fd);
	close(out_fd);

	return 0;
}
示例#10
0
int Test_Encoder(int argc, char **argv)
{
	int			dev_fd, in_fd, out_fd;
	char		*addr, *in_addr;
	int 		cnt = 0;
	int			file_size;
	int			frame_count;
	int			frame_size;
	char		*in_buf, *out_buf;
	struct stat	s;
	
	// arguments of ioctl
	MFC_ENC_INIT_ARG		enc_init;
	MFC_ENC_EXE_ARG			enc_exe;
	MFC_GET_BUF_ADDR_ARG	get_buf_addr;

#ifdef FPS
	struct timeval	start, stop;
	unsigned int	time = 0;
	int				frame_cnt = 0;
#endif

	if (argc != 8) {
		printf("Usage : mfc <YUV file name> <output filename> <width> <height> ");
		printf("<frame rate> <bitrate> <GOP number>\n");
		return -1;
	}

	// in/out file open
	in_fd	= open(argv[1], O_RDONLY);
	out_fd	= open(argv[2], O_RDWR | O_CREAT | O_TRUNC, 0644);
	if( (in_fd < 0) || (out_fd < 0) ) {
		printf("input/output file open error\n");
		return -1;
	}

	// get input file size
	fstat(in_fd, &s);
	file_size = s.st_size;
	
	// mapping input file to memory
	in_addr = (char *)mmap(0, file_size, PROT_READ, MAP_SHARED, in_fd, 0);
	if(in_addr == NULL) {
		printf("input file memory mapping failed\n");
		return -1;
	}

	// MFC open
	dev_fd = open(MFC_DEV_NAME, O_RDWR|O_NDELAY);
	if (dev_fd < 0) {
		printf("MFC open error : %d\n", dev_fd);
		return -1;
	}

	// mapping shared in/out buffer between App and D/D
	addr = (char *) mmap(0, 
			BUF_SIZE, 
			PROT_READ | PROT_WRITE,
			MAP_SHARED,
			dev_fd,
			0
			);
	if (addr == NULL) {
		printf("MFC mmap failed\n");
		return -1;
	}

	// Below ioctl function support multiple slice mode in H.263 encoding case only
	//ioctl(dev_fd, IOCTL_MFC_SET_H263_MULTIPLE_SLICE);

	// set encoding arguments
	enc_init.in_width			= atoi(argv[3]);
	enc_init.in_height			= atoi(argv[4]);
	enc_init.in_frameRateRes	= atoi(argv[5]);
	enc_init.in_frameRateDiv	= 0;
	enc_init.in_bitrate			= atoi(argv[6]);
	enc_init.in_gopNum			= atoi(argv[7]);
	

	ioctl(dev_fd, IOCTL_MFC_H263_ENC_INIT, &enc_init);

	frame_size	= (enc_init.in_width * enc_init.in_height * 3) >> 1;
	frame_count	= file_size / frame_size;

	// get input buffer address
	get_buf_addr.in_usr_data = (int)addr;
	ioctl(dev_fd, IOCTL_MFC_GET_FRAM_BUF_ADDR, &get_buf_addr);
	in_buf = (char *)get_buf_addr.out_buf_addr;

	// get output buffer address
	get_buf_addr.in_usr_data = (int)addr;
	ioctl(dev_fd, IOCTL_MFC_GET_LINE_BUF_ADDR, &get_buf_addr);
	out_buf = (char *)get_buf_addr.out_buf_addr;
	
	while(frame_count > 0) 
	{
		// copy YUV data into input buffer
		memcpy(in_buf, in_addr + frame_size * cnt, frame_size);

	#ifdef FPS
		gettimeofday(&start, NULL);
	#endif

		// encoding
		ioctl(dev_fd, IOCTL_MFC_H263_ENC_EXE, &enc_exe);
		if(enc_exe.ret_code != 0) {
			printf("ret code : %d\n", enc_exe.ret_code);
		}
	#ifdef FPS
		gettimeofday(&stop, NULL);
		time += measureTime(&start, &stop);
		frame_cnt++;
	#endif

	#ifndef FPS
		write(out_fd, out_buf, enc_exe.out_encoded_size);
	#endif
	
		frame_count--;
		cnt++;
	}

#ifdef FPS
	printf("Decoding Time : %u, Frame Count : %d, FPS : %f\n", time, frame_cnt, (float)frame_cnt*1000/time);
#endif

	close(dev_fd);
	close(in_fd);
	close(out_fd);
		
	return 0;
}
示例#11
0
文件: menu.c 项目: ninadpchaudhari/DS
void menu(void)
{
	int n=0;
	int num;
	int ch;
	int i;

	while(1)
	{
		printf("=========menu========= \n"); // 처음부터 보여질 메뉴
		printf("1. Factorial \n");
		printf("2. Fibo \n");
		printf("3. Hanoi Tower \n");
		printf("4. Performance test \n");
		printf("선택: "); // 사용자가 선택.
		scanf("%d", &n);

	
		switch(n)
		{
		case 1:
			printf("\n");
			printf("Factorial 숫자 입력: ");
			scanf("%d", &num);
			printf("%d! = %d \n", num, Factorial(num)); // 팩토리얼 함수 호출
			printf("\n\n\n");
			break;

		case 2:
			printf("\n");
		 	printf("Fibo 숫자 입력: ");
			scanf("%d", &num);
			for(i=1; i<num+1; i++)
			{
				ch = Fibo(i);
				printf("%d   ", ch);
			} // 반복문으로 피보나치 수열 출력
			printf("\n\n\n");
			break;

		case 3:
			printf("\n");
			printf("Honoi Tower 숫자 입력: ");
			scanf("%d", &num);
			Hanoi_Tower(num, 'A', 'B', 'C'); // 하노이타워 함수 호출
			printf("\n\n\n");
			break;

		case 4:
			printf("\n\n\n");
			while(1)
			{
			measureTime();   // 시간측정 함수 호출. 원래 메뉴 대신 시간측정 메뉴가 나온다.
			}
			break;

		default:
			printf("1~4까지 선택해주세요. \n"); // 사용자가 잘못 입력했을 경우.
			printf("\n\n");
		}
	}

	return ;
}
示例#12
0
int main()
{
  simpleUnitTest();
  measureTime();
  return 0;
}
示例#13
0
int Test_Display_VC1(int argc, char **argv)
{

	void			*pStrmBuf;
	int				nFrameLeng = 0;
	unsigned int	pYUVBuf[2];

	int             is_first;
	struct pollfd   test_fd;
	
	struct stat				s;
	MMAP_STRM_PTR 			file_strm;
	SSBSIP_H264_STREAM_INFO stream_info;	

	s3c_pp_params_t	pp_param;
	s3c_win_info_t	osd_info_to_driver;

	struct fb_fix_screeninfo	lcd_info;		

#ifdef FPS
	struct timeval	start, stop;
	unsigned int	time = 0;
	int				frame_cnt = 0;
#endif

	int r = 0;


	if(signal(SIGINT, sig_del_vc1) == SIG_ERR) {
		printf("Sinal Error\n");
	}

	if (argc != 3) {
		printf("Usage : #./mfc <file name> <run mode>\n");
		printf("   - <file name> : VC-1 file to be displayed.\n");
		printf("   - <run mode>  : 0 (PP DMA Mode), 1 (PP FIFO Mode)\n");
		return -1;
	}

	// in file open
	in_fd	= open(argv[1], O_RDONLY);
	if(in_fd < 0) {
		printf("Input file open failed\n");
		return -1;
	}

	// get input file size
	fstat(in_fd, &s);
	file_size = s.st_size;

	// mapping input file to memory
	in_addr = (char *)mmap(0, file_size, PROT_READ, MAP_SHARED, in_fd, 0);
	if(in_addr == NULL) {
		printf("input file memory mapping failed\n");
		return -1;
	}

	// Post processor open
	pp_fd = open(PP_DEV_NAME, O_RDWR|O_NONBLOCK);
	if(pp_fd < 0)
	{
		printf("Post processor open error\n");
		return -1;
	}

	// LCD frame buffer open
	fb_fd = open(FB_DEV_NAME, O_RDWR|O_NDELAY);
	if(fb_fd < 0)
	{
		printf("LCD frame buffer open error\n");
		return -1;
	}

	//////////////////////////////////////
	///    1. Create new instance      ///
	///      (SsbSipMPEG4DecodeInit)    ///
	//////////////////////////////////////
	handle = SsbSipVC1DecodeInit();
	if (handle == NULL) {
		printf("VC1_Dec_Init Failed.\n");
		return -1;
	}

	/////////////////////////////////////////////
	///    2. Obtaining the Input Buffer      ///
	///      (SsbSipMPEG4DecodeGetInBuf)       ///
	/////////////////////////////////////////////
	pStrmBuf = SsbSipVC1DecodeGetInBuf(handle, 200000);
	if (pStrmBuf == NULL) {
		printf("SsbSipVC1DecodeGetInBuf Failed.\n");
		SsbSipVC1DecodeDeInit(handle);
		return -1;
	}


	////////////////////////////////////
	//  MPEG4 CONFIG stream extraction //
	////////////////////////////////////
	file_strm.p_start = file_strm.p_cur = (unsigned char *)in_addr;
	file_strm.p_end = (unsigned char *)(in_addr + file_size);
	nFrameLeng = ExtractConfigStreamVC1(&file_strm, pStrmBuf, INPUT_BUFFER_SIZE, NULL);


	////////////////////////////////////////////////////////////////
	///    3. Configuring the instance with the config stream    ///
	///       (SsbSipMPEG4DecodeExe)                             ///
	////////////////////////////////////////////////////////////////
	r = SsbSipVC1DecodeExe(handle, nFrameLeng);
	if (r != SSBSIP_VC1_DEC_RET_OK) {
		printf("VC-1 Decoder Configuration Failed. : %d\n", r);
		return -1;
	}


	/////////////////////////////////////
	///   4. Get stream information   ///
	/////////////////////////////////////
	SsbSipVC1DecodeGetConfig(handle, VC1_DEC_GETCONF_STREAMINFO, &stream_info);

	printf("\t<STREAMINFO> width=%d   height=%d    buf_width=%d    buf_height=%d.\n", 	\
			stream_info.width, stream_info.height, stream_info.buf_width, stream_info.buf_height);


	// set post processor configuration
	pp_param.src_full_width	    = stream_info.buf_width;
	pp_param.src_full_height	= stream_info.buf_height;
	pp_param.src_start_x		= 0;
	pp_param.src_start_y		= 0;
	pp_param.src_width		    = pp_param.src_full_width;
	pp_param.src_height		    = pp_param.src_full_height;
	pp_param.src_color_space	= YC420;
	pp_param.dst_start_x		= 0;
	pp_param.dst_start_y		= 0;
	pp_param.dst_full_width	    = FB0_WIDTH;		// destination width
	pp_param.dst_full_height	= FB0_HEIGHT;		// destination height
	pp_param.dst_width		    = pp_param.dst_full_width;
	pp_param.dst_height		    = pp_param.dst_full_height;
	pp_param.dst_color_space	= FB0_COLOR_SPACE;

	if ( atoi (argv[2]) == 0 )
		pp_param.out_path           = DMA_ONESHOT;
	else {
		pp_param.out_path           = FIFO_FREERUN;
		pp_param.scan_mode			= PROGRESSIVE_MODE;	
	}
	
	ioctl(pp_fd, S3C_PP_SET_PARAMS, &pp_param);

	// get LCD frame buffer address
	fb_size = pp_param.dst_full_width * pp_param.dst_full_height * 2;	// RGB565
#ifdef RGB24BPP
	fb_size = pp_param.dst_full_width * pp_param.dst_full_height * 4;	// RGB888
#endif

	fb_addr = (char *)mmap(0, fb_size, PROT_READ | PROT_WRITE, MAP_SHARED, fb_fd, 0);
	if (fb_addr == NULL) {
		printf("LCD frame buffer mmap failed\n");
		return -1;
	}

	osd_info_to_driver.Bpp			= FB0_BPP;	// RGB16
	osd_info_to_driver.LeftTop_x	= 0;	
	osd_info_to_driver.LeftTop_y	= 0;
	osd_info_to_driver.Width		= FB0_WIDTH;	// display width
	osd_info_to_driver.Height		= FB0_HEIGHT;	// display height

	// set OSD's information 
	if(ioctl(fb_fd, SET_OSD_INFO, &osd_info_to_driver)) {
		printf("Some problem with the ioctl SET_OSD_INFO\n");
		return -1;
	}

	ioctl(fb_fd, SET_OSD_START);


	if ( FIFO_FREERUN == pp_param.out_path )
	{
		is_first = 1;
	}


	while(1)
	{

#ifdef FPS
		gettimeofday(&start, NULL);
#endif

		//////////////////////////////////
		///       5. DECODE            ///
		///    (SsbSipMPEG4DecodeExe)   ///
		//////////////////////////////////
		if (SsbSipVC1DecodeExe(handle, nFrameLeng) != SSBSIP_VC1_DEC_RET_OK)
			break;


		//////////////////////////////////////////////
		///    6. Obtaining the Output Buffer      ///
		///      (SsbSipMPEG4DecodeGetOutBuf)       ///
		//////////////////////////////////////////////
		SsbSipVC1DecodeGetConfig(handle, VC1_DEC_GETCONF_PHYADDR_FRAM_BUF, pYUVBuf);


		/////////////////////////////
		// Next MPEG4 VIDEO stream //
		/////////////////////////////
		nFrameLeng = NextFrameVC1(&file_strm, pStrmBuf, INPUT_BUFFER_SIZE, NULL);

		if (nFrameLeng < 4)
			break;

		// Post processing
		// pp_param.SrcFrmSt에는 MFC의 output buffer의 physical address가
		// pp_param.DstFrmSt에는 LCD frame buffer의 physical address가 입력으로 넣어야 한다.
		if ( FIFO_FREERUN == pp_param.out_path )
		{
			if ( is_first )
			{
				pp_param.src_buf_addr_phy = pYUVBuf[0];

				ioctl(pp_fd, S3C_PP_SET_SRC_BUF_ADDR_PHY, &pp_param);
				ioctl(pp_fd, S3C_PP_START);  

				is_first = 0;
			}
			else
			{
				pp_param.src_next_buf_addr_phy = pYUVBuf[0];

				ioctl(pp_fd, S3C_PP_SET_SRC_BUF_NEXT_ADDR_PHY, &pp_param);
			}
		}
		else
		{
			pp_param.src_buf_addr_phy = pYUVBuf[0];
			ioctl(pp_fd, S3C_PP_SET_SRC_BUF_ADDR_PHY, &pp_param);

			ioctl(fb_fd, FBIOGET_FSCREENINFO, &lcd_info);
			pp_param.dst_buf_addr_phy		= lcd_info.smem_start;			// LCD frame buffer
			ioctl(pp_fd, S3C_PP_SET_DST_BUF_ADDR_PHY, &pp_param);

			test_fd.fd = pp_fd;
			test_fd.events = POLLOUT|POLLERR;
			poll(&test_fd, 1, 3000);

			ioctl(pp_fd, S3C_PP_START);
		}

#ifdef FPS
		gettimeofday(&stop, NULL);
		time += measureTime(&start, &stop);
		frame_cnt++;
#endif

	}

#ifdef FPS
	printf("Display Time : %u, Frame Count : %d, FPS : %f\n", time, frame_cnt, (float)frame_cnt*1000/time);
#endif

	SsbSipVC1DecodeDeInit(handle);

	munmap(in_addr, file_size);
	munmap(fb_addr, fb_size);
	close(pp_fd);
	close(fb_fd);
	close(in_fd);

	return 0;
}
示例#14
0
void doSearchTracks(struct group *groupList)
{
webIncludeResourceFile("ui.dropdownchecklist.css");
jsIncludeFile("ui.dropdownchecklist.js",NULL);
// This line is needed to get the multi-selects initialized
jsIncludeFile("ddcl.js",NULL);

struct group *group;
char *groups[128];
char *labels[128];
int numGroups = 1;
groups[0] = ANYLABEL;
labels[0] = ANYLABEL;
char *nameSearch  = cartOptionalString(cart, TRACK_SEARCH_ON_NAME);
char *typeSearch  = cartUsualString(   cart, TRACK_SEARCH_ON_TYPE,ANYLABEL);
char *simpleEntry = cartOptionalString(cart, TRACK_SEARCH_SIMPLE);
char *descSearch  = cartOptionalString(cart, TRACK_SEARCH_ON_DESCR);
char *groupSearch = cartUsualString(  cart, TRACK_SEARCH_ON_GROUP,ANYLABEL);
boolean doSearch = sameString(cartOptionalString(cart, TRACK_SEARCH), "Search")
                   || cartUsualInt(cart, TRACK_SEARCH_PAGER, -1) >= 0;
struct sqlConnection *conn = hAllocConn(database);
boolean metaDbExists = sqlTableExists(conn, "metaDb");
int tracksFound = 0;
boolean searchTermsExist = FALSE;
int cols;
char buf[512];

char *currentTab = cartUsualString(cart, TRACK_SEARCH_CURRENT_TAB, "simpleTab");
enum searchTab selectedTab = (sameString(currentTab, "advancedTab") ? advancedTab : simpleTab);

// NOTE: could support quotes in simple tab by detecting quotes and choosing
//       to use doesNameMatch() || doesDescriptionMatch()
if (selectedTab == simpleTab && !isEmpty(simpleEntry))
    stripChar(simpleEntry, '"');
trackList = getTrackList(&groupList, -2); // global
makeGlobalTrackHash(trackList);

// NOTE: This is necessary when container cfg by '*' results in vis changes
// This will handle composite/view override when subtrack specific vis exists,
// AND superTrack reshaping.

// Subtrack settings must be removed when composite/view settings are updated
parentChildCartCleanup(trackList,cart,oldVars);

slSort(&groupList, gCmpGroup);
for (group = groupList; group != NULL; group = group->next)
    {
    groupTrackListAddSuper(cart, group);
    if (group->trackList != NULL)
        {
        groups[numGroups] = cloneString(group->name);
        labels[numGroups] = cloneString(group->label);
        numGroups++;
        if (numGroups >= ArraySize(groups))
            internalErr();
        }
    }

safef(buf, sizeof(buf),"Search for Tracks in the %s %s Assembly",
      organism, hFreezeFromDb(database));
webStartWrapperDetailedNoArgs(cart, database, "", buf, FALSE, FALSE, FALSE, FALSE);

hPrintf("<div style='max-width:1080px;'>");
hPrintf("<form action='%s' name='%s' id='%s' method='get'>\n\n",
        hgTracksName(),TRACK_SEARCH_FORM,TRACK_SEARCH_FORM);
cartSaveSession(cart);  // Creates hidden var of hgsid to avoid bad voodoo
safef(buf, sizeof(buf), "%lu", clock1());
cgiMakeHiddenVar("hgt_", buf);  // timestamps page to avoid browser cache


hPrintf("<input type='hidden' name='db' value='%s'>\n", database);
hPrintf("<input type='hidden' name='%s' id='currentTab' value='%s'>\n",
        TRACK_SEARCH_CURRENT_TAB, currentTab);
hPrintf("<input type='hidden' name='%s' value=''>\n",TRACK_SEARCH_DEL_ROW);
hPrintf("<input type='hidden' name='%s' value=''>\n",TRACK_SEARCH_ADD_ROW);
hPrintf("<input type='hidden' name='%s' value=''>\n",TRACK_SEARCH_PAGER);

hPrintf("<div id='tabs' style='display:none; %s'>\n<ul>\n<li><a href='#simpleTab'>"
        "<B style='font-size:.9em;font-family: arial, Geneva, Helvetica, san-serif;'>Search</B>"
        "</a></li>\n<li><a href='#advancedTab'>"
        "<B style='font-size:.9em;font-family: arial, Geneva, Helvetica, san-serif;'>Advanced</B>"
        "</a></li>\n</ul>\n<div id='simpleTab' style='max-width:inherit;'>\n",
        cgiBrowser()==btIE?"width:1060px;":"max-width:inherit;");

hPrintf("<table id='simpleTable' style='width:100%%; font-size:.9em;'><tr><td colspan='2'>");
hPrintf("<input type='text' name='%s' id='simpleSearch' class='submitOnEnter' value='%s' "
        "style='max-width:1000px; width:100%%;' onkeyup='findTracks.searchButtonsEnable(true);'>\n",
        TRACK_SEARCH_SIMPLE,simpleEntry == NULL ? "" : simpleEntry);
if (selectedTab==simpleTab && simpleEntry)
    searchTermsExist = TRUE;

hPrintf("</td></tr><td style='max-height:4px;'></td></tr></table>");
//hPrintf("</td></tr></table>");
hPrintf("<input type='submit' name='%s' id='searchSubmit' value='search' "
        "style='font-size:.8em;'>\n", TRACK_SEARCH);
hPrintf("<input type='button' name='clear' value='clear' class='clear' "
        "style='font-size:.8em;' onclick='findTracks.clear();'>\n");
hPrintf("<input type='submit' name='submit' value='cancel' class='cancel' "
        "style='font-size:.8em;'>\n");
hPrintf("</div>\n");

// Advanced tab
hPrintf("<div id='advancedTab' style='width:inherit;'>\n"
        "<table id='advancedTable' cellSpacing=0 style='width:inherit; font-size:.9em;'>\n");
cols = 8;

// Track Name contains
hPrintf("<tr><td colspan=3></td>");
hPrintf("<td nowrap><b style='max-width:100px;'>Track&nbsp;Name:</b></td>");
hPrintf("<td align='right'>contains</td>\n");
hPrintf("<td colspan='%d'>", cols - 4);
hPrintf("<input type='text' name='%s' id='nameSearch' class='submitOnEnter' value='%s' "
        "onkeyup='findTracks.searchButtonsEnable(true);' style='min-width:326px; font-size:.9em;'>",
        TRACK_SEARCH_ON_NAME, nameSearch == NULL ? "" : nameSearch);
hPrintf("</td></tr>\n");

// Description contains
hPrintf("<tr><td colspan=2></td><td align='right'>and&nbsp;</td>");
hPrintf("<td><b style='max-width:100px;'>Description:</b></td>");
hPrintf("<td align='right'>contains</td>\n");
hPrintf("<td colspan='%d'>", cols - 4);
hPrintf("<input type='text' name='%s' id='descSearch' value='%s' class='submitOnEnter' "
        "onkeyup='findTracks.searchButtonsEnable(true);' "
        "style='max-width:536px; width:536px; font-size:.9em;'>",
        TRACK_SEARCH_ON_DESCR, descSearch == NULL ? "" : descSearch);
hPrintf("</td></tr>\n");
if (selectedTab==advancedTab && !isEmpty(descSearch))
    searchTermsExist = TRUE;

hPrintf("<tr><td colspan=2></td><td align='right'>and&nbsp;</td>\n");
hPrintf("<td><b style='max-width:100px;'>Group:</b></td>");
hPrintf("<td align='right'>is</td>\n");
hPrintf("<td colspan='%d'>", cols - 4);
cgiMakeDropListFull(TRACK_SEARCH_ON_GROUP, labels, groups, numGroups, groupSearch,
                    "class='groupSearch' style='min-width:40%; font-size:.9em;'");
hPrintf("</td></tr>\n");
if (selectedTab==advancedTab && !isEmpty(groupSearch) && !sameString(groupSearch,ANYLABEL))
    searchTermsExist = TRUE;

// Track Type is (drop down)
hPrintf("<tr><td colspan=2></td><td align='right'>and&nbsp;</td>\n");
hPrintf("<td nowrap><b style='max-width:100px;'>Data Format:</b></td>");
hPrintf("<td align='right'>is</td>\n");
hPrintf("<td colspan='%d'>", cols - 4);
char **formatTypes = NULL;
char **formatLabels = NULL;
int formatCount = getFormatTypes(&formatLabels, &formatTypes);
cgiMakeDropListFull(TRACK_SEARCH_ON_TYPE, formatLabels, formatTypes, formatCount, typeSearch,
                    "class='typeSearch' style='min-width:40%; font-size:.9em;'");
hPrintf("</td></tr>\n");
if (selectedTab==advancedTab && !isEmpty(typeSearch) && !sameString(typeSearch,ANYLABEL))
    searchTermsExist = TRUE;

// mdb selects
struct slPair *mdbSelects = NULL;
if (metaDbExists)
    {
    struct slPair *mdbVars = mdbVarsSearchable(conn,TRUE,FALSE); // Tables but not file only objects
    mdbSelects = mdbSelectPairs(cart, mdbVars);
    char *output = mdbSelectsHtmlRows(conn,mdbSelects,mdbVars,cols,FALSE);  // not a fileSearch
    if (output)
        {
        puts(output);
        freeMem(output);
        }
    slPairFreeList(&mdbVars);
    }

hPrintf("</table>\n");
hPrintf("<input type='submit' name='%s' id='searchSubmit' value='search' "
        "style='font-size:.8em;'>\n", TRACK_SEARCH);
hPrintf("<input type='button' name='clear' value='clear' class='clear' "
        "style='font-size:.8em;' onclick='findTracks.clear();'>\n");
hPrintf("<input type='submit' name='submit' value='cancel' class='cancel' "
        "style='font-size:.8em;'>\n");
//hPrintf("<a target='_blank' href='../goldenPath/help/trackSearch.html'>help</a>\n");
hPrintf("</div>\n");

hPrintf("</div>\n");

hPrintf("</form>\n");
hPrintf("</div>"); // Restricts to max-width:1000px;
cgiDown(0.8);

if (measureTiming)
    measureTime("Rendered tabs");

if (doSearch)
    {
    // Now search
    struct slRef *tracks = NULL;
    if (selectedTab==simpleTab && !isEmpty(simpleEntry))
        tracks = simpleSearchForTracksstruct(simpleEntry);
    else if (selectedTab==advancedTab)
        tracks = advancedSearchForTracks(conn,groupList,nameSearch,typeSearch,descSearch,
                                         groupSearch,mdbSelects);

    if (measureTiming)
        measureTime("Searched for tracks");

    // Sort and Print results
    if (selectedTab!=filesTab)
        {
        enum sortBy sortBy = cartUsualInt(cart,TRACK_SEARCH_SORT,sbRelevance);
        tracksFound = slCount(tracks);
        if (tracksFound > 1)
            findTracksSort(&tracks,sortBy);

        displayFoundTracks(cart,tracks,tracksFound,sortBy);

        if (measureTiming)
            measureTime("Displayed found tracks");
        }
    slPairFreeList(&mdbSelects);
    }
hFreeConn(&conn);

webNewSection("About Track Search");
if (metaDbExists)
    hPrintf("<p>Search for terms in track names, descriptions, groups, and ENCODE "
            "metadata.  If multiple terms are entered, only tracks with all terms "
            "will be part of the results.");
else
    hPrintf("<p>Search for terms in track descriptions, groups, and names. "
            "If multiple terms are entered, only tracks with all terms "
            "will be part of the results.");

hPrintf("<BR><a target='_blank' href='../goldenPath/help/trackSearch.html'>more help</a></p>\n");
webEndSectionTables();
}