meson_options: disable XvMC build by default

XvMC is only helpful for old MPEG2 decoding (and here only some specific
part, the motion compensation). It's only supported by few cards, and needs
special client-side drivers, which need to have direct and pretty low-level
(non-DRI) GPU access (usually involving root access).

Since it's local-only anyways, modern clients can use generic GPU shaders
for various video formats (via standard DRI/mesa) and send whole frames.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult 2026-08-03 11:51:23 +02:00 • committed by Enrico Weigelt
commit 9f913a3156
6 changed files with 22 additions and 2 deletions

View file

@ -1,9 +1,12 @@
srcs_xv = [
'xvmain.c',
'xvdisp.c',
'xvmc.c',
]
if build_xvmc
srcs_xv += 'xvmc.c'
endif
libxserver_xv = []
if build_xv
libxserver_xv = static_library('xserver_xv',

View file

@ -80,6 +80,8 @@ int XvdiMatchPort(XvPortPtr pPort, DrawablePtr pDraw);
int XvdiGrabPort(ClientPtr client, XvPortPtr pPort, Time ctime, int *p_result);
int XvdiUngrabPort(ClientPtr client, XvPortPtr pPort, Time ctime);
#ifdef XvMCExtension
XvImagePtr XvMCFindXvImage(XvPortPtr pPort, CARD32 id);
#endif
#endif /* _XORG_XVDIX_PRIV_H */

View file

@ -43,6 +43,7 @@
#include "xf86xvpriv.h"
#include "xf86xvmc.h"
#ifdef XvMCExtension
typedef struct {
int num_adaptors;
XF86MCAdaptorPtr *adaptors;
@ -206,6 +207,16 @@ xf86XvMCScreenInit(ScreenPtr pScreen,
return TRUE;
}
#else /* !XvMCExtension */
Bool
xf86XvMCScreenInit(ScreenPtr pScreen, int num_adaptors, XF86MCAdaptorPtr *adaptors)
{
(void) pScreen;
(void) num_adaptors;
(void) adaptors;
return FALSE;
}
#endif /* XvMCExtension */
XF86MCAdaptorPtr
xf86XvMCCreateAdaptorRec(void)

View file

@ -111,7 +111,7 @@ option('xcsecurity', type: 'boolean', value: false,
description: 'Security extension')
option('xv', type: 'boolean', value: true,
description: 'Xv extension')
option('xvmc', type: 'boolean', value: true,
option('xvmc', type: 'boolean', value: false,
description: 'XvMC extension')
option('dga', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto',
description: 'DGA extension')

View file

@ -156,8 +156,10 @@ static const ExtensionModule staticExtensions[] = {
#endif
#ifdef XV
{XvExtensionInit, "XVideo", &noXvExtension},
#ifdef XvMCExtension
{XvMCExtensionInit, "XVideo-MotionCompensation", &noXvExtension},
#endif
#endif
#ifdef XSELINUX
{SELinuxExtensionInit, "SELinux", &noSELinuxExtension},
#endif

View file

@ -62,7 +62,9 @@ void XkbExtensionInit(void);
void SELinuxExtensionInit(void);
void XTestExtensionInit(void);
void XvExtensionInit(void);
#ifdef XvMCExtension
void XvMCExtensionInit(void);
#endif
void dri3_extension_init(void);
void PseudoramiXExtensionInit(void);
void present_extension_init(void);