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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? msvd.c

?? mstar716驅(qū)動源代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
//  SECAM    50     625     428 1097
///////////////////////////////////////////////////////
BYTE msVDGetVideoSystem( WORD wVideoStatus )
{
    BYTE ucSignalType = SIG_NONE;

    putstr("\r\n");
    if( wVideoStatus&VD_HSYNC_LOCKED )
    {
        if( wVideoStatus&VD_VSYNC_50HZ ) // 50Hz
        {
            switch( wVideoStatus&VD_FSC_TYPE )
            {
                case VD_FSC_4285: // SECAM
                    ucSignalType = SIG_SECAM;
                    putstr("[SECAM]");
                    break;
                case VD_FSC_4433: // 4.43361875MHz, PAL or NTSC443 or PAL(60)
                    ucSignalType = SIG_PAL;
                    putstr("[PAL]");
                    break;
                case VD_FSC_3579: // 3.579545MHz, NTSC
                case VD_FSC_3575: // 3.57561149MHz,PAL(M)
                case VD_FSC_3582: // 3.58205625MHz,PAL(Nc)
                    ucSignalType = SIG_PAL_NC;
                    putstr("[PAL-NC]");
                    break;
            }
        }
        else // 60Hz
        {
            switch( wVideoStatus&VD_FSC_TYPE )
            {
                case VD_FSC_4285: // SECAM
                    putstr("[SECAM60??-->");
                case VD_FSC_4433: // 4.43361875MHz, PAL or NTSC443 or PAL(60)
                    if( wVideoStatus&VD_PAL_SWITCH )
                    {
                        ucSignalType = SIG_PAL_60;
                        putstr("[PAL-60]");
                    }
                    else
                    {
                        ucSignalType = SIG_NTSC_443;
                        putstr("[NTSC-443]");
                    }
                    break;
                case VD_FSC_3579: // 3.579545MHz, NTSC
                case VD_FSC_3575: // 3.57561149MHz,PAL(M)
                case VD_FSC_3582: // 3.58205625MHz,PAL(Nc)
                    if( wVideoStatus&VD_PAL_SWITCH )
                    {
                        ucSignalType = SIG_PAL_M;
                        putstr("[PAL-M]");
                    }
                    else
                    {
                        ucSignalType = SIG_NTSC;
                        putstr("[NTSC]");
                    }
                    break;
            }
        }
    }
    return ucSignalType;
}



void msVDColorKill( BOOL bColorKill )
{

	msWriteByte( BK0_00_REGBK, REG_BANK2_VD);

    if( bColorKill ) // COLOR_OFF
    {
        printMsg("color kill");

        msWriteByteMask( BK2_55_COLOR_OFF, 0xC0, 0xC0 );
        msWriteByte( BK0_00_REGBK, REG_BANK3_COMB);
        msWriteByteMask( BK3_60_IMGCTRL, 0x00, 0x30 ); // Disable Auto Chrom Gain


        if( msDSP_Std_GetNoiseMag() < 10 )
            msWriteByteMask(BK3_21_COMB2DCFGB, 0x30, 0x70); // Notch mode of Y
        else
            msWriteByteMask(BK3_21_COMB2DCFGB, 0x20, 0x70); // Notch mode of Y

    }
    else // COLOR return
    {
        printMsg("color return");
        msWriteByteMask( BK2_55_COLOR_OFF, 0x80, 0xC0 );
        msWriteByte( BK0_00_REGBK, REG_BANK3_COMB);
        msWriteByteMask(BK3_21_COMB2DCFGB, 0x60, 0x70); // Notch mode of Y

        msWriteByteMask( BK3_60_IMGCTRL, 0x10, 0x30 ); // Enable HW Auto Chrom Gain
    }

    msWriteByte( BK0_00_REGBK, REG_BANK_SCALER);
}

void msVDLineLockCtl( BOOL bLock )
{
    BYTE ucBank;

    ucBank = msReadByte( BK0_00_REGBK );
    msWriteByte(BK0_00_REGBK, REG_BANK2_VD);

    if( bLock )
    {
        msVDDSPWriteByte( DSP_20, 0x00 );
        msVDDSPWriteByte( DSP_21, 0x80 );
        //if( (g_VdInfo.wVideoStatus&VD_FSC_TYPE) != VD_FSC_4XXX ) // NTSC
        {
            msWriteBit( BK2_23_APLL_TRANGE, 1, _BIT0 ); // 20060103.Daniel
            msWriteByte( BK2_26_APL_K1_NORMAL, 0x04 ); // APL_K1: 20060328.CY.Ko
            msWriteByte( BK2_27_APL_K2_NORMAL, 0 ); // APL_K2
        }
        g_bVDCurLineLockStatus = 1;
        putstr("\r\nLine Lock");
    }
    else
    {
        msVDDSPWriteByte( DSP_20, 0x00 );
        msVDDSPWriteByte( DSP_21, 0x00 );
        msWriteBit( BK2_23_APLL_TRANGE, 0, _BIT0 ); // 20060103.Daniel
        msWriteByte( BK2_26_APL_K1_NORMAL, 0x10 ); // APL_K1: 20060328.CY.Ko
        msWriteByte( BK2_27_APL_K2_NORMAL, 0x08 ); // APL_K2
        g_bVDCurLineLockStatus = 0;
        putstr("\r\nNo Line Lock");
    }
    msVDCombLineBufferCtl( MSVD_COMB_LINE_BUFFER_CTL_SW );

    msWriteByte( BK0_00_REGBK, ucBank );
}

void msVDColorBurstHandler(BYTE ucFlag)
{
    bit bCurColorBurstStatus;

    if (g_bForceColorEnable)
		return;
	
    if( ucFlag&VD_COLOR_BURST_HANDLER_RESET )
    {
        msVDColorKill(FALSE);
        msVDLineLockCtl( _DISABLE );
        msDSP_Std_Init(); // ???

        msVD_FSC_ResetColorBurstStatus();

        bCurColorBurstStatus = 1;
        g_bVDColorBurstHandler_LastColorBurstStatus = 1;
        g_ucVDColorBurstHandlerStableCounter = 0;

        g_wVDColorBurstHandlerTimer = 400;

    }
    else if( 0 == g_wVDColorBurstHandlerTimer )
    {
        if( g_VdInfo.ucVideoSystem == SIG_SECAM )
        {
            return;
        }

        g_wVDColorBurstHandlerTimer = 20;

        bCurColorBurstStatus = msVDGetColorLockBit();

        if( bCurColorBurstStatus != g_bVDColorBurstHandler_LastColorBurstStatus )
        {
            ++ g_ucVDColorBurstHandlerStableCounter;
            if(g_ucVDColorBurstHandlerStableCounter >= 5)
            {
                g_ucVDColorBurstHandlerStableCounter = 0;
                g_bVDColorBurstHandler_LastColorBurstStatus = bCurColorBurstStatus;
                if( bCurColorBurstStatus ) // Has color
	            {
	                msVDColorKill(FALSE);
                }
                else // No color
    			{
    			    msVDColorKill(TRUE);
    			}
	            g_wVDColorBurstHandlerTimer = 100;
            }
        }
        else
        {
            g_ucVDColorBurstHandlerStableCounter = 0;
        }


        // Line lock handler
        {
            bit bForceLineLock = 0;


            // Detect if should line lock
            if( ( g_bVDColorBurstHandler_LastColorBurstStatus == 0 ) // Color kill
              &&( ( msDSP_Std_GetBurstMag() < 0x23 ) ))// No burst pattern
                bForceLineLock = 1;

            if( bForceLineLock != g_bVDCurLineLockStatus )
            {
                g_ucMSVDSwitchLineLockCnt ++;
                if( g_ucMSVDSwitchLineLockCnt >= 5 )
                {
                    g_ucMSVDSwitchLineLockCnt = 0;
                    if( bForceLineLock )
                    {
                        msVDLineLockCtl(_ENABLE); // Switch to line lock
                        //putstr("\r\nLine lock");
                    }
                    else
                    {
                        msVDLineLockCtl(_DISABLE); // Switch to no line lock
                        //putstr("\r\nNo Line lock");
                    }
                }
            }
            else
            {
                g_ucMSVDSwitchLineLockCnt = 0;
            }
        }
    }
    //else
        //msVD_FSC_Detect();
}


