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

📄 al576ctl.cpp

📁 Averlogic AL576芯片MPEG4压缩示例源程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	{
			AL576_RegWrite(hAL576, 0x20a4, ResReg[Al576_MPEG_Seting->Res][0]);
			Sleep(50);
			AL576_RegWrite(hAL576, 0x20ac, ResReg[Al576_MPEG_Seting->Res][1]);
			Sleep(50);
			AL576_RegWrite(hAL576, 0x20b4, ResReg[Al576_MPEG_Seting->Res][2]);
			Sleep(50);
			AL576_RegWrite(hAL576, 0x20bc, ResReg[Al576_MPEG_Seting->Res][3] + 8);
			Sleep(50);
			AL576_RegWrite(hAL576, 0x2000, 0x0d01);
			Sleep(50);

	}
}


void CPlayDMODlg::Set_AL576_Command(HANDLE hAL576,Commamd_Ptr Parameter)
{
	AL576_MemWrite(hAL576, 0x80,Parameter->Command);
	Sleep(50);

	AL576_MemWrite(hAL576, 0x84,Parameter->P1);
	Sleep(50);

	if(Parameter->P_Num >= 2)
	{
		AL576_MemWrite(hAL576, 0x88,Parameter->P2);
		Sleep(50);
	}

	if(Parameter->P_Num >= 3)
	{
		AL576_MemWrite(hAL576, 0x8c,Parameter->P3);
		Sleep(50);
	}

	if(Parameter->P_Num >= 4)
	{
		AL576_MemWrite(hAL576, 0x90,Parameter->P4);
		Sleep(50);
	}

	AL576_RegWrite(hAL576, 0x1C74,0x1);
	Sleep(50);
}

void CPlayDMODlg::Set_AL242_Reg(HANDLE hAL576,UINT iAddr,UINT iData)
{
	UINT Result;

	iAddr = iAddr << 16;
	iData = iData << 8;
	Result = iAddr | iData | 0x2a000001;

	AL576_RegWrite(hAL576, 0x1c60, Result);
	Sleep(100);

}

UINT CPlayDMODlg::Get_AL242_Reg(HANDLE hAL576,UINT iAddr)
{
	UINT Result;

	iAddr = (iAddr << 16) | 0x2b000001;

	AL576_RegWrite(hAL576, 0x1c60, iAddr);
	Sleep(50);

	Result = AL576_RegRead(hAL576,0x1c60);
	Sleep(50);

	Result = (Result >> 8) & 0x000000ff;

	return Result;
}

