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