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