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