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