UINT CPlayDMODlg::Read_ProfileString(HANDLE hAL576,UINT nVideo_input,UINT nVideo_format,AL576_MPEG_SET_Ptr Al576_MPEG_Seting)
{
	char szBuf[8];

	//Select Video Input
	GetProfileString(TEXT("annie"), TEXT("VideoInput"),NULL,szBuf,sizeof(szBuf));
	if(strcmp(szBuf,"") == 0)
		Set_Video_Input(hAL576,nVideo_input,nVideo_format);
	else
	{
		nVideo_input = atoi(szBuf);
		Set_Video_Input(hAL576,nVideo_input,nVideo_format);
	}

	//Select Video Format
	GetProfileString(TEXT("annie"), TEXT("VideoFormat"),NULL,szBuf,sizeof(szBuf));
	if(strcmp(szBuf,"") == 0)
	{
		//Auto Detect must twice
		nVideo_format = AutoDetectProgress(hAL576, nVideo_input);
		nVideo_format = AutoDetectProgress(hAL576, nVideo_input);
		Set_Video_Format(hAL576,nVideo_format,nVideo_input);
	}
	else
	{
		nVideo_format = atoi(szBuf);

		if(nVideo_format == 9)
		{
			//Auto Detect must twice
			nVideo_format = AutoDetectProgress(hAL576, nVideo_input);
			nVideo_format = AutoDetectProgress(hAL576, nVideo_input);
			Set_Video_Format(hAL576,nVideo_format,nVideo_input);
		}
		else
			Set_Video_Format(hAL576,nVideo_format,nVideo_input);
	}

	GetProfileString(TEXT("annie"), TEXT("Contrast"),NULL,szBuf,sizeof(szBuf));
	if(strcmp(szBuf,"") != 0)
	{
		m_contrast = atoi(szBuf);
		Set_AL242_Reg(hAL576,0x08,(UINT)m_contrast);
	}

	GetProfileString(TEXT("annie"), TEXT("Brightness"),NULL,szBuf,sizeof(szBuf));
	if(strcmp(szBuf,"") != 0)
	{
		m_brightness = atoi(szBuf);
		Set_AL242_Reg(hAL576,0x09,(UINT)m_brightness);
	}

	GetProfileString(TEXT("annie"), TEXT("Saturation"),NULL,szBuf,sizeof(szBuf));
	if(strcmp(szBuf,"") != 0)
	{
		m_saturation = atoi(szBuf);
		Set_AL242_Reg(hAL576,0x0a,(UINT)m_saturation);
	}

	GetProfileString(TEXT("annie"), TEXT("Hue"),NULL,szBuf,sizeof(szBuf));
	if(strcmp(szBuf,"") != 0)
	{
		m_hue = atoi(szBuf);
		Set_AL242_Reg(hAL576,0x0b,(UINT)m_hue);
	}

	GetProfileString(TEXT("annie"), TEXT("EC_Type"),NULL,szBuf,sizeof(szBuf));
	if(strcmp(szBuf,"") != 0)
		Al576_MPEG_Seting->Encoding_Type = atoi(szBuf);

	GetProfileString(TEXT("annie"), TEXT("ST_Type"),NULL,szBuf,sizeof(szBuf));
	if(strcmp(szBuf,"") != 0)
		Al576_MPEG_Seting->Stream_Type = atoi(szBuf);

	GetProfileString(TEXT("annie"), TEXT("Bmode"),NULL,szBuf,sizeof(szBuf));
	if(strcmp(szBuf,"") != 0)
		Al576_MPEG_Seting->Bit_rate_mode = atoi(szBuf);

	GetProfileString(TEXT("annie"), TEXT("VBrate"),NULL,szBuf,sizeof(szBuf));
	if(strcmp(szBuf,"") != 0)
		Al576_MPEG_Seting->Video_bit_rate = atoi(szBuf);

	GetProfileString(TEXT("annie"), TEXT("GOP"),NULL,szBuf,sizeof(szBuf));
	if(strcmp(szBuf,"") != 0)
		Al576_MPEG_Seting->GOP = atoi(szBuf);

	GetProfileString(TEXT("annie"), TEXT("N"),NULL,szBuf,sizeof(szBuf));
	if(strcmp(szBuf,"") != 0)
		Al576_MPEG_Seting->N_Num = atoi(szBuf);

	GetProfileString(TEXT("annie"), TEXT("RES"),NULL,szBuf,sizeof(szBuf));
	if(strcmp(szBuf,"") != 0)
		Al576_MPEG_Seting->Res = atoi(szBuf);

	GetProfileString(TEXT("annie"), TEXT("ABR"),NULL,szBuf,sizeof(szBuf));
	if(strcmp(szBuf,"") != 0)
		Al576_MPEG_Seting->AudioBitRate = atoi(szBuf);

	return nVideo_format;
}

void CPlayDMODlg::Set_Video_Format(HANDLE hAL576,int nVideoFormat,int nVideo_input)
{
	if(nVideoFormat >= 0 || nVideoFormat <= 8)
		SetupAL242VideoModeX(hAL576,nVideoFormat,nVideo_input);
}

#define AL242_DEBUG 0

