b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/***********************************************************
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncCopyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncand the Massachusetts Institute of Technology, Cambridge, Massachusetts.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync All Rights Reserved
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPermission to use, copy, modify, and distribute this software and its
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncdocumentation for any purpose and without fee is hereby granted,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncprovided that the above copyright notice appear in all copies and that
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncboth that copyright notice and this permission notice appear in
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncsupporting documentation, and that the names of Digital or MIT not be
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncused in advertising or publicity pertaining to distribution of the
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncsoftware without specific, written prior permission.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncSOFTWARE.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync******************************************************************/
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#ifndef XVDIX_H
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define XVDIX_H
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** File:
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync**
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** xvdix.h --- Xv device independent header file
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync**
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** Author:
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync**
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** David Carver (Digital Workstation Engineering/Project Athena)
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync**
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** Revisions:
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync**
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** 29.08.91 Carver
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** - removed UnrealizeWindow wrapper unrealizing windows no longer
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** preempts video
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync**
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** 11.06.91 Carver
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** - changed SetPortControl to SetPortAttribute
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** - changed GetPortControl to GetPortAttribute
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** - changed QueryBestSize
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync**
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** 15.05.91 Carver
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** - version 2.0 upgrade
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync**
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** 24.01.91 Carver
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** - version 1.4 upgrade
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync**
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync*/
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include "scrnintstr.h"
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include <X11/extensions/Xvproto.h>
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#ifndef XorgLoader
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT unsigned long XvExtensionGeneration;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT unsigned long XvScreenGeneration;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT unsigned long XvResourceGeneration;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int XvReqCode;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int XvEventBase;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int XvErrorBase;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT unsigned long XvRTPort;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT unsigned long XvRTEncoding;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT unsigned long XvRTGrab;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT unsigned long XvRTVideoNotify;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT unsigned long XvRTVideoNotifyList;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT unsigned long XvRTPortNotify;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int numerator;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int denominator;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} XvRationalRec, *XvRationalPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync char depth;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned long visual;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} XvFormatRec, *XvFormatPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned long id;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ClientPtr client;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} XvGrabRec, *XvGrabPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _XvVideoNotifyRec {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync struct _XvVideoNotifyRec *next;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ClientPtr client;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned long id;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned long mask;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} XvVideoNotifyRec, *XvVideoNotifyPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _XvPortNotifyRec {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync struct _XvPortNotifyRec *next;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ClientPtr client;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned long id;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} XvPortNotifyRec, *XvPortNotifyPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int id;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ScreenPtr pScreen;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync char *name;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned short width, height;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync XvRationalRec rate;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} XvEncodingRec, *XvEncodingPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _XvAttributeRec {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int flags;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int min_value;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int max_value;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync char *name;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} XvAttributeRec, *XvAttributePtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int id;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int type;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int byte_order;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync char guid[16];
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int bits_per_pixel;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int format;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int num_planes;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* for RGB formats only */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int depth;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int red_mask;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int green_mask;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int blue_mask;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* for YUV formats only */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int y_sample_bits;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int u_sample_bits;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int v_sample_bits;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int horz_y_period;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int horz_u_period;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int horz_v_period;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int vert_y_period;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int vert_u_period;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int vert_v_period;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync char component_order[32];
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int scanline_order;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} XvImageRec, *XvImagePtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned long base_id;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned char type;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync char *name;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nEncodings;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync XvEncodingPtr pEncodings;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nFormats;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync XvFormatPtr pFormats;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nAttributes;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync XvAttributePtr pAttributes;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nImages;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync XvImagePtr pImages;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nPorts;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync struct _XvPortRec *pPorts;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ScreenPtr pScreen;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int (* ddAllocatePort)(unsigned long, struct _XvPortRec*,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync struct _XvPortRec**);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int (* ddFreePort)(struct _XvPortRec*);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int (* ddPutVideo)(ClientPtr, DrawablePtr,struct _XvPortRec*, GCPtr,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16, INT16, CARD16, CARD16,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16, INT16, CARD16, CARD16);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int (* ddPutStill)(ClientPtr, DrawablePtr,struct _XvPortRec*, GCPtr,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16, INT16, CARD16, CARD16,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16, INT16, CARD16, CARD16);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int (* ddGetVideo)(ClientPtr, DrawablePtr,struct _XvPortRec*, GCPtr,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16, INT16, CARD16, CARD16,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16, INT16, CARD16, CARD16);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int (* ddGetStill)(ClientPtr, DrawablePtr,struct _XvPortRec*, GCPtr,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16, INT16, CARD16, CARD16,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16, INT16, CARD16, CARD16);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int (* ddStopVideo)(ClientPtr, struct _XvPortRec*, DrawablePtr);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int (* ddSetPortAttribute)(ClientPtr, struct _XvPortRec*, Atom, INT32);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int (* ddGetPortAttribute)(ClientPtr, struct _XvPortRec*, Atom, INT32*);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int (* ddQueryBestSize)(ClientPtr, struct _XvPortRec*, CARD8,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CARD16, CARD16,CARD16, CARD16,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int*, unsigned int*);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int (* ddPutImage)(ClientPtr, DrawablePtr, struct _XvPortRec*, GCPtr,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16, INT16, CARD16, CARD16,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16, INT16, CARD16, CARD16,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync XvImagePtr, unsigned char*, Bool,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CARD16, CARD16);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int (* ddQueryImageAttributes)(ClientPtr, struct _XvPortRec*, XvImagePtr,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CARD16*, CARD16*, int*, int*);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DevUnion devPriv;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} XvAdaptorRec, *XvAdaptorPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _XvPortRec {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned long id;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync XvAdaptorPtr pAdaptor;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync XvPortNotifyPtr pNotify;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DrawablePtr pDraw;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ClientPtr client;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync XvGrabRec grab;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync TimeStamp time;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DevUnion devPriv;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} XvPortRec, *XvPortPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define VALIDATE_XV_PORT(portID, pPort, mode)\
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync {\
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int rc = dixLookupResourceByType((pointer *)&(pPort), portID,\
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync XvRTPort, client, mode);\
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync if (rc != Success)\
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync return (rc == BadValue) ? _XvBadPort : rc;\
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync }
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int version, revision;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nAdaptors;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync XvAdaptorPtr pAdaptors;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DestroyWindowProcPtr DestroyWindow;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DestroyPixmapProcPtr DestroyPixmap;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CloseScreenProcPtr CloseScreen;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync Bool (* ddCloseScreen)(int, ScreenPtr);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int (* ddQueryAdaptors)(ScreenPtr, XvAdaptorPtr*, int*);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DevUnion devPriv;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} XvScreenRec, *XvScreenPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define SCREEN_PROLOGUE(pScreen, field) ((pScreen)->field = ((XvScreenPtr) \
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync dixLookupPrivate(&(pScreen)->devPrivates, XvScreenKey))->field)
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define SCREEN_EPILOGUE(pScreen, field, wrapper)\
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ((pScreen)->field = wrapper)
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/* Errors */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define _XvBadPort (XvBadPort+XvErrorBase)
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define _XvBadEncoding (XvBadEncoding+XvErrorBase)
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#ifndef XorgLoader
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int ProcXvDispatch(ClientPtr);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int SProcXvDispatch(ClientPtr);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT void XvExtensionInit(void);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int XvScreenInit(ScreenPtr);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT DevPrivateKey XvGetScreenKey(void);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT unsigned long XvGetRTPort(void);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int XvdiSendPortNotify(XvPortPtr, Atom, INT32);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int XvdiVideoStopped(XvPortPtr, int);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int XvdiPutVideo(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16, INT16, CARD16, CARD16,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16, INT16, CARD16, CARD16);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int XvdiPutStill(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16, INT16, CARD16, CARD16,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16, INT16, CARD16, CARD16);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int XvdiGetVideo(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16, INT16, CARD16, CARD16,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16, INT16, CARD16, CARD16);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int XvdiGetStill(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16, INT16, CARD16, CARD16,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16, INT16, CARD16, CARD16);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int XvdiPutImage(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16, INT16, CARD16, CARD16,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16, INT16, CARD16, CARD16,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync XvImagePtr, unsigned char*, Bool,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CARD16, CARD16);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int XvdiSelectVideoNotify(ClientPtr, DrawablePtr, BOOL);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int XvdiSelectPortNotify(ClientPtr, XvPortPtr, BOOL);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int XvdiSetPortAttribute(ClientPtr, XvPortPtr, Atom, INT32);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int XvdiGetPortAttribute(ClientPtr, XvPortPtr, Atom, INT32*);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int XvdiStopVideo(ClientPtr, XvPortPtr, DrawablePtr);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int XvdiPreemptVideo(ClientPtr, XvPortPtr, DrawablePtr);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int XvdiMatchPort(XvPortPtr, DrawablePtr);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int XvdiGrabPort(ClientPtr, XvPortPtr, Time, int *);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int XvdiUngrabPort( ClientPtr, XvPortPtr, Time);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif /* XorgLoader */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif /* XVDIX_H */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync