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

📄 theatre.c

📁 x.org上有关ati系列显卡最新驱动
💻 C
📖 第 1 页 / 共 5 页
字号:
                    WriteRT_fld (fld_VERT_LOCKOUT_END,     RT_NTSCJ_VERT_LOCKOUT_END);                    break;                default:                    break;            }            break;        case (DEC_PAL):  /*PAL GROUP  - 525 lines */            WriteRT_fld (fld_STANDARD_SEL,     RT_PAL);            WriteRT_fld (fld_SYNCTIP_REF0,     RT_PAL_SYNCTIP_REF0);            WriteRT_fld (fld_SYNCTIP_REF1,     RT_PAL_SYNCTIP_REF1);	                WriteRT_fld (fld_CLAMP_REF,         RT_PAL_CLAMP_REF);            WriteRT_fld (fld_AGC_PEAKWHITE,    RT_PAL_PEAKWHITE);            WriteRT_fld (fld_VBI_PEAKWHITE,    RT_PAL_VBI_PEAKWHITE);            WriteRT_fld (fld_WPA_THRESHOLD,    RT_PAL_WPA_THRESHOLD);            WriteRT_fld (fld_WPA_TRIGGER_LO,   RT_PAL_WPA_TRIGGER_LO);            WriteRT_fld (fld_WPA_TRIGGER_HIGH, RT_PAL_WPA_TRIGGER_HIGH);            WriteRT_fld (fld_LOCKOUT_START,RT_PAL_LP_LOCKOUT_START);            WriteRT_fld (fld_LOCKOUT_END,  RT_PAL_LP_LOCKOUT_END);            WriteRT_fld (fld_CH_DTO_INC,       RT_PAL_CH_DTO_INC);            WriteRT_fld (fld_PLL_SGAIN,        RT_PAL_CH_PLL_SGAIN);            WriteRT_fld (fld_PLL_FGAIN,        RT_PAL_CH_PLL_FGAIN);            WriteRT_fld (fld_CR_BURST_GAIN,    RT_PAL_CR_BURST_GAIN);            WriteRT_fld (fld_CB_BURST_GAIN,    RT_PAL_CB_BURST_GAIN);            WriteRT_fld (fld_CRDR_ACTIVE_GAIN, RT_PAL_CRDR_ACTIVE_GAIN);            WriteRT_fld (fld_CBDB_ACTIVE_GAIN, RT_PAL_CBDB_ACTIVE_GAIN);            WriteRT_fld (fld_CH_HEIGHT,        RT_PAL_CH_HEIGHT);            WriteRT_fld (fld_CH_KILL_LEVEL,    RT_PAL_CH_KILL_LEVEL);            WriteRT_fld (fld_CH_AGC_ERROR_LIM, RT_PAL_CH_AGC_ERROR_LIM);            WriteRT_fld (fld_CH_AGC_FILTER_EN, RT_PAL_CH_AGC_FILTER_EN);            WriteRT_fld (fld_CH_AGC_LOOP_SPEED,RT_PAL_CH_AGC_LOOP_SPEED);            WriteRT_fld (fld_VERT_LOCKOUT_START,   RT_PAL_VERT_LOCKOUT_START);            WriteRT_fld (fld_VERT_LOCKOUT_END, RT_PAL_VERT_LOCKOUT_END);            WriteRT_fld (fld_VS_FIELD_BLANK_START,  (CARD16)RT_PALSEM_VS_FIELD_BLANK_START);            WriteRT_fld (fld_VS_FIELD_BLANK_END,   RT_PAL_VS_FIELD_BLANK_END);            WriteRT_fld (fld_H_ACTIVE_START,   RT_PAL_H_ACTIVE_START);            WriteRT_fld (fld_H_ACTIVE_END,   RT_PAL_H_ACTIVE_END);            WriteRT_fld (fld_V_ACTIVE_START,   RT_PAL_V_ACTIVE_START);            WriteRT_fld (fld_V_ACTIVE_END,   RT_PAL_V_ACTIVE_END);            WriteRT_fld (fld_H_VBI_WIND_START,   RT_PAL_H_VBI_WIND_START);            WriteRT_fld (fld_H_VBI_WIND_END,   RT_PAL_H_VBI_WIND_END);            WriteRT_fld (fld_V_VBI_WIND_START,   RT_PAL_V_VBI_WIND_START);            WriteRT_fld (fld_V_VBI_WIND_END,   RT_PAL_V_VBI_WIND_END);	    /* Magic 0.10 is correct - according to Ivo. Also see SECAM code below *//*            WriteRT_fld (fld_UV_INT_START,   (CARD8)( (0.12 * dbLPeriod * dbFsamp / 2.0) + 0.5 - 32 )); */            WriteRT_fld (fld_UV_INT_START,   (CARD8)( (0.10 * dbLPeriod * dbFsamp / 2.0) + 0.5 - 32 ));            WriteRT_fld (fld_VSYNC_INT_TRIGGER , (CARD16) RT_PALSEM_VSYNC_INT_TRIGGER);            WriteRT_fld (fld_VSYNC_INT_HOLD, (CARD16) RT_PALSEM_VSYNC_INT_HOLD);            break;        case (DEC_SECAM):  /*PAL GROUP*/            WriteRT_fld (fld_STANDARD_SEL,     RT_SECAM);            WriteRT_fld (fld_SYNCTIP_REF0,     RT_SECAM_SYNCTIP_REF0);            WriteRT_fld (fld_SYNCTIP_REF1,     RT_SECAM_SYNCTIP_REF1);            WriteRT_fld (fld_CLAMP_REF,         RT_SECAM_CLAMP_REF);            WriteRT_fld (fld_AGC_PEAKWHITE,    RT_SECAM_PEAKWHITE);            WriteRT_fld (fld_VBI_PEAKWHITE,    RT_SECAM_VBI_PEAKWHITE);            WriteRT_fld (fld_WPA_THRESHOLD,    RT_SECAM_WPA_THRESHOLD);            WriteRT_fld (fld_WPA_TRIGGER_LO,   RT_SECAM_WPA_TRIGGER_LO);            WriteRT_fld (fld_WPA_TRIGGER_HIGH, RT_SECAM_WPA_TRIGGER_HIGH);            WriteRT_fld (fld_LOCKOUT_START,RT_SECAM_LP_LOCKOUT_START);            WriteRT_fld (fld_LOCKOUT_END,  RT_SECAM_LP_LOCKOUT_END);            WriteRT_fld (fld_CH_DTO_INC,       RT_SECAM_CH_DTO_INC);            WriteRT_fld (fld_PLL_SGAIN,        RT_SECAM_CH_PLL_SGAIN);            WriteRT_fld (fld_PLL_FGAIN,        RT_SECAM_CH_PLL_FGAIN);            WriteRT_fld (fld_CR_BURST_GAIN,    RT_SECAM_CR_BURST_GAIN);            WriteRT_fld (fld_CB_BURST_GAIN,    RT_SECAM_CB_BURST_GAIN);            WriteRT_fld (fld_CRDR_ACTIVE_GAIN, RT_SECAM_CRDR_ACTIVE_GAIN);            WriteRT_fld (fld_CBDB_ACTIVE_GAIN, RT_SECAM_CBDB_ACTIVE_GAIN);            WriteRT_fld (fld_CH_HEIGHT,        RT_SECAM_CH_HEIGHT);            WriteRT_fld (fld_CH_KILL_LEVEL,    RT_SECAM_CH_KILL_LEVEL);            WriteRT_fld (fld_CH_AGC_ERROR_LIM, RT_SECAM_CH_AGC_ERROR_LIM);            WriteRT_fld (fld_CH_AGC_FILTER_EN, RT_SECAM_CH_AGC_FILTER_EN);            WriteRT_fld (fld_CH_AGC_LOOP_SPEED,RT_SECAM_CH_AGC_LOOP_SPEED);            WriteRT_fld (fld_VERT_LOCKOUT_START,   RT_SECAM_VERT_LOCKOUT_START);  /*Might not need */            WriteRT_fld (fld_VERT_LOCKOUT_END, RT_SECAM_VERT_LOCKOUT_END);  /* Might not need */            WriteRT_fld (fld_VS_FIELD_BLANK_START,  (CARD16)RT_PALSEM_VS_FIELD_BLANK_START);            WriteRT_fld (fld_VS_FIELD_BLANK_END,   RT_PAL_VS_FIELD_BLANK_END);            WriteRT_fld (fld_H_ACTIVE_START,   RT_PAL_H_ACTIVE_START);            WriteRT_fld (fld_H_ACTIVE_END,   RT_PAL_H_ACTIVE_END);            WriteRT_fld (fld_V_ACTIVE_START,   RT_PAL_V_ACTIVE_START);            WriteRT_fld (fld_V_ACTIVE_END,   RT_PAL_V_ACTIVE_END);            WriteRT_fld (fld_H_VBI_WIND_START,   RT_PAL_H_VBI_WIND_START);            WriteRT_fld (fld_H_VBI_WIND_END,   RT_PAL_H_VBI_WIND_END);            WriteRT_fld (fld_V_VBI_WIND_START,   RT_PAL_V_VBI_WIND_START);            WriteRT_fld (fld_V_VBI_WIND_END,   RT_PAL_V_VBI_WIND_END);            WriteRT_fld (fld_VSYNC_INT_TRIGGER , (CARD16) RT_PALSEM_VSYNC_INT_TRIGGER);            WriteRT_fld (fld_VSYNC_INT_HOLD, (CARD16) RT_PALSEM_VSYNC_INT_HOLD);/*            WriteRT_fld (fld_UV_INT_START,   (CARD8)( (0.12 * dbLPeriod * dbFsamp / 2.0) + 0.5 - 32 )); */            WriteRT_fld (fld_UV_INT_START,   (CARD8)( (0.10 * dbLPeriod * dbFsamp / 2.0) + 0.5 - 32 ));            break;        default:            break;    }    if (t->wConnector == DEC_SVIDEO)    {        RT_SetCombFilter (t, wStandard, RT_SVIDEO);    }    else    {        /* Set up extra (connector and std) registers. */        RT_SetCombFilter (t, wStandard, RT_COMPOSITE);    }    /* Set the following values according to the formulas */    WriteRT_fld (fld_HS_LINE_TOTAL, (CARD16)((dbLPeriod * dbFsamp / 2.0) +0.5));    /* According to Ivo PAL/SECAM needs different treatment */    switch(wStandard & 0x00FF)    {        case DEC_PAL:	case DEC_SECAM:			WriteRT_fld (fld_MIN_PULSE_WIDTH, (CARD8)(0.5 * dbSPPeriod * dbFsamp/2.0));			WriteRT_fld (fld_MAX_PULSE_WIDTH, (CARD8)(1.5 * dbSPPeriod * dbFsamp/2.0));    			WriteRT_fld (fld_WIN_OPEN_LIMIT, (CARD16)(((dbLPeriod * dbFsamp / 4.0) + 0.5) - 16));  		    	WriteRT_fld (fld_WIN_CLOSE_LIMIT, (CARD16)(2.39 * dbSPPeriod * dbFsamp / 2.0));		/*    	WriteRT_fld (fld_VS_FIELD_IDLOCATION,   (CARD16)RT_PAL_FIELD_IDLOCATION); */		/*      According to docs the following value will work right, though the resulting stream deviates		        slightly from CCIR..., in particular the value that was before will do nuts to VCRs in			pause/rewind state. */		    	WriteRT_fld (fld_VS_FIELD_IDLOCATION,   (CARD16)0x01);		    	WriteRT_fld (fld_HS_PLL_SGAIN, 2);			break;  	case DEC_NTSC:			WriteRT_fld (fld_MIN_PULSE_WIDTH, (CARD8)(0.75 * dbSPPeriod * dbFsamp/2.0));    			WriteRT_fld (fld_MAX_PULSE_WIDTH, (CARD8)(1.25 * dbSPPeriod * dbFsamp/2.0));    			WriteRT_fld (fld_WIN_OPEN_LIMIT, (CARD16)(((dbLPeriod * dbFsamp / 4.0) + 0.5) - 16));    			WriteRT_fld (fld_WIN_CLOSE_LIMIT, (CARD16)(1.15 * dbSPPeriod * dbFsamp / 2.0));    		/*	WriteRT_fld (fld_VS_FIELD_IDLOCATION,   (CARD16)fld_VS_FIELD_IDLOCATION_def);*/		/*      I think the default value was the same as the one here.. does not hurt to hardcode it */			WriteRT_fld (fld_VS_FIELD_IDLOCATION,   (CARD16)0x01);     }    WriteRT_fld (fld_VS_FRAME_TOTAL,   (CARD16)(wFrameTotal) + 10);    WriteRT_fld (fld_BLACK_INT_START,   (CARD8)((0.09 * dbLPeriod * dbFsamp / 2.0) - 32 ));    WriteRT_fld (fld_SYNC_TIP_START,   (CARD16)((dbLPeriod * dbFsamp / 2.0 + 0.5) - 28 ));    return;} /* RT_SetStandard ()... *//**************************************************************************** * RT_SetCombFilter (CARD16 wStandard, CARD16 wConnector)                       * *  Function: sets the input comb filter based on the standard and          * *            connector being used (composite vs. svideo)                   * *    Inputs: CARD16 wStandard - input standard (NTSC, PAL, SECAM)            * *            CARD16 wConnector - COMPOSITE, SVIDEO                           * *   Outputs: NONE                                                          * ****************************************************************************/void RT_SetCombFilter (TheatrePtr t, CARD16 wStandard, CARD16 wConnector){    CARD32 dwComb_Cntl0=0;    CARD32 dwComb_Cntl1=0;    CARD32 dwComb_Cntl2=0;    CARD32 dwComb_Line_Length=0;    switch (wConnector)    {        case RT_COMPOSITE:                switch (wStandard & 0x00FF)                {                    case (DEC_NTSC):                        switch (wStandard & 0xFF00)                        {                            case  (extNONE):                            case  (extNTSC):                            case  (extNTSC_J):                                dwComb_Cntl0= RT_NTSCM_COMB_CNTL0_COMPOSITE;                                dwComb_Cntl1= RT_NTSCM_COMB_CNTL1_COMPOSITE;                                dwComb_Cntl2= RT_NTSCM_COMB_CNTL2_COMPOSITE;                                dwComb_Line_Length= RT_NTSCM_COMB_LENGTH_COMPOSITE;                                break;                            case  (extPAL_M):                                dwComb_Cntl0= RT_PALM_COMB_CNTL0_COMPOSITE;                                dwComb_Cntl1= RT_PALM_COMB_CNTL1_COMPOSITE;                                dwComb_Cntl2= RT_PALM_COMB_CNTL2_COMPOSITE;                                dwComb_Line_Length= RT_PALM_COMB_LENGTH_COMPOSITE;                                break;                            default:                                return;                        }                        break;                    case (DEC_PAL):                        switch (wStandard & 0xFF00)                        {                            case  (extNONE):                            case  (extPAL):                                dwComb_Cntl0=   RT_PAL_COMB_CNTL0_COMPOSITE;                                dwComb_Cntl1=   RT_PAL_COMB_CNTL1_COMPOSITE;                                dwComb_Cntl2=   RT_PAL_COMB_CNTL2_COMPOSITE;                                dwComb_Line_Length=  RT_PAL_COMB_LENGTH_COMPOSITE;                                break;                            case  (extPAL_N):                                dwComb_Cntl0=   RT_PALN_COMB_CNTL0_COMPOSITE;                                dwComb_Cntl1=   RT_PALN_COMB_CNTL1_COMPOSITE;                                dwComb_Cntl2=   RT_PALN_COMB_CNTL2_COMPOSITE;                                dwComb_Line_Length=  RT_PALN_COMB_LENGTH_COMPOSITE;                                break;                            default:                                return;                        }                        break;                    case (DEC_SECAM):                        dwComb_Cntl0=   RT_SECAM_COMB_CNTL0_COMPOSITE;                        dwComb_Cntl1=   RT_SECAM_COMB_CNTL1_COMPOSITE;                        dwComb_Cntl2=   RT_SECAM_COMB_CNTL2_COMPOSITE;                        dwComb_Line_Length=  RT_SECAM_COMB_LENGTH_COMPOSITE;                        break;                    default:                        return;                }            break;        case RT_SVIDEO:                switch (wStandard & 0x00FF)                {                    case (DEC_NTSC):                        switch (wStandard & 0xFF00)                        {                            case  (extNONE):                            case  (extNTSC):                                dwComb_Cntl0= RT_NTSCM_COMB_CNTL0_SVIDEO;                                dwComb_Cntl1= RT_NTSCM_COMB_CNTL1_SVIDEO;                                dwComb_Cntl2= RT_NTSCM_COMB_CNTL2_SVIDEO;                                dwComb_Line_Length= RT_NTSCM_COMB_LENGTH_SVIDEO;                                break;                            case  (extPAL_M):                                dwComb_Cntl0= RT_PALM_COMB_CNTL0_SVIDEO;                                dwComb_Cntl1= RT_PALM_COMB_CNTL1_SVIDEO;                                dwComb_Cntl2= RT_PALM_COMB_CNTL2_SVIDEO;                                dwComb_Line_Length= RT_PALM_COMB_LENGTH_SVIDEO;                                break;                            default:                                return;                        }                        break;                    case (DEC_PAL):                        switch (wStandard & 0xFF00)                        {                            case  (extNONE):                            case  (extPAL):                                dwComb_Cntl0=   RT_PAL_COMB_CNTL0_SVIDEO;                                dwComb_Cntl1=   RT_PAL_COMB_CNTL1_SVIDEO;                                dwComb_Cntl2=   RT_PAL_COMB_CNTL2_SVIDEO;                                dwComb_Line_Length=  RT_PAL_COMB_LENGTH_SVIDEO;                                break;                            case  (extPAL_N):                                dwComb_Cntl0=   RT_PALN_COMB_CNTL0_SVIDEO;                                dwComb_Cntl1=   RT_PALN_COMB_CNTL1_SVIDEO;                                dwComb_Cntl2=   RT_PALN_COMB_CNTL2_SVIDEO;                                dwComb_Line_Length=  RT_PALN_COMB_LENGTH_SVIDEO;                                break;                            default:                                return;                        }                        break;                    case (DEC_SECAM):                        dwComb_Cntl0=   RT_SECAM_COMB_CNTL0_SVIDEO;                        dwComb_Cntl1=   RT_SECAM_COMB_CNTL1_SVIDEO;                        dwComb_Cntl2=   RT_SECAM_COMB_CNTL2_SVIDEO;                        dwComb_Line_Length=  RT_SECAM_COMB_LENGTH_SVIDEO;                        break;                    default:                        return;                }            break;        default:            return;    }    WriteRT_fld (fld_COMB_CNTL0, dwComb_Cntl0);    WriteRT_fld (fld_COMB_CNTL1, dwComb_Cntl1);    WriteRT_fld (fld_COMB_CNTL2, dwComb_Cntl2);    WriteRT_f

⌨️ 快捷键说明

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