code StuVideoSystemInfo tVideoSystemInfo[SIG_NUMS] =
{
    { MSVD_HTOTAL_NTSC,     MSVD_HACTIVE_NTSC     },// SIG_NTSC, // M
    { MSVD_HTOTAL_PAL,      MSVD_HACTIVE_PAL      },// SIG_PAL, // B/G, D/K, I, H, N
    { MSVD_HTOTAL_SECAM,    MSVD_HACTIVE_SECAM    },// SIG_SECAM,
    { MSVD_HTOTAL_NTSC_443, MSVD_HACTIVE_NTSC_443 },// SIG_NTSC_443,
    { MSVD_HTOTAL_PAL_60,   MSVD_HACTIVE_PAL_60   },// SIG_PAL_60,
    { MSVD_HTOTAL_PAL_M,    MSVD_HACTIVE_PAL_M    },// SIG_PAL_M,
    { MSVD_HTOTAL_PAL_NC,   MSVD_HACTIVE_PAL_NC   },// SIG_PAL_NC,
};

void msVDSetupMode( WORD wStatus, BYTE ucSignalType)
{
    BYTE ucBank;

    ucBank = msReadByte( BK0_00_REGBK);

    msVDColorBurstHandler( VD_COLOR_BURST_HANDLER_RESET );

    //if( g_ucmsVDCtl&MSVD_CTL_FLAG_NOISE_HANDLER )
        msVDNoiseHandlerReset();

#if(ENABLE_VCR_HANDLER)
    if( g_ucmsVDCtl2&MSVD_CTL2_FLAG_VCR )
        msVDVCRHandlerReset();
#endif

    //if( g_ucmsVDCtl2&MSVD_CTL2_FLAG_AGC_PROCESSOR )
    {
        if( wStatus&VD_HSYNC_LOCKED )
            VD_AGC_SetFscThreshold(wStatus&VD_VSYNC_50HZ);
    }

#if( ENABLE_HSYNC_HANDLER )
    //if( g_ucmsVDCtl2&MSVD_CTL2_FLAG_HSYNC )
    {
        msVDHSyncHandlerReset();
    }
#endif

    // Setup VD H total and DE width
    {
        WORD wHTotal;
        WORD wHActive;

        if( wStatus&VD_HSYNC_LOCKED )
        {
            wHTotal = tVideoSystemInfo[ucSignalType]._wHTotal;
            wHActive = tVideoSystemInfo[ucSignalType]._wHActive;
        }
        else
        {
            if( wStatus&VD_VSYNC_50HZ )
            {
                wHTotal = tVideoSystemInfo[SIG_PAL]._wHTotal;
                wHActive = tVideoSystemInfo[SIG_PAL]._wHActive;
            }
            else
            {
                wHTotal = tVideoSystemInfo[SIG_NTSC]._wHTotal;
                wHActive = tVideoSystemInfo[SIG_NTSC]._wHActive;
            }
        }
        wHActive += 24;
        msWriteByte( BK0_00_REGBK, REG_BANK2_VD );

        if( wHActive > 1024 )
            msWriteByte( BK2_7B_656_HDEW, 0 ); // 656_HDEW
        else
            {
            #if(PANEL_ANALOG_TCON)
            msWriteByte( BK2_7B_656_HDEW, ((((wHActive)-4)/4)+0x20) ); // 656_HDEW
            #else
            msWriteByte( BK2_7B_656_HDEW, (((wHActive)-4)/4)); // 656_HDEW
            #endif
            }

        #if(PANEL_TYPE==PanelPVI030_AT)
        msWriteByte( BK2_9D_DPL_NSPL_HIGH, _656_PLL_VALUE );     // bit3~10
        msWriteByte( BK2_9E_DPL_NSPL_LOW, (wHTotal&7)<<5 );  // bit0~2
        #else
        wHTotal -= 1;
        msWriteByte( BK2_9D_DPL_NSPL_HIGH, (wHTotal/8) );     // bit3~10
        msWriteByte( BK2_9E_DPL_NSPL_LOW, (wHTotal&7)<<5 );  // bit0~2
        #endif
    }

    msWriteByte( BK0_00_REGBK, REG_BANK2_VD );

    msWriteByte( BK0_00_REGBK, REG_BANK3_COMB );

//    if( wStatus&VD_VSYNC_50HZ ) // 50 Hz
//    {
//        msWriteByteMask(BK3_40, 0x03, 0x03); // Force 625 lines
//    }
//    else // 60 Hz
//    {
//        msWriteByteMask(BK3_40, 0x02, 0x03); // Force 525 lines
//    }

    if( VD_Type == MARIA2_D )
    {
        if( ucSignalType == SIG_SECAM )
            msWriteByte( BK3_6F_MAX_CRMA, 0x0F );
        else
            msWriteByte( BK3_6F_MAX_CRMA, 0x04 );
    }

    if( IsCVBSInUse())
    {
        if( ucSignalType == SIG_NTSC_443 )
        {
            msWriteByteMask(BK3_48_BSTLVL_TH, 0x20, 0x30); // Pipe delay
            msWriteByteMask(BK3_21_COMB2DCFGB, 0x03, 0x07); // Notch mode of C
        }
        else
        {
            msWriteByteMask(BK3_48_BSTLVL_TH, 0x00, 0x30); // Pipe delay off
            msWriteByteMask(BK3_21_COMB2DCFGB, 0x07, 0x07); // Notch mode of C
        }

        msWriteByte( BK3_62, 0xA0 );
        msWriteByte( BK3_2F, 0x00 );
    }
    else if( IsSVideoInUse())// SV
    {
        if( SIG_NTSC_443 == ucSignalType || SIG_NTSC == ucSignalType )
            msWriteByteMask(BK3_48_BSTLVL_TH, 0x20, 0x30); // Pipe delay
        else
            msWriteByteMask(BK3_48_BSTLVL_TH, 0x00, 0x30); // Pipe delay off

        msWriteByte( BK3_62, 0x5F );  //20060222
        msWriteByte( BK3_2F, 0x00 );
    }
	SetChromaMode(); 

    msVDCombLineBufferCtl( MSVD_COMB_LINE_BUFFER_CTL_HW_AUTO );

    msWriteByte( BK0_00_REGBK, ucBank );
}

