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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? radeon_video.c

?? x.org上有關ati系列顯卡最新驅動
?? C
?? 第 1 頁 / 共 5 頁
字號:
    CARD8 a;    int i;                  pPriv->theatre = NULL;    if(!info->MM_TABLE_valid &&        !((info->RageTheatreCrystal>=0) &&           (info->RageTheatreTunerPort>=0) && (info->RageTheatreCompositePort>=0) &&           (info->RageTheatreSVideoPort>=0)))    {       xf86DrvMsg(pScrn->scrnIndex, X_INFO, "no multimedia table present, disabling Rage Theatre.\n");       return;    }    /* Go and find Rage Theatre, if it exists */        switch(info->Chipset){    	case PCI_CHIP_RADEON_LY:	case PCI_CHIP_RADEON_LZ:	        xf86DrvMsg(pScrn->scrnIndex,X_INFO,"Detected Radeon Mobility M6, not scanning for Rage Theatre\n");		break;	case PCI_CHIP_RADEON_LW:	        xf86DrvMsg(pScrn->scrnIndex,X_INFO,"Detected Radeon Mobility M7, not scanning for Rage Theatre\n");		break;	default:	    pPriv->theatre=xf86_DetectTheatre(pPriv->VIP);	}    if(pPriv->theatre==NULL)return;        /* just a matter of convenience */    t=pPriv->theatre;             t->video_decoder_type=info->video_decoder_type;            xf86DrvMsg(pScrn->scrnIndex, X_INFO, "video decoder type is 0x%04x (BIOS value) versus 0x%04x (current PLL setting)\n",         t->video_decoder_type, pll->xclk);            if(info->MM_TABLE_valid){         for(i=0;i<5;i++){                a=info->MM_TABLE.input[i];                                switch(a & 0x3){                        case 1:                                t->wTunerConnector=i;                                xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Tuner is on port %d\n",i);                                break;                        case 2:  if(a & 0x4){                                   t->wComp0Connector=RT_COMP2;                                   } else {                                   t->wComp0Connector=RT_COMP1;                                   }                xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Composite connector is port %ld\n", t->wComp0Connector);                                  break;                        case 3:  if(a & 0x4){                                   t->wSVideo0Connector=RT_YCR_COMP4;                                   } else {                                   t->wSVideo0Connector=RT_YCF_COMP4;                                   }                xf86DrvMsg(pScrn->scrnIndex, X_INFO, "SVideo connector is port %ld\n", t->wSVideo0Connector);                                   break;                        default:                                break;                        }                }        xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Rage Theatre: Connectors (detected): tuner=%ld, composite=%ld, svideo=%ld\n",    	     t->wTunerConnector, t->wComp0Connector, t->wSVideo0Connector);                 }    if(info->RageTheatreTunerPort>=0)t->wTunerConnector=info->RageTheatreTunerPort;    if(info->RageTheatreCompositePort>=0)t->wComp0Connector=info->RageTheatreCompositePort;    if(info->RageTheatreSVideoPort>=0)t->wSVideo0Connector=info->RageTheatreSVideoPort;            xf86DrvMsg(pScrn->scrnIndex, X_INFO, "RageTheatre: Connectors (using): tuner=%ld, composite=%ld, svideo=%ld\n",    	t->wTunerConnector, t->wComp0Connector, t->wSVideo0Connector);    switch((info->RageTheatreCrystal>=0)?info->RageTheatreCrystal:pll->reference_freq){                case 2700:                        t->video_decoder_type=RT_FREF_2700;                        break;                case 2950:                        t->video_decoder_type=RT_FREF_2950;                        break;                default:                        xf86DrvMsg(pScrn->scrnIndex, X_INFO,                                "Unsupported reference clock frequency, Rage Theatre disabled\n");                        t->theatre_num=-1;			xfree(pPriv->theatre);			pPriv->theatre = NULL;			return;                }    xf86DrvMsg(pScrn->scrnIndex, X_INFO, "video decoder type used: 0x%04x\n", t->video_decoder_type);}static XF86VideoAdaptorPtrRADEONAllocAdaptor(ScrnInfoPtr pScrn){    XF86VideoAdaptorPtr adapt;    RADEONInfoPtr info = RADEONPTR(pScrn);    RADEONPortPrivPtr pPriv;    CARD32 dot_clock;    if(!(adapt = xf86XVAllocateVideoAdaptorRec(pScrn)))	return NULL;    if(!(pPriv = xcalloc(1, sizeof(RADEONPortPrivRec) + sizeof(DevUnion))))    {	xfree(adapt);	return NULL;    }    adapt->pPortPrivates = (DevUnion*)(&pPriv[1]);    adapt->pPortPrivates[0].ptr = (pointer)pPriv;    pPriv->colorKey = info->videoKey;    pPriv->doubleBuffer = TRUE;    pPriv->videoStatus = 0;    pPriv->brightness = 0;    pPriv->transform_index = 0;    pPriv->saturation = 0;    pPriv->contrast = 0;    pPriv->red_intensity = 0;    pPriv->green_intensity = 0;    pPriv->blue_intensity = 0;    pPriv->hue = 0;    pPriv->currentBuffer = 0;    pPriv->autopaint_colorkey = TRUE;    pPriv->gamma = 1000;    if (info->OverlayOnCRTC2)	pPriv->crt2 = TRUE;    else	pPriv->crt2 = FALSE;	    pPriv->ov_alpha = 255;    pPriv->gr_alpha = 255;    pPriv->alpha_mode = 0;       /* TV-in stuff */    pPriv->video_stream_active = FALSE;    pPriv->encoding = 4;    pPriv->frequency = 1000;    pPriv->volume = -1000;    pPriv->mute = TRUE;    pPriv->v = 0;    pPriv->overlay_deinterlacing_method = METHOD_BOB;    pPriv->capture_vbi_data = 0;    pPriv->dec_brightness = 0;    pPriv->dec_saturation = 0;    pPriv->dec_contrast = 0;    pPriv->dec_hue = 0;    /*     * Unlike older Mach64 chips, RADEON has only two ECP settings:     * 0 for PIXCLK < 175Mhz, and 1 (divide by 2)     * for higher clocks, sure makes life nicer     */    /* Figure out which head we are on */    if ((info->MergedFB && info->OverlayOnCRTC2) || info->IsSecondary)	dot_clock = info->ModeReg.dot_clock_freq_2;    else	dot_clock = info->ModeReg.dot_clock_freq;    if(dot_clock < 17500)        pPriv->ecp_div = 0;    else        pPriv->ecp_div = 1;#if 0    xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Dotclock is %g Mhz, setting ecp_div to %d\n", info->ModeReg.dot_clock_freq/100.0, pPriv->ecp_div);#endif    OUTPLL(pScrn, RADEON_VCLK_ECP_CNTL, (INPLL(pScrn, RADEON_VCLK_ECP_CNTL) &					 0xfffffCff) | (pPriv->ecp_div << 8));    /* I suspect we may need a usleep after writing to the PLL.  if you play a video too soon       after switching crtcs in mergedfb clone mode you get a temporary one pixel line of colorkey        on the right edge video output.  */    if ((info->ChipFamily == CHIP_FAMILY_RS100) || 	(info->ChipFamily == CHIP_FAMILY_RS200) ||	(info->ChipFamily == CHIP_FAMILY_RS300)) {        /* Force the overlay clock on for integrated chips	 */        OUTPLL(pScrn, RADEON_VCLK_ECP_CNTL,	       (INPLL(pScrn, RADEON_VCLK_ECP_CNTL) | (1<<18)));    }        /* overlay scaler line length differs for different revisions        this needs to be maintained by hand  */    switch(info->ChipFamily){    	case CHIP_FAMILY_R200:	case CHIP_FAMILY_R300:		pPriv->overlay_scaler_buffer_width=1920;		break;	default:		pPriv->overlay_scaler_buffer_width=1536;    	}    /* Decide on tuner type */    if((info->tunerType<0) && (info->MM_TABLE_valid)) {        pPriv->tuner_type = info->MM_TABLE.tuner_type;    	} else        pPriv->tuner_type = info->tunerType;            /* Initialize I2C bus */    RADEONInitI2C(pScrn, pPriv);    if(pPriv->i2c != NULL)RADEON_board_setmisc(pPriv);        #if 0  /* this is just here for easy debugging - normally off */    xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Scanning I2C Bus\n");    for(i=0;i<255;i+=2)        if(RADEONProbeAddress(pPriv->i2c, i))                xf86DrvMsg(pScrn->scrnIndex, X_INFO, "     found device at address 0x%02x\n", i);    #endif    /* Initialize VIP bus */    RADEONVIP_init(pScrn, pPriv);    info->adaptor = adapt;	if(!xf86LoadSubModule(pScrn,"theatre_detect")) 	{		xf86DrvMsg(pScrn->scrnIndex,X_ERROR,"Unable to load Rage Theatre detect module\n");		goto skip_theatre;    }	xf86LoaderReqSymbols(TheatreDetectSymbolsList, NULL);	RADEONSetupTheatre(pScrn, pPriv);	/*	 * Now load the correspondind theatre chip based on what has been detected. 	 */	if (pPriv->theatre)	{		xf86DrvMsg(pScrn->scrnIndex,X_INFO,"Going to load the corresponding theatre module\n");		switch (pPriv->theatre->theatre_id)		{			case RT100_ATI_ID:			{				if(!xf86LoadSubModule(pScrn,"theatre")) 				{					xf86DrvMsg(pScrn->scrnIndex,X_ERROR,"Unable to load Rage Theatre module\n");					xfree(pPriv->theatre);					goto skip_theatre;				}				break;			}			case RT200_ATI_ID:			{				if(!xf86LoadSubModule(pScrn,"theatre200")) 				{					xf86DrvMsg(pScrn->scrnIndex,X_ERROR,"Unable to load Rage Theatre module\n");					xfree(pPriv->theatre);					goto skip_theatre;				}				pPriv->theatre->microc_path = info->RageTheatreMicrocPath;				pPriv->theatre->microc_type = info->RageTheatreMicrocType;				break;			}			default:			{				xf86DrvMsg(pScrn->scrnIndex,X_ERROR,"Unknown Theatre chip\n");				xfree(pPriv->theatre);				goto skip_theatre;			}		}		xf86LoaderReqSymbols(TheatreSymbolsList, NULL);	}    	if(pPriv->theatre!=NULL)	{		xf86_InitTheatre(pPriv->theatre);		if(pPriv->theatre->mode == MODE_UNINITIALIZED)		{			Xfree(pPriv->theatre);			pPriv->theatre = NULL;			xf86DrvMsg(pScrn->scrnIndex,X_INFO,"Rage Theatre disabled\n");			/* Here the modules must be unloaded */			goto skip_theatre;		}	}      if(pPriv->theatre!=NULL){	        xf86_ResetTheatreRegsForNoTVout(pPriv->theatre);        xf86_RT_SetTint(pPriv->theatre, pPriv->dec_hue);        xf86_RT_SetSaturation(pPriv->theatre, pPriv->dec_saturation);        xf86_RT_SetSharpness(pPriv->theatre, RT_NORM_SHARPNESS);        xf86_RT_SetContrast(pPriv->theatre, pPriv->dec_contrast);        xf86_RT_SetBrightness(pPriv->theatre, pPriv->dec_brightness);  	        RADEON_RT_SetEncoding(pScrn, pPriv);		}	skip_theatre:    return adapt;}static XF86VideoAdaptorPtrRADEONSetupImageVideo(ScreenPtr pScreen){    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];    RADEONPortPrivPtr pPriv;    XF86VideoAdaptorPtr adapt;    if(!(adapt = RADEONAllocAdaptor(pScrn)))	return NULL;    adapt->type = XvWindowMask | XvInputMask | XvImageMask;    adapt->flags = VIDEO_OVERLAID_IMAGES | VIDEO_CLIP_TO_VIEWPORT;    adapt->name = "ATI Radeon Video Overlay";    adapt->nEncodings = 1;    adapt->pEncodings = &DummyEncoding;    adapt->nFormats = NUM_FORMATS;    adapt->pFormats = Formats;    adapt->nPorts = 1;    adapt->nAttributes = NUM_ATTRIBUTES;    adapt->pAttributes = Attributes;    adapt->nImages = NUM_IMAGES;    adapt->pImages = Images;    adapt->PutVideo = NULL;    adapt->PutStill = NULL;    adapt->GetVideo = NULL;    adapt->GetStill = NULL;    adapt->StopVideo = RADEONStopVideo;    adapt->SetPortAttribute = RADEONSetPortAttribute;    adapt->GetPortAttribute = RADEONGetPortAttribute;    adapt->QueryBestSize = RADEONQueryBestSize;    adapt->PutImage = RADEONPutImage;    adapt->QueryImageAttributes = RADEONQueryImageAttributes;    pPriv = (RADEONPortPrivPtr)(adapt->pPortPrivates[0].ptr);    REGION_NULL(pScreen, &(pPriv->clip));    if(pPriv->theatre != NULL)     {	/* video decoder is present, extend capabilities */       adapt->nEncodings = 13;       adapt->pEncodings = InputVideoEncodings;       adapt->type |= XvVideoMask;       adapt->nAttributes = NUM_DEC_ATTRIBUTES;           adapt->PutVideo = RADEONPutVideo;    }    RADEONResetVideo(pScrn);    return adapt;}static voidRADEONStopVideo(ScrnInfoPtr pScrn, pointer data, Bool cleanup){  RADEONInfoPtr info = RADEONPTR(pScrn);  unsigned char *RADEONMMIO = info->MMIO;  RADEONPortPrivPtr pPriv = (RADEONPortPrivPtr)data;  REGION_EMPTY(pScrn->pScreen, &pPriv->clip);  if(cleanup) {     if(pPriv->videoStatus & CLIENT_VIDEO_ON) {	RADEONWaitForFifo(pScrn, 2);	OUTREG(RADEON_OV0_SCALE_CNTL, 0);     }     if(pPriv->video_stream_active){        RADEONWaitForFifo(pScrn, 2);        OUTREG(RADEON_FCP_CNTL, RADEON_FCP0_SRC_GND);        OUTREG(RADEON_CAP0_TRIG_CNTL, 0);        RADEONResetVideo(pScrn);        pPriv->video_stream_active = FALSE;        if(pPriv->msp3430 != NULL) xf86_MSP3430SetVolume(pPriv->msp3430, MSP3430_FAST_MUTE);		if(pPriv->uda1380 != NULL) xf86_uda1380_mute(pPriv->uda1380, TRUE);        if(pPriv->i2c != NULL) RADEON_board_setmisc(pPriv);     }     if (pPriv->video_memory != NULL) {	 RADEONFreeMemory(pScrn, pPriv->video_memory);	 pPriv->video_memory = NULL;     }     pPriv->videoStatus = 0;  } else {     if(pPriv->videoStatus & CLIENT_VIDEO_ON) {	pPriv->videoStatus |= OFF_TIMER;	pPriv->offTime = currentTime.milliseconds + OFF_DELAY;     }  }}static int

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区在线视频免费观看| 日本vs亚洲vs韩国一区三区| 日韩视频一区二区三区在线播放 | av成人动漫在线观看| 香蕉成人伊视频在线观看| 国产欧美一区二区精品性色超碰 | 国产精品传媒入口麻豆| 日韩欧美国产综合一区| 一本一道久久a久久精品综合蜜臀| 久久精品噜噜噜成人av农村| 一区二区三区久久| 中文字幕电影一区| 日韩精品一区二区在线| 欧美日韩在线一区二区| 91小宝寻花一区二区三区| 国产精品一区二区在线播放| 首页国产欧美久久| 亚洲激情五月婷婷| 中文字幕亚洲在| 久久精品视频免费| 精品国产91乱码一区二区三区 | 欧美影视一区二区三区| 成人理论电影网| 国产69精品久久99不卡| 国产真实乱偷精品视频免| 青青草国产精品97视觉盛宴| 午夜精品久久久| 亚洲高清免费观看| 亚洲制服丝袜av| 亚洲精品国产精品乱码不99| 中文字幕一区二区三区色视频| 日本一区二区高清| 国产欧美一区二区在线| 久久精品视频一区二区三区| 精品国产电影一区二区| 精品乱人伦一区二区三区| 日韩三级免费观看| 欧美成人一区二区三区在线观看 | 国产亚洲欧洲一区高清在线观看| 欧美videos中文字幕| 91精品国产麻豆国产自产在线 | 久久九九影视网| 欧美激情中文字幕| 国产精品丝袜91| 国产精品你懂的在线| 成人免费在线视频观看| 亚洲男人电影天堂| 亚洲成人精品影院| 日韩中文字幕av电影| 蜜桃久久久久久| 国产福利91精品一区| 成人性生交大片免费看中文网站| 波多野结衣中文一区| 色综合久久久久久久久| 欧美性色欧美a在线播放| 欧美久久婷婷综合色| 日韩精品中文字幕一区| 久久综合九色综合97婷婷女人| 精品sm捆绑视频| 国产精品久久久久天堂| 亚洲欧美另类久久久精品2019| 亚洲综合一区二区三区| 三级久久三级久久| 国产一区二区三区四| 91视视频在线直接观看在线看网页在线看| 色综合天天性综合| 91麻豆精品国产自产在线| 久久色.com| 亚洲日穴在线视频| 日韩国产欧美在线观看| 国产精品亚洲一区二区三区妖精 | 亚洲精品免费一二三区| 日本sm残虐另类| 国产成人综合在线观看| 色婷婷久久久久swag精品| 日韩欧美一级二级三级久久久 | 日本不卡在线视频| 欧美日韩国产高清一区| 欧美剧在线免费观看网站| 国产欧美精品日韩区二区麻豆天美| 亚洲欧洲av一区二区三区久久| 亚洲成av人片在线| 国产成人高清在线| 欧美日韩二区三区| 国产精品欧美一级免费| 日日摸夜夜添夜夜添精品视频| 国产精品自在在线| 欧美日产在线观看| 国产精品色呦呦| 美女高潮久久久| 欧美综合欧美视频| 国产亚洲1区2区3区| 亚洲成a天堂v人片| 99在线精品一区二区三区| 日韩欧美一区二区视频| 亚洲伦理在线免费看| 国产精品91一区二区| 欧美精品自拍偷拍动漫精品| 中文字幕不卡在线| 久久精品国产久精国产爱| 色偷偷一区二区三区| 国产亚洲欧美色| 强制捆绑调教一区二区| 在线一区二区三区四区| 久久久激情视频| 日本欧美大码aⅴ在线播放| 91蝌蚪porny九色| 国产日韩欧美电影| 韩日欧美一区二区三区| 7777精品伊人久久久大香线蕉经典版下载 | 在线电影欧美成精品| 亚洲私人影院在线观看| 国产精品一区二区果冻传媒| 日韩欧美一区二区久久婷婷| 日产国产高清一区二区三区| 欧日韩精品视频| 亚洲人成网站精品片在线观看| 粉嫩一区二区三区性色av| 久久这里只有精品视频网| 日本不卡一二三区黄网| 欧美日韩的一区二区| 亚洲成人中文在线| 欧美丝袜自拍制服另类| 亚洲激情图片qvod| 91麻豆文化传媒在线观看| 国产精品欧美一级免费| 成人黄色软件下载| 成人免费在线视频观看| 久久九九国产精品| 国产美女精品在线| 精品国产免费人成电影在线观看四季 | 久久久久久电影| 国产麻豆欧美日韩一区| 久久综合九色综合久久久精品综合| 精品影院一区二区久久久| 日韩一卡二卡三卡四卡| 日韩成人dvd| 日韩欧美亚洲国产精品字幕久久久| 五月婷婷欧美视频| 欧美精品99久久久**| 天天综合网天天综合色| 日韩一区二区三区在线| 麻豆精品国产传媒mv男同| 亚洲精品一区二区三区在线观看| 久久超碰97中文字幕| 久久夜色精品国产噜噜av| 床上的激情91.| 亚洲人成精品久久久久| 欧美性大战久久久久久久| 日韩影视精彩在线| 亚洲精品一区二区三区在线观看| 国产成人一区在线| 亚洲欧洲精品一区二区三区| 日本黄色一区二区| 石原莉奈在线亚洲三区| 久久久亚洲午夜电影| 国产aⅴ精品一区二区三区色成熟| 中文字幕欧美一| 欧美日本不卡视频| 老色鬼精品视频在线观看播放| 久久精品综合网| 97精品久久久久中文字幕| 五月天丁香久久| 亚洲精品在线免费播放| 91网站视频在线观看| 日日夜夜免费精品| 国产日韩欧美精品在线| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 三级亚洲高清视频| 国产视频亚洲色图| 一本久久综合亚洲鲁鲁五月天 | 国产精品久久久久影院色老大| 欧美亚洲一区三区| 精品一区二区三区不卡| 亚洲欧洲日本在线| 欧美精品久久久久久久久老牛影院| 在线观看三级视频欧美| 国产专区欧美精品| 亚洲精品日日夜夜| 精品剧情v国产在线观看在线| 成人中文字幕合集| 视频一区视频二区在线观看| 国产视频一区二区在线| 884aa四虎影成人精品一区| 成人免费观看男女羞羞视频| 日精品一区二区三区| 国产精品福利一区二区| 日韩一级黄色大片| 91免费看`日韩一区二区| 久久精品99久久久| 亚洲精品国产视频| 国产日韩v精品一区二区| 欧美日韩性生活| 不卡av在线免费观看| 激情文学综合插| 亚洲电影第三页| 成人免费一区二区三区视频 | 欧美不卡一二三| 欧美私人免费视频| 波多野结衣精品在线|