void CPlayDMODlg::SetupAL242VideoModeX(HANDLE hAL576,unsigned int _VideoModeX,unsigned int _AL242InputMode)
{
	unsigned int _dx; 
	unsigned int _mode;
	unsigned int _ix;
	unsigned long _gx;
	double _Scale;
	double _OSC = 20.0;

#if AL242_DEBUG

	_dx = Get_AL242_Reg(hAL576,0xb7);
	_dx &= 0xf7;
	_dx |= 0x08;
	Set_AL242_Reg(hAL576,0xb7,_dx);

#endif 
             
	_Scale = _OSC/27;
	Set_AL242_Reg(hAL576,0xc1,(unsigned int)_OSC);

	Set_AL242_Reg(hAL576,0x83,0xdf);

	_dx=Get_AL242_Reg(hAL576,0x02);
	_dx|=0x01;						//  enable auto gain control
	Set_AL242_Reg(hAL576,0x02,_dx);     

	_dx = Get_AL242_Reg(hAL576,0x07);
	_dx &= 0xcf;
	_dx |= 0x10;
	Set_AL242_Reg(hAL576,0x07,_dx);

	_dx = Get_AL242_Reg(hAL576,0x00);
    _dx &= 0x81;
	_dx |= (VideoSpec[_colour_mode][_VideoModeX]<<1) + (VideoSpec[_vline_625][_VideoModeX]<<4) + (VideoSpec[_hpixel][_VideoModeX]<<5);
	Set_AL242_Reg(hAL576,0x00,_dx);

	_dx = Get_AL242_Reg(hAL576,0x01);
	_dx &= 0xf0;
	_dx |= VideoSpec[_ped][_VideoModeX]; 
    _dx |= VideoSpec[_Chroma_bw_lo][_VideoModeX]<<2;
    _dx |= (_VideoModeX !=_NTSC_443)?0x80:0x00;
    Set_AL242_Reg(hAL576,0x01,_dx); 

	_dx=VideoSpec[_hagc][_VideoModeX];
	Set_AL242_Reg(hAL576,0x04,_dx); 

	_gx = (unsigned long)((_4xSubCarrier[_VideoModeX]/_OSC)*0x40000000);  
	for(_ix = 0;_ix < 4;_ix++)
	{
		Set_AL242_Reg(hAL576,(0x1b - _ix),(unsigned int)(_gx & 0x000000ff));
		_gx >>= 8;
	} 

	_gx=(unsigned long)((13.5/_OSC)*0x40000000);  
   	for(_ix=0;_ix<4;_ix++){
		Set_AL242_Reg(hAL576,(0x1f - _ix),(unsigned int)(_gx & 0x000000ff));
		_gx>>=8;
	} 

 
    _dx = VideoSpec[_hactive_start][_VideoModeX];
	Set_AL242_Reg(hAL576,0x2e,_dx);

	_dx=VideoSpec[_vactive_start][_VideoModeX];
	Set_AL242_Reg(hAL576,0x30,_dx);

	_dx=VideoSpec[_vactive_high][_VideoModeX];
	Set_AL242_Reg(hAL576,0x31,_dx);

	_dx = Get_AL242_Reg(hAL576,0x03);
    _dx &= 0xf8;
	_dx |= (VideoSpec[_adaptive_mode][_VideoModeX]&0x07);
    Set_AL242_Reg(hAL576,0x03,_dx);
 		 
    if (_AL242InputMode == S_VIDEO)
	{//S-Video Filter Setup 
		if((_VideoModeX==_NTSC_M)||(_VideoModeX==_NTSC_443))
		{ 
			_dx = Get_AL242_Reg(hAL576,0x03);
			_dx &= 0xf8;
			_dx |= 0x03;	  
			Set_AL242_Reg(hAL576,0x03,_dx);
		}
		else 
		{
		    _dx = Get_AL242_Reg(hAL576,0x03);
			_dx &= 0xf8;		// 2d filter for PAL...					 	  
			Set_AL242_Reg(hAL576,0x03,_dx);
		}
	}

	_dx = Get_AL242_Reg(hAL576,0x0f);
    _dx &= 0xc0;
	_dx |= VideoSpec[_Cautopos][_VideoModeX];
	Set_AL242_Reg(hAL576,0x0f,_dx);

	_dx = Get_AL242_Reg(hAL576,0x82);
	_dx &= 0xef;
	_dx |= VideoSpec[_comb_wide_band][_VideoModeX]<<4;
	Set_AL242_Reg(hAL576,0x82,_dx);	

	if (_AL242InputMode == S_VIDEO)
		_mode = 1;
	else
		_mode = 0;
	
	_dx =_CBS[_mode][_Contrast][_VideoModeX];
	m_contrast = (int)_dx;
 	Set_AL242_Reg(hAL576,0x08,_dx);// contrast

	_dx =_CBS[_mode][_Brightness][_VideoModeX];
	m_brightness  = (int)_dx;
 	Set_AL242_Reg(hAL576,0x09,_dx);// brightness

	_dx =_CBS[_mode][_Saturation][_VideoModeX];
	m_saturation  = (int)_dx;
 	Set_AL242_Reg(hAL576,0x0a,_dx);// saturation

	m_hue = (int)Get_AL242_Reg(hAL576,0xb);
 
	//SoftWareResetAL242(); 
	Set_AL242_Reg(hAL576,0x3f,0x01);
	Set_AL242_Reg(hAL576,0x3f,0x00);
	Sleep(0x400);	

	_dx = Get_AL242_Reg(hAL576,0x07);
	_dx &= 0xcf;
	_dx |= 0x20;
	Set_AL242_Reg(hAL576,0x07,_dx);
}