void msCommSetupMode()
{
    msFieldDetectCtl();

    // Setup interlace relative register
    msDetectInterlace(1); // For setup mode

    if( IsCVBSInUse())
    {
        #if TV_ENABLE
        if( IsTVInUse() )
            msLPFCtl(LPF_CTL_TV_STRONG);
        else
        #endif
            msLPFCtl(LPF_CTL_TV_NORMAL);
    }
}

#if( ENABLE_SECAM )
XDATA BYTE g_ucMSVDSecamCtl;
void msVDSecamColorCtl( BOOL bColorOn )
{
    BYTE ucData = 0x0C;
    BYTE ucBank;
    ucBank=msReadByte(BK0_00_REGBK);

    if( bColorOn )
        ucData = 0x00;
    msWriteByte( BK0_00_REGBK, REG_BANK3_COMB);

    msWriteByteMask( BK3_C5, ucData, 0x0C);
    msWriteByte(BK0_00_REGBK, ucBank);
}

void msVDSecamHandler(void)
{
    BYTE ucBank;

    if( g_ucVDSecamHandlerTimer )
        return;

    g_ucVDSecamHandlerTimer = 20;

    ucBank = msReadByte( BK0_00_REGBK);
	
    if( VD_Type < MARIA2_E )
    {
        WORD wVdStatus;

        wVdStatus = msVDGetSyncStatus();

        if(wVdStatus&VD_HSYNC_LOCKED)
        {
            msVDSecamColorCtl(_ENABLE);
        }
        else
        {
            msVDSecamColorCtl(_DISABLE);
        }
    }

    // Adjust Secam detect threoshold by burst mag
    // BurstMag>>4 = 6, 0B0A09 = 002160
    {
        BYTE ucBurstMag;
        DWORD dwData;
        BYTE ucNoiseMag;
        BYTE ucBurstPhsErr;
        BYTE ucSecamBurstPhsErr;


        ucBurstMag = msDSP_Std_GetBurstMag()>>4;
        dwData = ((DWORD)0x2160*(DWORD)ucBurstMag)/6;
        dwData = (dwData>>3)+ (g_dwVDSecamHandler_PreMagThl-(g_dwVDSecamHandler_PreMagThl>>3));

        ucBurstPhsErr = msDSP_Std_GetPhaseError();
        ucSecamBurstPhsErr = msDSP_Std_GetSecamPhaseError();

        ucNoiseMag = msDSP_Std_GetNoiseMag()>>1;

       	g_wVDSecamHandler_PreNoiseMag = ucNoiseMag;

        if ((g_VdInfo.ucVideoSystem == SIG_PAL) && (ucNoiseMag >= 0x10))
        {
            if (ucSecamBurstPhsErr <= 0x5B)
                g_ucVDSecamThdCnt ++ ;
            else if (ucSecamBurstPhsErr >= 0x60)
                g_ucVDSecamThdCnt -= 8 ;
            if (g_ucVDSecamThdCnt > 128) // negative
                g_ucVDSecamThdCnt = 0 ;
            else if (g_ucVDSecamThdCnt > 48)
                g_ucVDSecamThdCnt = 48 ;

        }
        else
                g_ucVDSecamThdCnt = 0 ;
        if( g_VdInfo.ucVideoSystem == SIG_SECAM )
        {
            if( ucNoiseMag < 3 )
            {
                if( dwData < 0x000590 )
                    dwData = 0x000590;
            }
            else if( ucNoiseMag < 10 )
            {
                if( dwData < 0x0010B0 )
                    dwData = 0x0010B0;
            }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
aaa国产一区| 亚洲国产精品激情在线观看| 亚洲日本一区二区| 国产日韩欧美精品在线| 亚洲在线一区二区三区| 精品av综合导航| 欧美在线观看禁18| 亚洲精品午夜久久久| 日韩经典中文字幕一区| 91影视在线播放| 中文字幕不卡在线| 天天亚洲美女在线视频| 成人18精品视频| 欧美成人综合网站| 夜夜嗨av一区二区三区网页| 日韩成人一区二区三区在线观看| 久久精品99国产精品| 色8久久精品久久久久久蜜| 日韩欧美中文一区| 午夜精品久久久久| 在线免费观看不卡av| 久久亚洲一级片| 婷婷国产在线综合| 色婷婷狠狠综合| 一区二区三区在线播| 波多野结衣亚洲一区| 91色porny| 国产午夜亚洲精品理论片色戒| 香蕉久久一区二区不卡无毒影院| 99国产精品久久久久久久久久久| 久久女同互慰一区二区三区| 天堂一区二区在线免费观看| 欧美视频精品在线观看| 欧美大片在线观看一区| 一区二区高清视频在线观看| 99v久久综合狠狠综合久久| 久久久一区二区三区| 久久国产三级精品| 精品国产乱码久久| 国产乱淫av一区二区三区| 亚洲精品v日韩精品| 日本一道高清亚洲日美韩| 国产成人久久精品77777最新版本| 日韩欧美国产麻豆| 悠悠色在线精品| 国产精一品亚洲二区在线视频| 日韩一区二区在线免费观看| 国产sm精品调教视频网站| 中文字幕中文字幕一区二区| 欧美国产日韩亚洲一区| 成人听书哪个软件好| 久久精品一区二区| 国产精品主播直播| 亚洲视频在线一区观看| 粉嫩一区二区三区在线看| 午夜精品福利一区二区三区av| 91精品久久久久久久91蜜桃| 99久久精品免费| 日产精品久久久久久久性色| 国产精品高潮久久久久无| 欧美v日韩v国产v| 欧美日韩亚洲另类| 粉嫩av一区二区三区在线播放| 亚洲午夜成aⅴ人片| 中文字幕一区二区三区精华液| 7777女厕盗摄久久久| 91美女片黄在线| 99久久99久久免费精品蜜臀| 国产成a人无v码亚洲福利| 日韩和欧美的一区| 性做久久久久久| 午夜在线成人av| 日韩精品免费专区| 亚洲超丰满肉感bbw| 香港成人在线视频| 日日夜夜一区二区| 国产精品电影一区二区三区| 亚洲国产精品成人综合| 国产亚洲综合av| 国产精品久久久久久久久久免费看| 久久久久久一二三区| 国产精品久久久久久久久免费桃花| 欧美激情中文字幕| 亚洲精品免费看| 亚洲大片在线观看| 蜜臀av一级做a爰片久久| 美女视频一区二区三区| 国产精品1区2区3区在线观看| 岛国精品在线播放| 欧美性大战久久久久久久蜜臀| 91精品免费在线观看| 2023国产精品视频| 亚洲人123区| 美女一区二区久久| 国产盗摄一区二区三区| 一本到三区不卡视频| 91精品国产综合久久久蜜臀粉嫩| 欧美精品一区二区三区视频| 中文字幕不卡在线观看| 日本少妇一区二区| 91色婷婷久久久久合中文| 精品日韩欧美在线| 午夜精品视频一区| 91网站最新地址| 精品国产乱码久久久久久1区2区 | 欧美电影免费观看高清完整版在| 久久九九国产精品| 日本免费在线视频不卡一不卡二| 99久久综合狠狠综合久久| 精品久久免费看| 日韩国产高清影视| 91久久久免费一区二区| 亚洲免费av观看| 亚洲欧美日韩国产手机在线| 国产精品毛片无遮挡高清| 久久成人综合网| 91免费精品国自产拍在线不卡 | 国产女人18毛片水真多成人如厕| 一区二区三区小说| 波多野结衣精品在线| 国产欧美精品一区二区色综合朱莉| 美腿丝袜在线亚洲一区| 欧美电视剧免费观看| 蜜臀av一级做a爰片久久| 91麻豆精品国产91久久久使用方法 | 欧美乱妇一区二区三区不卡视频| 麻豆传媒一区二区三区| 精品少妇一区二区三区在线播放 | 国产日韩精品一区二区浪潮av| 国产在线精品免费av| 国产女同互慰高潮91漫画| 高清成人在线观看| 亚洲久草在线视频| 欧美精品第一页| 国产美女av一区二区三区| 中文字幕一区二区三区视频| 欧美另类高清zo欧美| 国产成人精品一区二| 亚洲成人动漫一区| 欧美国产一区在线| 欧美精品123区| 成人黄色大片在线观看| 午夜av区久久| 亚洲欧洲精品一区二区精品久久久| 欧美日韩精品高清| 粉嫩aⅴ一区二区三区四区 | 欧美大尺度电影在线| www.爱久久.com| 韩国中文字幕2020精品| 亚洲综合成人在线视频| 中文字幕免费在线观看视频一区| 欧美军同video69gay| 99久久精品免费| 成人综合在线观看| 国产在线看一区| 日韩1区2区日韩1区2区| 一区二区欧美在线观看| 国产精品美日韩| 欧美极品美女视频| 久久亚洲一级片| 欧美在线你懂得| 91亚洲永久精品| 成人国产精品免费观看| 国产成人精品亚洲777人妖| 久久精品国产精品亚洲综合| 美日韩一区二区| 另类小说欧美激情| 国产精品一区二区免费不卡 | 国产精品网友自拍| 国产精品高潮呻吟| 一区av在线播放| 亚洲国产成人va在线观看天堂| 亚洲精选视频免费看| 一区二区三区日韩欧美精品| 亚洲一区二区三区在线看| 亚洲超碰精品一区二区| 日本成人中文字幕在线视频| 久久99日本精品| 91香蕉视频污在线| 日韩亚洲国产中文字幕欧美| 久久影院午夜论| 亚洲欧洲精品成人久久奇米网| 亚洲日本在线看| 视频一区在线视频| 成人污视频在线观看| 欧美在线色视频| 2014亚洲片线观看视频免费| 一区二区成人在线视频| 国产一区二区视频在线播放| 99久久婷婷国产综合精品| 在线播放日韩导航| 亚洲特级片在线| 国产精品中文字幕欧美| 精品视频在线免费观看| 久久午夜电影网| 蜜臀av性久久久久av蜜臀妖精 | 亚洲欧洲三级电影| 国产伦精品一区二区三区免费迷| 欧美美女bb生活片| 一区二区三区四区视频精品免费|