diff -p -up xf86-video-viaarena/src/include/close/overlay.h.orig xf86-video-viaarena/src/include/close/overlay.h --- xf86-video-viaarena/src/include/close/overlay.h.orig 2008-01-04 15:34:06.000000000 -0200 +++ xf86-video-viaarena/src/include/close/overlay.h 2008-01-04 15:46:26.000000000 -0200 @@ -91,11 +91,12 @@ typedef struct }TV_DCLK_TABLE, * LPTV_DCLK_TABLE; /******************End of RejectOverlaySupport **************************/ +#ifdef WITHOUT_SOURCE Bool RejectOverlay(PVIDDATA pVidData); Bool RejectOverlay_3123C0(PVIDDATA pVidData); Bool RejectOverlay_3205(PVIDDATA pVidData); Bool RejectOverlay_3204(PVIDDATA pVidData); - +#endif #ifndef __KERNEL__ #if defined(XFree86Server) || defined(XORGSERVER) @@ -139,7 +140,10 @@ typedef struct _S3OVERLAYPROPERTY S3OVRLAYPROPERTY; void SetVideoColor(PVIDDATA pVidData, long Hue, long Saturation, long Brightness, long Contrast); +#ifdef WITHOUT_SOURCE unsigned long vfLoadColorSetting(PVIDDATA pVidData, viaPortPrivPtr pPriv); +#endif + #endif /* ifndef __KERNEL__*/ #endif /* ifndef VMIONLY */ diff -p -up xf86-video-viaarena/src/include/close/ddmpeg.h.orig xf86-video-viaarena/src/include/close/ddmpeg.h --- xf86-video-viaarena/src/include/close/ddmpeg.h.orig 2008-01-04 15:43:21.000000000 -0200 +++ xf86-video-viaarena/src/include/close/ddmpeg.h 2008-01-04 15:46:31.000000000 -0200 @@ -187,8 +187,10 @@ typedef struct _MPEGFBSTATUS unsigned long LockSurface(PVIDDATA pVidData, LPDDLOCK lpLock); #ifndef HW_SLICE +#ifdef WITHOUT_SOURCE unsigned long UpdateOverlay(PVIDDATA pVidData, LPDDUPDATEOVERLAY lpUpdate); #endif +#endif unsigned long Flip(PVIDDATA pVidData, unsigned long DisplayBufferIndex); unsigned long HQVControl(PVIDDATA pVidData, LPVIAVIDCTRL lpNewVidCtl ); void VIAAlphaWin(PVIDDATA pVidData, LPALPHACTRL lpParam); diff -p -up xf86-video-viaarena/src/via_video.c.orig xf86-video-viaarena/src/via_video.c --- xf86-video-viaarena/src/via_video.c.orig 2008-01-04 14:56:55.000000000 -0200 +++ xf86-video-viaarena/src/via_video.c 2008-01-04 15:46:19.000000000 -0200 @@ -421,11 +421,13 @@ void viaInitVideo(ScreenPtr pScreen) num_adaptors = xf86XVListGenericAdaptors(pScrn, &adaptors); DBG_DD((" via_video.c : num_adaptors : %d\n",num_adaptors)); - if (!pVia->NoXVideo) +#ifdef WITHOUT_SOURCE + if (!pVia->NoXVideo) { newAdaptor = viaSetupImageVideoG(pScreen); } else +#endif { if(num_adaptors) { @@ -759,7 +761,9 @@ unsigned long CreateOVSurface(ScrnInfoPt break; } +#ifdef WITHOUT_SOURCE vfLoadColorSetting(pVidData,pPriv); +#endif if(pVia->pBIOSInfo->SAMM) { /*If SAMM, gviaPortPriv[0]will pointed to the second Screen's xv priv, we use this to sync @@ -779,7 +783,9 @@ unsigned long CreateOVSurface(ScrnInfoPt if(XV_SWOV_PORTID == pPriv->xv_portnum) pVidData->VMI_Info.handle=0; else if(XV_SWOV_PORTID2 == pPriv->xv_portnum) pVidData->VMI_Info.handle=1; /*MarkTu[2006.09.22]:The above statement will clear the color value so reload it*/ +#ifdef WITHOUT_SOURCE vfLoadColorSetting(pVidData,pPriv); +#endif memcpy(&(pVidData->DDSurfaceDesc), &(pPriv->SurfaceDesc), sizeof(DDSURFACEDESC)); if ( -1 == ioctl(fd, VIA_VID_CREATESURFACE, (PVIDDATA)pVidData)) @@ -804,7 +810,9 @@ unsigned long CreateOVSurface(ScrnInfoPt { DBG_DD(("test: seanzhang\n")); +#ifdef WITHOUT_SOURCE fpCreateSurface(pVidData, lpSurfaceDesc); +#endif /* VIAVidLockSurface(pScrn, &pPriv->ddLock); */ lpSWDevice->lpSWOverlaySurface[0] = FBBase + lpSWDevice->dwSWPhysicalAddr[0]; @@ -872,7 +880,9 @@ void DestroyOVSurface(ScrnInfoPtr pScrn, return; } +#ifdef WITHOUT_SOURCE fpDestroySurface(pVidData, lpSurfaceDesc); +#endif } /* else (pVia->V4LEnabled == 1) */ @@ -906,7 +916,9 @@ void StopOVerlay(ScrnInfoPtr pScrn, int if (lpVidStatus->dwVideoFlagSW[handle]) { lpUpdateOverlay->dwFlags = DDOVER_HIDE; +#ifdef WITHOUT_SOURCE UpdateOverlay(pVidData, lpUpdateOverlay); +#endif } } } @@ -1241,10 +1253,14 @@ viaSetPortAttributeG( switch (lpVIAGraphicInfo->dwProjectIDRevision) { case UNICHROME_VT3123AX: +#ifdef WITHOUT_SOURCE pVidData->dwRejectOverlay = RejectOverlay(pVidData); +#endif break; case UNICHROME_VT3123CX: +#ifdef WITHOUT_SOURCE pVidData->dwRejectOverlay = RejectOverlay_3123C0(pVidData); +#endif break; case UNICHROME_VT3204: /* [GrafYang 2006.07.20]: Make XV path have the same behavior with VMI path @@ -1253,7 +1269,9 @@ viaSetPortAttributeG( */ /*[2004.10.26 seanzhang] fix samm mode bug, there is no image in video window*/ +#ifdef WITHOUT_SOURCE pVidData->dwRejectOverlay = RejectOverlay_3204(pVidData); +#endif DBG_DD((" via_video.c : dwRejectOverlay returned value=%d : \n",pVidData->dwRejectOverlay)); break; @@ -1265,7 +1283,9 @@ viaSetPortAttributeG( case UNICHROME_VT3324: case UNICHROME_VT3293: */ +#ifdef WITHOUT_SOURCE pVidData->dwRejectOverlay = RejectOverlay_3205(pVidData); +#endif break; /* [GrafYang 2006.07.20]: Make XV path have the same behavior with VMI path case UNICHROME_VT3327: @@ -1396,28 +1416,36 @@ viaSetPortAttributeG( { DBG_DD((" xvContrast = %08d\n",value)); pPriv->contrast = value; +#ifdef WITHOUT_SOURCE SetVideoColor(pVidData, pPriv->hue, pPriv->saturation, pPriv->brightness, pPriv->contrast); +#endif } if (attribute == xvSaturation) { DBG_DD((" xvSaturation = %08d\n",value)); pPriv->saturation = value; +#ifdef WITHOUT_SOURCE SetVideoColor(pVidData, pPriv->hue, pPriv->saturation, pPriv->brightness, pPriv->contrast); +#endif } if (attribute == xvHue) { DBG_DD((" xvHue = %08d\n",value)); pPriv->hue = value; +#ifdef WITHOUT_SOURCE SetVideoColor(pVidData, pPriv->hue, pPriv->saturation, pPriv->brightness, pPriv->contrast); +#endif } if (attribute == xvBrightness) { DBG_DD((" xvBrightness = %08d\n",value)); pPriv->brightness = value; +#ifdef WITHOUT_SOURCE SetVideoColor(pVidData, pPriv->hue, pPriv->saturation, pPriv->brightness, pPriv->contrast); +#endif } break; @@ -1653,25 +1681,33 @@ viaSetPortAttributeG( { DBG_DD((" xvContrast = %08d\n",value)); pPriv->contrast = value; +#ifdef WITHOUT_SOURCE SetVideoColor(pVidData, pPriv->hue, pPriv->saturation, pPriv->brightness, pPriv->contrast); +#endif } else if (attribute == xvSaturation) { DBG_DD((" xvSaturation = %08d\n",value)); pPriv->saturation = value; +#ifdef WITHOUT_SOURCE SetVideoColor(pVidData, pPriv->hue, pPriv->saturation, pPriv->brightness, pPriv->contrast); - } +#endif + } else if (attribute == xvHue) { DBG_DD((" xvHue = %08d\n",value)); pPriv->hue = value; +#ifdef WITHOUT_SOURCE SetVideoColor(pVidData, pPriv->hue, pPriv->saturation, pPriv->brightness, pPriv->contrast); +#endif } else if (attribute == xvBrightness) { DBG_DD((" xvBrightness = %08d\n",value)); pPriv->brightness = value; +#ifdef WITHOUT_SOURCE SetVideoColor(pVidData, pPriv->hue, pPriv->saturation, pPriv->brightness, pPriv->contrast); +#endif } /* Audio control */ else if (attribute == xvMute) @@ -2497,7 +2533,9 @@ VIAOVUpdateOverlay ( else { +#ifdef WITHOUT_SOURCE if (UpdateOverlay(pVidData, lpUpdateOverlay) == -1) +#endif { DBG_DD((" via_video.c : : call v4l updateoverlay fail. \n")); return XvBadAlloc; diff -p -up xf86-video-viaarena/src/via_driver.c.orig xf86-video-viaarena/src/via_driver.c --- xf86-video-viaarena/src/via_driver.c.orig 2008-01-04 15:53:54.000000000 -0200 +++ xf86-video-viaarena/src/via_driver.c 2008-01-04 15:54:22.000000000 -0200 @@ -7857,7 +7857,9 @@ void VIAAdjustFrame(int scrnIndex, int x UpdateOverlayRec.dwFourcc = FOURCC_VIA; UpdateOverlayRec.dwFlags |= (DDOVER_SHOW | DDOVER_KEYDEST); pVidData->UpdateOverlayRec = UpdateOverlayRec; +#ifdef WITHOUT_SOURCE UpdateOverlay(pVidData, &pVidData->UpdateOverlayRec); +#endif } /* MPEG */ if(pVidData->VidStatus.dwVideoFlagSW[handle]) { @@ -7872,7 +7874,9 @@ void VIAAdjustFrame(int scrnIndex, int x UpdateOverlayRec.dwFourcc = FOURCC_YUY2; UpdateOverlayRec.dwFlags |= (DDOVER_SHOW | DDOVER_KEYDEST); pVidData->UpdateOverlayRec = UpdateOverlayRec; +#ifdef WITHOUT_SOURCE UpdateOverlay(pVidData, &pVidData->UpdateOverlayRec); +#endif } /* SW */ /* } for handle=0,1 */ } /* else (pVia->V4LEnabled == 1) */