📄 atixv.c.diff2
字号:
53c53< #define ZV_ENABLE 0x0100---> 69,103c69,104< ScreenPtr pScreen,< ScrnInfoPtr pScreenInfo,< ATIPtr pATI< )< {< XF86VideoAdaptorPtr *ppAdaptors, *ppNewAdaptors=NULL;< XF86VideoAdaptorPtr newAdaptor = NULL;< int nAdaptors;< Bool result;< < if (!(pScreenInfo->memPhysBase = pATI->LinearBase))< return FALSE;< < if(pATI->pXAAInfo && pATI->pXAAInfo->FillSolidRects){< newAdaptor = ATISetupImageVideo(pScreen);< }< < pScreenInfo->fbOffset = 0;< < nAdaptors = xf86XVListGenericAdaptors(pScreenInfo, &ppAdaptors);< < if(newAdaptor) {< if(!nAdaptors) {< nAdaptors = 1;< ppAdaptors = &newAdaptor;< } else {< ppNewAdaptors = /* need to free this someplace */< xalloc((nAdaptors + 1) * sizeof(XF86VideoAdaptorPtr*));< if(ppNewAdaptors) {< memcpy(ppNewAdaptors, ppAdaptors, nAdaptors *< sizeof(XF86VideoAdaptorPtr));< ppNewAdaptors[nAdaptors] = newAdaptor;< ppAdaptors = ppNewAdaptors;< nAdaptors++;< }---> ScreenPtr pScreen,> ScrnInfoPtr pScreenInfo,> ATIPtr pATI> )> {> XF86VideoAdaptorPtr *ppAdaptors, *ppNewAdaptors=NULL;> XF86VideoAdaptorPtr newAdaptor = NULL;> int nAdaptors;> Bool result;> > if (!(pScreenInfo->memPhysBase = pATI->LinearBase))> return FALSE;> > if(pATI->pXAAInfo && pATI->pXAAInfo->FillSolidRects){> newAdaptor = ATISetupImageVideo(pScreen);> }> > pScreenInfo->fbOffset = 0;> > nAdaptors = xf86XVListGenericAdaptors(pScreenInfo, &ppAdaptors);> > if(newAdaptor) {> if(!nAdaptors) {> nAdaptors = 1;> ppAdaptors = &newAdaptor;> } else {> ppNewAdaptors = /* need to free this someplace */> xalloc((nAdaptors + 1) * sizeof(XF86VideoAdaptorPtr*));> if(ppNewAdaptors) {> memcpy(ppNewAdaptors, ppAdaptors, nAdaptors *> sizeof(XF86VideoAdaptorPtr));> ppNewAdaptors[nAdaptors] = newAdaptor;> ppAdaptors = ppNewAdaptors;> nAdaptors++;> }> }105,113c106,113< }< < if(nAdaptors)< result=xf86XVScreenInit(pScreen, ppAdaptors, nAdaptors);< else result=FALSE;< if(ppNewAdaptors)< xfree(ppNewAdaptors);< < return result;---> > if(nAdaptors)> result=xf86XVScreenInit(pScreen, ppAdaptors, nAdaptors);> else result=FALSE;> if(ppNewAdaptors)> xfree(ppNewAdaptors);> > return result;197d196< Bool zv_port;284,286c283< { 12,"pal_60-svideo", 720, 288, { 1, 50 }},< { 13,"pal_zv", 720, 576, { 1, 1 }},< { 14,"ntsc_zv", 640, 480, { 1, 1 }}---> { 12,"pal_60-svideo", 720, 288, { 1, 50 }}304,306c301< { 12,"pal_60-svideo", 768, 288, { 1, 50 }},< { 13,"pal_zv", 720, 288, { 1, 1 }},< { 14,"ntsc_zv", 640, 240, { 1, 1 }}---> { 12,"pal_60-svideo", 768, 288, { 1, 50 }}424,461c419,456< ATIPtr pATI = ATIPTR(pScrn);< ATIPortPrivPtr pPriv = pATI->adaptor->pPortPrivates[0].ptr;< < /* this is done here because each time the server is reset these< could change.. Otherwise they remain constant */< < xvBrightness = MAKE_ATOM("XV_BRIGHTNESS");< xvSaturation = MAKE_ATOM("XV_SATURATION");< xvColor = MAKE_ATOM("XV_COLOR");< xvContrast = MAKE_ATOM("XV_CONTRAST");< xvColorKey = MAKE_ATOM("XV_COLORKEY");< xvDoubleBuffer = MAKE_ATOM("XV_DOUBLE_BUFFER");< xvEncoding = MAKE_ATOM("XV_ENCODING");< xvFrequency = MAKE_ATOM("XV_FREQ");< xvTunerStatus = MAKE_ATOM("XV_TUNER_STATUS");< xvVolume = MAKE_ATOM("XV_VOLUME");< xvMute = MAKE_ATOM("XV_MUTE");< xvHue = MAKE_ATOM("XV_HUE");< xv_autopaint_colorkey = MAKE_ATOM("XV_AUTOPAINT_COLORKEY");< xv_set_defaults = MAKE_ATOM("XV_SET_DEFAULTS");< < ATIMach64WaitForFIFO(pATI, 14);< outf(OVERLAY_SCALE_CNTL, 0x80000000);< outf(OVERLAY_EXCLUSIVE_HORZ, 0);< outf(OVERLAY_EXCLUSIVE_VERT, 0);< outf(SCALER_H_COEFF0, 0x00002000);< outf(SCALER_H_COEFF1, 0x0D06200D);< outf(SCALER_H_COEFF2, 0x0D0A1C0D);< outf(SCALER_H_COEFF3, 0x0C0E1A0C);< outf(SCALER_H_COEFF4, 0x0C14140C);< outf(SCALER_COLOUR_CNTL, (pPriv->brightness & 0x7f) |< (pPriv->saturation << 8) |< (pPriv->saturation << 16));< outf(VIDEO_FORMAT, 0xB000B);< outf(OVERLAY_GRAPHICS_KEY_MSK, (1 << pScrn->depth) - 1);< outf(OVERLAY_GRAPHICS_KEY_CLR, pPriv->colorKey);< outf(OVERLAY_KEY_CNTL, 0x50);< outf(OVERLAY_TEST, 0);---> ATIPtr pATI = ATIPTR(pScrn);> ATIPortPrivPtr pPriv = pATI->adaptor->pPortPrivates[0].ptr;> > /* this is done here because each time the server is reset these> could change.. Otherwise they remain constant */> > xvBrightness = MAKE_ATOM("XV_BRIGHTNESS");> xvSaturation = MAKE_ATOM("XV_SATURATION");> xvColor = MAKE_ATOM("XV_COLOR");> xvContrast = MAKE_ATOM("XV_CONTRAST");> xvColorKey = MAKE_ATOM("XV_COLORKEY");> xvDoubleBuffer = MAKE_ATOM("XV_DOUBLE_BUFFER");> xvEncoding = MAKE_ATOM("XV_ENCODING");> xvFrequency = MAKE_ATOM("XV_FREQ");> xvTunerStatus = MAKE_ATOM("XV_TUNER_STATUS");> xvVolume = MAKE_ATOM("XV_VOLUME");> xvMute = MAKE_ATOM("XV_MUTE");> xvHue = MAKE_ATOM("XV_HUE");> xv_autopaint_colorkey = MAKE_ATOM("XV_AUTOPAINT_COLORKEY");> xv_set_defaults = MAKE_ATOM("XV_SET_DEFAULTS");> > ATIMach64WaitForFIFO(pATI, 14);> outf(OVERLAY_SCALE_CNTL, 0x80000000);> outf(OVERLAY_EXCLUSIVE_HORZ, 0);> outf(OVERLAY_EXCLUSIVE_VERT, 0);> outf(SCALER_H_COEFF0, 0x00002000);> outf(SCALER_H_COEFF1, 0x0D06200D);> outf(SCALER_H_COEFF2, 0x0D0A1C0D);> outf(SCALER_H_COEFF3, 0x0C0E1A0C);> outf(SCALER_H_COEFF4, 0x0C14140C);> outf(SCALER_COLOUR_CNTL, (pPriv->brightness & 0x7f) |> (pPriv->saturation << 8) |> (pPriv->saturation << 16));> outf(VIDEO_FORMAT, 0xB000B);> outf(OVERLAY_GRAPHICS_KEY_MSK, (1 << pScrn->depth) - 1);> outf(OVERLAY_GRAPHICS_KEY_CLR, pPriv->colorKey);> outf(OVERLAY_KEY_CNTL, 0x50);> outf(OVERLAY_TEST, 0);1222d1216< 1246c1240,1241< static void ATICheckZV( ScrnInfoPtr pScrn, ATIPtr pATI, ATIPortPrivPtr pPriv)---> static XF86VideoAdaptorPtr> ATISetupImageVideo(ScreenPtr pScreen)1247a1243,1246> ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];> ATIPtr pATI = ATIPTR(pScrn);> ATIPortPrivPtr pPriv;> XF86VideoAdaptorPtr adapt;1249,1258c1248,1252< /* Here should be a check if the chip's ZV port is connected */< < /* A if statement of type < *< if ( (pATI->Chip >= ATI_CHIP_XX1) & (pATI->Chip <= ATI_CHIP_XX2) ) {< pPriv->zv_port = TRUE;< xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Enabling ZV port\n");< }< *< would be better than the switch method below! */---> if(pATI->adaptor!=NULL){> xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Reinitializing Xvideo subsystems\n");> ATIResetVideo(pScrn);> return pATI->adaptor;> }1260c1254,1260< switch (pATI->Chip) {---> if(!(adapt = ATIAllocAdaptor(pScrn)))> return NULL;> > if(pATI->Chip < ATI_CHIP_264VTB) return NULL;> if(pATI->Chip > ATI_CHIP_Mach64) return NULL;> > pPriv = (ATIPortPrivPtr)(adapt->pPortPrivates[0].ptr);1262,1266c1262,1264< case ATI_CHIP_264LTPRO:< xf86DrvMsg(pScrn->scrnIndex, X_INFO, "ATI Chip 264 LT PRO\n"); < pPriv->zv_port = TRUE;< xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Enabling ZV port\n");< break;---> ATIReadMM_TABLE(pScrn, pPriv);> > ATIInitI2C(pScrn,pPriv);1268,1272c1266,1305< case ATI_CHIP_MOBILITY:< xf86DrvMsg(pScrn->scrnIndex, X_INFO, "ATI Chip Mobility\n"); < pPriv->zv_port = TRUE;< xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Enabling ZV port\n");< break;---> adapt->flags = VIDEO_OVERLAID_IMAGES | VIDEO_CLIP_TO_VIEWPORT;> adapt->name = "ATI mach64 Video Overlay";> if(pPriv->bt829 != NULL)> {> adapt->type = XvWindowMask | XvInputMask | XvImageMask | XvVideoMask;> adapt->nEncodings = 13;> if(pATI->Chip >= ATI_CHIP_264GTPRO)> adapt->pEncodings = RagePro_InputVideoEncodings;> else> adapt->pEncodings = VT_GT_InputVideoEncodings;> } else> {> adapt->type = XvWindowMask | XvInputMask | XvImageMask;> adapt->nEncodings = 1;> adapt->pEncodings = &DummyEncoding;> }> adapt->nFormats = NUM_FORMATS;> adapt->pFormats = Formats;> adapt->nPorts = 1;> if(pPriv->MM_TABLE_valid && (pATI->Chip == ATI_CHIP_264GTDVD))> {> adapt->nAttributes = NUM_ATTRIBUTES-1;> adapt->pAttributes = AIWClassicAttributes;> } else> {> adapt->nAttributes = NUM_ATTRIBUTES;> adapt->pAttributes = Attributes;> }> adapt->nImages = NUM_IMAGES;> adapt->pImages = Images;> adapt->PutVideo = ATIPutVideo;> adapt->PutStill = NULL;> adapt->GetVideo = NULL;> adapt->GetStill = NULL;> adapt->StopVideo = ATIStopVideo;> adapt->SetPortAttribute = ATISetPortAttribute;> adapt->GetPortAttribute = ATIGetPortAttribute;> adapt->QueryBestSize = ATIQueryBestSize;> adapt->PutImage = ATIPutImage;> adapt->QueryImageAttributes = ATIQueryImageAttributes;1274,1278d1306< default:< xf86DrvMsg(pScrn->scrnIndex, X_INFO, "No ZV capable chip found\n");< break;< }< }1280,1286c1308< static XF86VideoAdaptorPtr< ATISetupImageVideo(ScreenPtr pScreen)< {< ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];< ATIPtr pATI = ATIPTR(pScrn);< ATIPortPrivPtr pPriv;< XF86VideoAdaptorPtr adapt;---> pATI->adaptor = adapt;1288,1290c1310< if(pATI->adaptor!=NULL) {< xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Reinitializing Xvideo subsystems\n");< ATIResetVideo(pScrn);---> REGION_INIT(pScreen, &(pPriv->clip), NullBox, 0);1292,1328c1312,1317< return pATI->adaptor;< }< < if(!(adapt = ATIAllocAdaptor(pScrn)))< return NULL;< < if(pATI->Chip < ATI_CHIP_264VTB) return NULL;< if(pATI->Chip > ATI_CHIP_Mach64) return NULL;< < pPriv = (ATIPortPrivPtr)(adapt->pPortPrivates[0].ptr);< < ATIReadMM_TABLE(pScrn, pPriv); < ATIInitI2C(pScrn,pPriv);< < ATICheckZV(pScrn, pATI, pPriv); /* Zoomed Video */< < adapt->flags = VIDEO_OVERLAID_IMAGES | VIDEO_CLIP_TO_VIEWPORT;< adapt->name = "ATI mach64 Video Overlay";< if(pPriv->bt829 != NULL || pPriv->zv_port)< {< adapt->type = XvWindowMask | XvInputMask | XvImageMask | XvVideoMask;< < if (pPriv->zv_port)< adapt->nEncodings = 15;< else< adapt->nEncodings = 13;< < if(pATI->Chip >= ATI_CHIP_264GTPRO)< adapt->pEncodings = RagePro_InputVideoEncodings;< else< adapt->pEncodings = VT_GT_InputVideoEncodings;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -