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

📄 atixv.c.diff2

📁 linux TV 源码
💻 DIFF2
📖 第 1 页 / 共 3 页
字号:
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 + -