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