⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 davp_argcv1.c

📁 ZPAV (H265) pnxNNNN(PHILIPS) demo ZPAV (H265) 是 音视频 压缩解压 协议
💻 C
字号:

/*
///////////////////////////////////////////////////////////////////////////////
//                                                                           //
//   Copyright (C) 2006-2008  Beijing,  pengzhen (pengzhenxp@yahoo.com.cn)   //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////
*/

/**
* set video (default) parameter
*/

void set_video_default_parameter(dvp_ctx * lp_dvp)
{
	
	lp_dvp->wavelets = 0  ; /* wavelets */ /* 0 : w1, 1 : w2 */
	//lp_dvp->wavelets = 1  ; /* wavelets */ /* 0 : w1, 1 : w2 */

	lp_dvp->width  = 352 ; /* 352 */ /* picture width. (must be a multiple of 32) */  /* CIF, D1, HD */
	lp_dvp->height = 288 ; /* 288 */ /* picture height. (must be a multiple of 32) */ /* CIF, D1, HD */

	lp_dvp->fps  = 25 ;       /* frames/second */ /* <25,30> */ 
	lp_dvp->bps  = 300*1000 ; /* bits/second */ /* <300*1000> */
	
	lp_dvp->insert_i = 1 ; /* insert picture 'I' */ /* insert 'I', if insert_i = 1 */
	lp_dvp->have_b   = 1 ; /* have picture 'B' */   /* none 'B',   if have_b = 0 */
	
	lp_dvp->me_c = 0 ; /* chroma join motion_estimate (ME) */ /* 0 : no, 1 : yes */
	lp_dvp->ms_t = 0 ; /* motion_search type */ /* 0 : diamond, 1 : advance diamond, 2 : small diamond, 3 : square,*/

	lp_dvp->abr   = 0 ; /* adaptive bit rate */ /* 0 : CBR, 1 : ABR */ 
	//lp_dvp->ratio = 1 ; /* ratio of background to foreground */ /* none background, if ratio = 0 */

	lp_dvp->gop = 512 ;  /* group of picture */   /* only 'I',   if gop = 0 */ 

	lp_dvp->prp = 3 ; /* previous process */ /* <0,1,2,3> */
	lp_dvp->pop = 3 ; /* post process */ /* <0,1,2,3> */

	lp_dvp->bands = 2 ; /* wavelets bands */ /* <1,2,3,4> */ 

}

/**
* get video parameter
*/

void get_video_parameter(dvp_ctx * lp_dvp , int argc, char **argv)
{

    int mark = 1 ; int value = 0 ;
	
	set_video_default_parameter( lp_dvp ) ;

    argc-- ; /* skip name */
    while (argc > 0) 
	{

		if ( get_parameter_flag("-wavelets") ) 
		{
            get_parameter_next() ; /* next */
			get_parameter_read() ; 
			
			if( (value==0) | (value==1) ) lp_dvp->wavelets = value ; /* wavelets */ /* 0 : w1, 1 : w2 */

        }

		else if ( get_parameter_flag("-frame_size") ) 
		{
			char *arg_bak ; int width , height ; 
			
			get_parameter_next() ; /* next */
			//get_parameter_read() ;
			
			arg_bak = argv[mark]; 
			width = (int)strtol(arg_bak, (char **)&arg_bak, 10) ; /* width */
			arg_bak +=  (arg_bak != NULL )  ;
			height = (int)strtol(arg_bak, (char **)&arg_bak, 10) ; /* height */

			width = (width >>4) << 4 ; 
			height = (height >>4) << 4 ; 

			lp_dvp->width = width ; /* picture width. (must be a multiple of 16) */ /* 352 */   /* CIF, D1, HD */
			lp_dvp->height = height ; /* picture height. (must be a multiple of 16) */ /* 288 */ /* CIF, D1, HD */
			
        }

		else if ( get_parameter_flag("-fps") ) 
		{
            get_parameter_next() ; /* next */
			//get_parameter_read() ; 
			value = (int)( strtod( argv[mark], 0 ) );
			
			if( (value == 50) | (value == 60) |
				(value == 25) | (value == 30) |
				((value >= 1) & (value <= 24)) )
			{
				lp_dvp->fps = value ; /* frames/second */ /* 25, 30 */ /* 25 */
			}
			
        }

		else if ( get_parameter_flag("-bps") ) 
		{
            get_parameter_next() ; /* next */
			get_parameter_read() ; 
			
			/* bits/second */ /* 50 ~~~ 10k kbit/second */ /* <300*1000> */

			if( (value >= 30) & (value <= 10*1000) ) lp_dvp->bps = value * 1000 ; /* KB */

        }

		else if ( get_parameter_flag("-gop") ) 
		{
            get_parameter_next() ; /* next */
			get_parameter_read() ;

			if( value >= 0 ) lp_dvp->gop = value ; /* group of picture */   /* none 'P',   if gop = 0 */ 

        }

		else if ( get_parameter_flag("-have_b") ) 
		{
            get_parameter_next() ; /* next */
			get_parameter_read() ; 
			
			lp_dvp->have_b = value & 0x01 ; /* have picture 'B' */   /* none 'B',   if have_b = 0 */

        }

		else if ( get_parameter_flag("-abr") ) 
		{
            get_parameter_next() ; /* next */
			get_parameter_read() ; 
			
			lp_dvp->abr = value & 0x01 ; /* adaptive bit rate */ /* 0 : CBR, 1 : ABR */

        }

		else if ( get_parameter_flag("-me_c") ) 
		{
            get_parameter_next() ; /* next */
			get_parameter_read() ; 
			
			lp_dvp->me_c = value & 0x01 ; /* chroma join motion_estimate (ME) */ /* 0 : no, 1 : yes */

        }

		else if ( get_parameter_flag("-ms_t") ) 
		{
            get_parameter_next() ; /* next */
			get_parameter_read() ; 
			
			/* motion_search type */ /* 0 : diamond, 1 : advance diamond, 2 : small diamond, 3 : square,*/

			if( (value >= 0) & (value < 4) ) lp_dvp->ms_t = value ; 

        }

		else if ( get_parameter_flag("-prp") ) 
		{
            get_parameter_next() ; /* next */
			get_parameter_read() ; 
			
			if( (value >= 0) & (value < 4) ) lp_dvp->prp = value ; /* previous process */ /* <0,1,2,3> */

        }

		else if ( get_parameter_flag("-pop") ) 
		{
            get_parameter_next() ; /* next */
			get_parameter_read() ; 
			
			if( (value >= 0) & (value < 4) ) lp_dvp->pop = value ; /* post process */ /* <0,1,2,3> */

        }

        get_parameter_next() /* next */

	}

}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -