summaryrefslogtreecommitdiff
path: root/lib/xvmc/xvmce.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/xvmc/xvmce.c')
-rw-r--r--lib/xvmc/xvmce.c31
1 files changed, 30 insertions, 1 deletions
diff --git a/lib/xvmc/xvmce.c b/lib/xvmc/xvmce.c
index 0576e60..69827d1 100644
--- a/lib/xvmc/xvmce.c
+++ b/lib/xvmc/xvmce.c
@@ -30,6 +30,7 @@
#include <X11/Xlib.h>
#include <X11/extensions/Xv.h>
#include <X11/extensions/Xvlib.h>
+#include <X11/extensions/vldXvMC.h>
#include <stdio.h>
@@ -78,7 +79,7 @@ XEXT_GENERATE_FIND_DISPLAY(XvMCEFindDisplay, XvMCEExtInfo, XVMCE_EXT_NAME,
dpy->bufptr += SIZEOF(xvmce##name##Req);\
dpy->request++
-#define XvmceGetReqExtra(name, req, len) \
+#define XvMCEGetReqExtra(name, req, len) \
WORD64ALIGN\
if ((dpy->bufptr + SIZEOF(xvmce##name##Req)) > dpy->bufmax)\
_XFlush(dpy);\
@@ -131,3 +132,31 @@ XvMCEQueryExtension(Display *dpy, int *Version, int *Release,
return status;
}
+
+/*
+ *
+ */
+Status
+XvMCEQMatrixSend(Display *dpy, XvPortID port, char type,
+ const unsigned char qmatrix[64])
+{
+ XExtDisplayInfo *info = XvMCEFindDisplay(dpy);
+ xvmceQMatrixSendReq *req;
+
+ XvMCECheckExtension(dpy, info, BadImplementation);
+
+ LockDisplay(dpy);
+
+ XvMCEGetReqExtra(QMatrixSend, req, 64);
+
+ req->Port = port;
+ req->Type = type;
+
+ _XSend(dpy, (char *) qmatrix, 64);
+
+ UnlockDisplay(dpy);
+ SyncHandle();
+
+ return Success;
+}
+