void CPlayDMODlg::Set_Video_Input(HANDLE hAL576,int nVideo,int nVideo_format)
{
	UINT Result = 0xff;

	if(nVideo == S_VIDEO)
	{
		//S-Video
		Result = Get_AL242_Reg(hAL576,0x00);
		Result  |= 0x01;
		Set_AL242_Reg(hAL576,0x00,Result);

		Result = Get_AL242_Reg(hAL576,0xb7);
		Result = Result & 0xf8 | 0x04;
		Set_AL242_Reg(hAL576,0xb7,Result);

		Result = Get_AL242_Reg(hAL576,0x01);
		Result &= 0x3f;
		Set_AL242_Reg(hAL576,0x01,Result);

		if(nVideo_format == _NTSC_M || nVideo_format == _NTSC_443)
		{
			Result = Get_AL242_Reg(hAL576,0x03);
			Result &= 0xf8;
			Result |= 0x03;
			Set_AL242_Reg(hAL576,0x03,Result);
		}
		else
		{
			Result = Get_AL242_Reg(hAL576,0x03);
			Result &= 0xf8;
			Set_AL242_Reg(hAL576,0x03,Result);
		}
	}
	else
	{
		//Composite-video
		Result = Get_AL242_Reg(hAL576,0x00);
		Result  &= 0xfe;
		Set_AL242_Reg(hAL576,0x00,Result);

		Result = Get_AL242_Reg(hAL576,0xb7);
		Result = Result & 0xf8 | 0x01;
		Set_AL242_Reg(hAL576,0xb7,Result);

		Result = Get_AL242_Reg(hAL576,0x01);
		Result &= 0x3f;
		Set_AL242_Reg(hAL576,0x01,Result);

		Result = Get_AL242_Reg(hAL576,0x03);
		Result &= 0xf8;
		Set_AL242_Reg(hAL576,0x03,Result);

	}

}

