Xv: Remove excessive module-induced indirection
Xv used to call XvScreenInit and co. through function pointers, as XvScreenInit may have been sitting on the other side of a module boundary from xf86XvScreenInit. Why this was so is a mystery, but make it not so any more. Signed-off-by: Tomas Carnecky <tom@dbservice.com> Reviewed-by: Daniel Stone <daniel@fooishbar.org> Acked-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
parent
2e6c5f9591
commit
5d92ee4081
|
@ -70,10 +70,6 @@ extern _X_EXPORT RESTYPE XvRTVideoNotify;
|
|||
extern _X_EXPORT RESTYPE XvRTVideoNotifyList;
|
||||
extern _X_EXPORT RESTYPE XvRTPortNotify;
|
||||
|
||||
extern DevPrivateKey (*XvGetScreenKeyProc)(void);
|
||||
extern unsigned long (*XvGetRTPortProc)(void);
|
||||
extern int (*XvScreenInitProc)(ScreenPtr);
|
||||
|
||||
typedef struct {
|
||||
int numerator;
|
||||
int denominator;
|
||||
|
|
|
@ -194,18 +194,6 @@ XvExtensionInit(void)
|
|||
}
|
||||
}
|
||||
|
||||
DevPrivateKey (*XvGetScreenKeyProc)(void) = NULL;
|
||||
unsigned long (*XvGetRTPortProc)(void) = NULL;
|
||||
int (*XvScreenInitProc)(ScreenPtr) = NULL;
|
||||
|
||||
void
|
||||
XvRegister(void)
|
||||
{
|
||||
XvScreenInitProc = XvScreenInit;
|
||||
XvGetScreenKeyProc = XvGetScreenKey;
|
||||
XvGetRTPortProc = XvGetRTPort;
|
||||
}
|
||||
|
||||
static Bool
|
||||
CreateResourceTypes(void)
|
||||
{
|
||||
|
|
|
@ -764,12 +764,6 @@ XvMCScreenInit(ScreenPtr pScreen, int num, XvMCAdaptorPtr pAdapt)
|
|||
return Success;
|
||||
}
|
||||
|
||||
void
|
||||
XvMCRegister(void)
|
||||
{
|
||||
XvMCScreenInitProc = XvMCScreenInit;
|
||||
}
|
||||
|
||||
XvImagePtr
|
||||
XvMCFindXvImage(XvPortPtr pPort, CARD32 id)
|
||||
{
|
||||
|
|
|
@ -182,17 +182,17 @@ KdXVScreenInit(ScreenPtr pScreen, KdVideoAdaptorPtr * adaptors, int num)
|
|||
if (KdXVGeneration != serverGeneration)
|
||||
KdXVGeneration = serverGeneration;
|
||||
|
||||
if (!XvGetScreenKeyProc || !XvGetRTPortProc || !XvScreenInitProc)
|
||||
if (noXvExtension)
|
||||
return FALSE;
|
||||
|
||||
if (!dixRegisterPrivateKey(&KdXVWindowKeyRec, PRIVATE_WINDOW, 0))
|
||||
return FALSE;
|
||||
|
||||
if (Success != (*XvScreenInitProc) (pScreen))
|
||||
if (Success != XvScreenInit(pScreen))
|
||||
return FALSE;
|
||||
|
||||
KdXvScreenKey = (*XvGetScreenKeyProc) ();
|
||||
PortResource = (*XvGetRTPortProc) ();
|
||||
KdXvScreenKey = XvGetScreenKey();
|
||||
PortResource = XvGetRTPort();
|
||||
|
||||
pxvs = GET_XV_SCREEN(pScreen);
|
||||
|
||||
|
|
|
@ -234,19 +234,18 @@ xf86XVScreenInit(ScreenPtr pScreen, XF86VideoAdaptorPtr * adaptors, int num)
|
|||
XF86XVScreenPtr ScreenPriv;
|
||||
XvScreenPtr pxvs;
|
||||
|
||||
if (num <= 0 ||
|
||||
!XvGetScreenKeyProc || !XvGetRTPortProc || !XvScreenInitProc)
|
||||
if (num <= 0 || noXvExtension)
|
||||
return FALSE;
|
||||
|
||||
if (Success != (*XvScreenInitProc) (pScreen))
|
||||
if (Success != XvScreenInit(pScreen))
|
||||
return FALSE;
|
||||
|
||||
if (!dixRegisterPrivateKey(&XF86XVWindowKeyRec, PRIVATE_WINDOW, 0))
|
||||
return FALSE;
|
||||
|
||||
XF86XvScreenKey = (*XvGetScreenKeyProc) ();
|
||||
XF86XvScreenKey = XvGetScreenKey();
|
||||
|
||||
PortResource = (*XvGetRTPortProc) ();
|
||||
PortResource = XvGetRTPort();
|
||||
|
||||
pxvs = GET_XV_SCREEN(pScreen);
|
||||
|
||||
|
|
|
@ -152,7 +152,7 @@ xf86XvMCScreenInit(ScreenPtr pScreen,
|
|||
XF86XvScreenKey);
|
||||
int i, j;
|
||||
|
||||
if (!XvMCScreenInitProc)
|
||||
if (noXvExtension)
|
||||
return FALSE;
|
||||
|
||||
if (!(pAdapt = malloc(sizeof(XvMCAdaptorRec) * num_adaptors)))
|
||||
|
@ -201,7 +201,7 @@ xf86XvMCScreenInit(ScreenPtr pScreen,
|
|||
adaptors++;
|
||||
}
|
||||
|
||||
if (Success != (*XvMCScreenInitProc) (pScreen, num_adaptors, pAdapt))
|
||||
if (Success != XvMCScreenInit(pScreen, num_adaptors, pAdapt))
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -138,7 +138,4 @@ extern _X_EXPORT Bool xf86XvMCScreenInit(ScreenPtr pScreen,
|
|||
extern _X_EXPORT XF86MCAdaptorPtr xf86XvMCCreateAdaptorRec(void);
|
||||
extern _X_EXPORT void xf86XvMCDestroyAdaptorRec(XF86MCAdaptorPtr adaptor);
|
||||
|
||||
typedef int (*XvMCScreenInitProcPtr) (ScreenPtr, int, XvMCAdaptorPtr);
|
||||
extern _X_EXPORT XvMCScreenInitProcPtr XvMCScreenInitProc;
|
||||
|
||||
#endif /* _XF86XVMC_H */
|
||||
|
|
|
@ -181,8 +181,6 @@ extern void PseudoramiXExtensionInit(void);
|
|||
extern Bool noXvExtension;
|
||||
extern void XvExtensionInit(void);
|
||||
extern void XvMCExtensionInit(void);
|
||||
extern void XvRegister(void);
|
||||
extern void XvMCRegister(void);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -413,8 +413,8 @@ static ExtensionModule staticExtensions[] = {
|
|||
{ResExtensionInit, XRES_NAME, &noResExtension, NULL},
|
||||
#endif
|
||||
#ifdef XV
|
||||
{XvExtensionInit, XvName, &noXvExtension, XvRegister},
|
||||
{XvMCExtensionInit, XvMCName, &noXvExtension, XvMCRegister},
|
||||
{XvExtensionInit, XvName, &noXvExtension, NULL},
|
||||
{XvMCExtensionInit, XvMCName, &noXvExtension, NULL},
|
||||
#endif
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user