UINT CPlayDMODlg::AutoDetectProgress(HANDLE hAL576, unsigned int _AL242InputMode)
{
	unsigned char _StatusReg1,_StatusReg3,_CordicFreqStatus,_ChromaDTOInc0,_AdaptiveMode,_dx;

	UINT _SystemConfiguration;
      
	_SystemConfiguration = Get_AL242_Reg(hAL576,0x00);      //Get Video Color Standard 
    _SystemConfiguration &= 0x0e;
	_SystemConfiguration >>= 1;                         

	_StatusReg1 = (unsigned char)Get_AL242_Reg(hAL576,0x3a);
    _StatusReg3 = (unsigned char)Get_AL242_Reg(hAL576,0x3c);
	_StatusReg3 &= 0x07;                     //bit 0~~~2
	_CordicFreqStatus = (unsigned char)Get_AL242_Reg(hAL576,0x7d);

    _ChromaDTOInc0 = (unsigned char)Get_AL242_Reg(hAL576,0x18);
    _AdaptiveMode = (unsigned char)Get_AL242_Reg(hAL576,0x03);
	_AdaptiveMode &= 0x07;

	if((_CordicFreqStatus & 0x80) == 0x80)
		_CordicFreqStatus =~ _CordicFreqStatus;
	  
    if((_StatusReg1 & 0x01)==0x01)
	{
		_dx = (unsigned char)Get_AL242_Reg(hAL576,0x07);
		_dx &= 0xcf;
		_dx |= 0x10;
		Set_AL242_Reg(hAL576,(unsigned int)0x07,(unsigned int)_dx);
		//Blue Mode
	}
	else 
	{
		switch(_SystemConfiguration)
		{
		   
		case 0:  //NTSC_M
			if(_AdaptiveMode==3)
			{  //NTSC443
				if ((_StatusReg3&0x02)==0x02){_VideoFormatDetect=_SECAMx;}
                else if ((((_StatusReg3&0x04)==0x04))&&(((_CordicFreqStatus>=0x00)&&(_CordicFreqStatus<=0x19))||((_CordicFreqStatus>=0x01)&&(_CordicFreqStatus<=0x1e)))){_VideoFormatDetect=_PAL_I;}
	            else if ((((_StatusReg3&0x04)!=0x04))&&((_CordicFreqStatus>0x19)&&(_CordicFreqStatus<0x80))){_VideoFormatDetect=_NTSC_M;}
				else if ((((_StatusReg3&0x04)!=0x04))&&(((_CordicFreqStatus>=0x00)&&(_CordicFreqStatus<=0x19))||((_CordicFreqStatus>=0x01)&&(_CordicFreqStatus<=0x1e)))&&(((_StatusReg3&0x01)==0x01))){_VideoFormatDetect=_PAL_60;}
				else if ((((_StatusReg3&0x04)==0x04))&&((_CordicFreqStatus>0x19)&&(_CordicFreqStatus<0x80))){_VideoFormatDetect=_PAL_CN;}
				else {_VideoFormatDetect=_NTSC_443;}}
			
                else{
					if ((_StatusReg3&0x02)==0x02){_VideoFormatDetect=_SECAMx;}
                    else if ((((_StatusReg3&0x04)==0x04))&&((_CordicFreqStatus>0x1e)&&(_CordicFreqStatus<=0x7f))){_VideoFormatDetect=_PAL_I;}
	                else if ((((_StatusReg3&0x04)!=0x04))&&((_CordicFreqStatus>0x1e)&&(_CordicFreqStatus<=0x7f))){_VideoFormatDetect=((_StatusReg3&0x01)==0x01)?_PAL_60:_NTSC_443;}
					else if ((((_StatusReg3&0x04)!=0x04))&&(((_CordicFreqStatus>=0x00)&&(_CordicFreqStatus<=0x19))||((_CordicFreqStatus>=0x01)&&(_CordicFreqStatus<=0x1e)))&&(((_StatusReg1&0x08)!=0x08))){_VideoFormatDetect=_PAL_M;}
					else if ((((_StatusReg3&0x04)==0x04))&&(((_CordicFreqStatus>=0x00)&&(_CordicFreqStatus<=0x19))||((_CordicFreqStatus>=0x01)&&(_CordicFreqStatus<=0x1e)))){_VideoFormatDetect=_PAL_CN;}
					else {_VideoFormatDetect=_NTSC_M;}}
		break;

		case 1:  //PAL_I
			if ((_StatusReg3&0x02)==0x02){_VideoFormatDetect=_SECAMx;}
            else if ((((_StatusReg3&0x04)!=0x04))&&((_CordicFreqStatus>0x19)&&(_CordicFreqStatus<0x80))){_VideoFormatDetect=((_StatusReg1&0x08)!=0x08)?_PAL_M:_NTSC_M;}
	        else if ((((_StatusReg3&0x04)==0x04))&&((_CordicFreqStatus>0x19)&&(_CordicFreqStatus<0x80))){_VideoFormatDetect=_PAL_CN;}
			else if ((((_StatusReg3&0x04)!=0x04))&&(((_CordicFreqStatus>=0x00)&&(_CordicFreqStatus<=0x19))||((_CordicFreqStatus>=0x01)&&(_CordicFreqStatus<=0x1e)))&&(((_StatusReg3&0x01)!=0x01))){_VideoFormatDetect=_NTSC_443;}
			else if ((((_StatusReg3&0x04)!=0x04))&&(((_CordicFreqStatus>=0x00)&&(_CordicFreqStatus<=0x19))||((_CordicFreqStatus>=0x01)&&(_CordicFreqStatus<=0x1e)))&&(((_StatusReg3&0x01)==0x01))){_VideoFormatDetect=_PAL_60;}
			else {_VideoFormatDetect=_PAL_I;}
		break;

		case 2:  //PAL_M
			if ((_StatusReg3&0x02)==0x02){_VideoFormatDetect=_SECAMx;}
            else if ((((_StatusReg3&0x04)==0x04))&&((_CordicFreqStatus>0x1e)&&(_CordicFreqStatus<=0x7f))){_VideoFormatDetect=_PAL_I;}
	        else if ((((_StatusReg3&0x04)!=0x04))&&((_CordicFreqStatus>0x1e)&&(_CordicFreqStatus<=0x7f))){_VideoFormatDetect=((_StatusReg3&0x01)==0x01)?_PAL_60:_NTSC_443;}
			else if ((((_StatusReg3&0x04)==0x04))&&(((_CordicFreqStatus>=0x00)&&(_CordicFreqStatus<=0x19))||((_CordicFreqStatus>=0x01)&&(_CordicFreqStatus<=0x1e)))){_VideoFormatDetect=_PAL_CN;}
			else {_VideoFormatDetect=_PAL_M;}
		break;

		case 3:  //PAL_CN
			if ((_StatusReg3&0x02)==0x02){_VideoFormatDetect=((_CordicFreqStatus>0x1e)&&(_CordicFreqStatus<=0x7f))?_SECAMx:_PAL_CN;}
            else if ((((_StatusReg3&0x04)!=0x04))&&(((_CordicFreqStatus>=0x00)&&(_CordicFreqStatus<=0x19))||((_CordicFreqStatus>=0x01)&&(_CordicFreqStatus<=0x1e)))){_VideoFormatDetect=_NTSC_M;}
            else if ((((_StatusReg3&0x04)==0x04))&&((_CordicFreqStatus>0x1e)&&(_CordicFreqStatus<=0x7f))){_VideoFormatDetect=_PAL_I;}      
            else if ((((_StatusReg3&0x04)!=0x04))&&((_CordicFreqStatus>0x1e)&&(_CordicFreqStatus<=0x7f))&&(((_StatusReg3&0x01)==0x01))){_VideoFormatDetect=_PAL_60;}
            else if ((((_StatusReg3&0x04)!=0x04))&&((_CordicFreqStatus>0x1e)&&(_CordicFreqStatus<=0x7f))&&(((_StatusReg3&0x01)!=0x01))){_VideoFormatDetect=_NTSC_443;}
	        else {_VideoFormatDetect=_PAL_CN;}
		break;

		case 4:  //SECAM
			if (((_StatusReg3&0x02)!=0x02)&&(((_StatusReg3&0x04)==0x04))&&(((_CordicFreqStatus>=0x00)&&(_CordicFreqStatus<=0x19))||((_CordicFreqStatus>=0x01)&&(_CordicFreqStatus<=0x1e)))&&(((_StatusReg3&0x01)==0x01))){_VideoFormatDetect=_PAL_I;}
            else if (((_StatusReg3&0x02)!=0x02)&&(((_StatusReg3&0x04)!=0x04))&&(((_CordicFreqStatus>=0x00)&&(_CordicFreqStatus<=0x19))||((_CordicFreqStatus>=0x01)&&(_CordicFreqStatus<=0x1e)))){_VideoFormatDetect=_PAL_60;}	
	        else if (((_StatusReg3&0x02)!=0x02)&&(((_StatusReg3&0x04)!=0x04))&&((_CordicFreqStatus>0x19)&&(_CordicFreqStatus<0x80))){_VideoFormatDetect=_NTSC_M;}	
	        else if (((_StatusReg3&0x02)!=0x02)&&(((_StatusReg3&0x04)==0x04))&&((_CordicFreqStatus>0x10)&&(_CordicFreqStatus<0x80))){_VideoFormatDetect=_PAL_CN;}
	        else if (((_StatusReg3&0x02)!=0x02)&&(((_StatusReg3&0x04)==0x04))&&(((_CordicFreqStatus>=0x00)&&(_CordicFreqStatus<=0x19))||((_CordicFreqStatus>=0x01)&&(_CordicFreqStatus<=0x1e)))&&(((_StatusReg3&0x01)!=0x01))){_VideoFormatDetect=_NTSC_443;}
  	        else {_VideoFormatDetect=_SECAMx;}
        break;
	   }
	} 

	if((_AL242InputMode == S_VIDEO) && ((_VideoFormatDetect==_NTSC_M) || (_VideoFormatDetect==_NTSC_443)))
	{  //S-Video:NTSC/NTSC443 AdaptiveMode=0x03 
		if(_AdaptiveMode==3)
		{   //NTSC443
			if((_StatusReg1&0x0f) == 0x0e)
			{
				if(_ChromaDTOInc0==0x2d)
				{  // From NTSC
 					 _VideoFormatDetect=_CordicFreqStatus>0x1f?_NTSC_443:_NTSC_M;}
			    else
				{ // From NTSC-443
	 			     _VideoFormatDetect=_CordicFreqStatus>0x30?_NTSC_M:_NTSC_443;}
				}
				else
				{
					_VideoFormatDetect=_PAL_M;
				}
             }                      	
             else
			 {             //NTSC_M 
				Set_AL242_Reg(hAL576,(unsigned int)0x03,(unsigned int)0x03);
				if((_StatusReg1&0x0f)==0x0e)
				{	
					if((_CordicFreqStatus>0x1e)&&(_CordicFreqStatus<=0x7f))
						{_VideoFormatDetect=_NTSC_443;}									                      
					else 
						{_VideoFormatDetect=_NTSC_M;}
				}
				else 
					{_VideoFormatDetect=_PAL_M;}
		}
     }
	return 	_VideoFormatDetect;
}

⌨️ 快捷键说明

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