summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaleb Keithley <kaleb@freedesktop.org>2003-11-14 16:48:43 +0000
committerKaleb Keithley <kaleb@freedesktop.org>2003-11-14 16:48:43 +0000
commit787e2f945a39415baa117c6fbf9125af0130cf23 (patch)
treee89b22125b8ff7bf2a7dfbad1d5b5a9b9128e309
Initial revision
-rw-r--r--Xv.h129
-rw-r--r--XvMC.h140
-rw-r--r--XvMCproto.h203
-rw-r--r--Xvproto.h604
4 files changed, 1076 insertions, 0 deletions
diff --git a/Xv.h b/Xv.h
new file mode 100644
index 0000000..a6a0271
--- /dev/null
+++ b/Xv.h
@@ -0,0 +1,129 @@
+/***********************************************************
+Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts,
+and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the names of Digital or MIT not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+******************************************************************/
+/* $XFree86: xc/include/extensions/Xv.h,v 1.5 1999/12/11 19:28:48 mvojkovi Exp $ */
+
+#ifndef XV_H
+#define XV_H
+/*
+** File:
+**
+** Xv.h --- Xv shared library and server header file
+**
+** Author:
+**
+** David Carver (Digital Workstation Engineering/Project Athena)
+**
+** Revisions:
+**
+** 05.15.91 Carver
+** - version 2.0 upgrade
+**
+** 01.24.91 Carver
+** - version 1.4 upgrade
+**
+*/
+
+#include <X11/X.h>
+
+#define XvName "XVideo"
+#define XvVersion 2
+#define XvRevision 2
+
+/* Symbols */
+
+typedef XID XvPortID;
+typedef XID XvEncodingID;
+
+#define XvNone 0
+
+#define XvInput 0
+#define XvOutput 1
+
+#define XvInputMask (1L<<XvInput)
+#define XvOutputMask (1L<<XvOutput)
+#define XvVideoMask 0x00000004
+#define XvStillMask 0x00000008
+#define XvImageMask 0x00000010
+
+/* These two are not client viewable */
+#define XvPixmapMask 0x00010000
+#define XvWindowMask 0x00020000
+
+
+#define XvGettable 0x01
+#define XvSettable 0x02
+
+#define XvRGB 0
+#define XvYUV 1
+
+#define XvPacked 0
+#define XvPlanar 1
+
+#define XvTopToBottom 0
+#define XvBottomToTop 1
+
+
+/* Events */
+
+#define XvVideoNotify 0
+#define XvPortNotify 1
+#define XvNumEvents 2
+
+/* Video Notify Reasons */
+
+#define XvStarted 0
+#define XvStopped 1
+#define XvBusy 2
+#define XvPreempted 3
+#define XvHardError 4
+#define XvLastReason 4
+
+#define XvNumReasons (XvLastReason + 1)
+
+#define XvStartedMask (1L<<XvStarted)
+#define XvStoppedMask (1L<<XvStopped)
+#define XvBusyMask (1L<<XvBusy)
+#define XvPreemptedMask (1L<<XvPreempted)
+#define XvHardErrorMask (1L<<XvHardError)
+
+#define XvAnyReasonMask ((1L<<XvNumReasons) - 1)
+#define XvNoReasonMask 0
+
+/* Errors */
+
+#define XvBadPort 0
+#define XvBadEncoding 1
+#define XvBadControl 2
+#define XvNumErrors 3
+
+/* Status */
+
+#define XvBadExtension 1
+#define XvAlreadyGrabbed 2
+#define XvInvalidTime 3
+#define XvBadReply 4
+#define XvBadAlloc 5
+
+#endif /* XV_H */
+
diff --git a/XvMC.h b/XvMC.h
new file mode 100644
index 0000000..f40c07f
--- /dev/null
+++ b/XvMC.h
@@ -0,0 +1,140 @@
+/* $XFree86: xc/include/extensions/XvMC.h,v 1.8 2002/01/16 01:15:45 mvojkovi Exp $ */
+
+#ifndef _XVMC_H_
+#define _XVMC_H_
+
+#include <X11/X.h>
+#include <X11/extensions/Xv.h>
+
+#define XvMCName "XVideo-MotionCompensation"
+#define XvMCNumEvents 0
+#define XvMCNumErrors 3
+#define XvMCVersion 1
+#define XvMCRevision 0
+
+#define XvMCBadContext 0
+#define XvMCBadSurface 1
+#define XvMCBadSubpicture 2
+
+/* Chroma formats */
+#define XVMC_CHROMA_FORMAT_420 0x00000001
+#define XVMC_CHROMA_FORMAT_422 0x00000002
+#define XVMC_CHROMA_FORMAT_444 0x00000003
+
+/* XvMCSurfaceInfo Flags */
+#define XVMC_OVERLAID_SURFACE 0x00000001
+#define XVMC_BACKEND_SUBPICTURE 0x00000002
+#define XVMC_SUBPICTURE_INDEPENDENT_SCALING 0x00000004
+#define XVMC_INTRA_UNSIGNED 0x00000008
+
+/* Motion Compensation types */
+#define XVMC_MOCOMP 0x00000000
+#define XVMC_IDCT 0x00010000
+
+#define XVMC_MPEG_1 0x00000001
+#define XVMC_MPEG_2 0x00000002
+#define XVMC_H263 0x00000003
+#define XVMC_MPEG_4 0x00000004
+
+#define XVMC_MB_TYPE_MOTION_FORWARD 0x02
+#define XVMC_MB_TYPE_MOTION_BACKWARD 0x04
+#define XVMC_MB_TYPE_PATTERN 0x08
+#define XVMC_MB_TYPE_INTRA 0x10
+
+#define XVMC_PREDICTION_FIELD 0x01
+#define XVMC_PREDICTION_FRAME 0x02
+#define XVMC_PREDICTION_DUAL_PRIME 0x03
+#define XVMC_PREDICTION_16x8 0x02
+#define XVMC_PREDICTION_4MV 0x04
+
+#define XVMC_SELECT_FIRST_FORWARD 0x01
+#define XVMC_SELECT_FIRST_BACKWARD 0x02
+#define XVMC_SELECT_SECOND_FORWARD 0x04
+#define XVMC_SELECT_SECOND_BACKWARD 0x08
+
+#define XVMC_DCT_TYPE_FRAME 0x00
+#define XVMC_DCT_TYPE_FIELD 0x01
+
+#define XVMC_TOP_FIELD 0x00000001
+#define XVMC_BOTTOM_FIELD 0x00000002
+#define XVMC_FRAME_PICTURE (XVMC_TOP_FIELD | XVMC_BOTTOM_FIELD)
+
+#define XVMC_SECOND_FIELD 0x00000004
+
+#define XVMC_DIRECT 0x00000001
+
+#define XVMC_RENDERING 0x00000001
+#define XVMC_DISPLAYING 0x00000002
+
+
+typedef struct {
+ int surface_type_id;
+ int chroma_format;
+ unsigned short max_width;
+ unsigned short max_height;
+ unsigned short subpicture_max_width;
+ unsigned short subpicture_max_height;
+ int mc_type;
+ int flags;
+} XvMCSurfaceInfo;
+
+typedef struct {
+ XID context_id;
+ int surface_type_id;
+ unsigned short width;
+ unsigned short height;
+ XvPortID port;
+ int flags;
+ void * privData; /* private to the library */
+} XvMCContext;
+
+typedef struct {
+ XID surface_id;
+ XID context_id;
+ int surface_type_id;
+ unsigned short width;
+ unsigned short height;
+ void *privData; /* private to the library */
+} XvMCSurface;
+
+typedef struct {
+ XID subpicture_id;
+ XID context_id;
+ int xvimage_id;
+ unsigned short width;
+ unsigned short height;
+ int num_palette_entries;
+ int entry_bytes;
+ char component_order[4];
+ void *privData; /* private to the library */
+} XvMCSubpicture;
+
+typedef struct {
+ unsigned int num_blocks;
+ XID context_id;
+ void *privData;
+ short *blocks;
+} XvMCBlockArray;
+
+typedef struct {
+ unsigned short x;
+ unsigned short y;
+ unsigned char macroblock_type;
+ unsigned char motion_type;
+ unsigned char motion_vertical_field_select;
+ unsigned char dct_type;
+ short PMV[2][2][2];
+ unsigned int index;
+ unsigned short coded_block_pattern;
+ unsigned short pad0;
+} XvMCMacroBlock;
+
+
+typedef struct {
+ unsigned int num_blocks;
+ XID context_id;
+ void *privData;
+ XvMCMacroBlock *macro_blocks;
+} XvMCMacroBlockArray;
+
+#endif
diff --git a/XvMCproto.h b/XvMCproto.h
new file mode 100644
index 0000000..f02814a
--- /dev/null
+++ b/XvMCproto.h
@@ -0,0 +1,203 @@
+/* $XFree86: xc/include/extensions/XvMCproto.h,v 1.5 2001/11/14 21:54:37 mvojkovi Exp $ */
+
+#ifndef _XVMCPROTO_H_
+#define _XVMCPROTO_H_
+
+#define xvmc_QueryVersion 0
+#define xvmc_ListSurfaceTypes 1
+#define xvmc_CreateContext 2
+#define xvmc_DestroyContext 3
+#define xvmc_CreateSurface 4
+#define xvmc_DestroySurface 5
+#define xvmc_CreateSubpicture 6
+#define xvmc_DestroySubpicture 7
+#define xvmc_ListSubpictureTypes 8
+#define xvmc_LastRequest xvmc_ListSubpictureTypes
+
+#define xvmcNumRequest (xvmc_LastRequest + 1)
+
+
+typedef struct {
+ CARD32 surface_type_id B32;
+ CARD16 chroma_format B16;
+ CARD16 pad0 B16;
+ CARD16 max_width B16;
+ CARD16 max_height B16;
+ CARD16 subpicture_max_width B16;
+ CARD16 subpicture_max_height B16;
+ CARD32 mc_type B32;
+ CARD32 flags B32;
+} xvmcSurfaceInfo;
+#define sz_xvmcSurfaceInfo 24;
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvmcReqType;
+ CARD16 length B16;
+} xvmcQueryVersionReq;
+#define sz_xvmcQueryVersionReq 4;
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ BYTE padb1;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD32 major B32;
+ CARD32 minor B32;
+ CARD32 padl4 B32;
+ CARD32 padl5 B32;
+ CARD32 padl6 B32;
+ CARD32 padl7 B32;
+} xvmcQueryVersionReply;
+#define sz_xvmcQueryVersionReply 32
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvmcReqType;
+ CARD16 length B16;
+ CARD32 port B32;
+} xvmcListSurfaceTypesReq;
+#define sz_xvmcListSurfaceTypesReq 8;
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ BYTE padb1;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD32 num B32;
+ CARD32 padl3 B32;
+ CARD32 padl4 B32;
+ CARD32 padl5 B32;
+ CARD32 padl6 B32;
+ CARD32 padl7 B32;
+} xvmcListSurfaceTypesReply;
+#define sz_xvmcListSurfaceTypesReply 32
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvmcReqType;
+ CARD16 length B16;
+ CARD32 context_id B32;
+ CARD32 port B32;
+ CARD32 surface_type_id B32;
+ CARD16 width B16;
+ CARD16 height B16;
+ CARD32 flags B32;
+} xvmcCreateContextReq;
+#define sz_xvmcCreateContextReq 24;
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ BYTE padb1;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD16 width_actual B16;
+ CARD16 height_actual B16;
+ CARD32 flags_return B32;
+ CARD32 padl4 B32;
+ CARD32 padl5 B32;
+ CARD32 padl6 B32;
+ CARD32 padl7 B32;
+} xvmcCreateContextReply;
+#define sz_xvmcCreateContextReply 32
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvmcReqType;
+ CARD16 length B16;
+ CARD32 context_id B32;
+} xvmcDestroyContextReq;
+#define sz_xvmcDestroyContextReq 8;
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvmcReqType;
+ CARD16 length B16;
+ CARD32 surface_id B32;
+ CARD32 context_id B32;
+} xvmcCreateSurfaceReq;
+#define sz_xvmcCreateSurfaceReq 12;
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ BYTE padb1;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD32 padl2 B32;
+ CARD32 padl3 B32;
+ CARD32 padl4 B32;
+ CARD32 padl5 B32;
+ CARD32 padl6 B32;
+ CARD32 padl7 B32;
+} xvmcCreateSurfaceReply;
+#define sz_xvmcCreateSurfaceReply 32
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvmcReqType;
+ CARD16 length B16;
+ CARD32 surface_id B32;
+} xvmcDestroySurfaceReq;
+#define sz_xvmcDestroySurfaceReq 8;
+
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvmcReqType;
+ CARD16 length B16;
+ CARD32 subpicture_id B32;
+ CARD32 context_id B32;
+ CARD32 xvimage_id B32;
+ CARD16 width B16;
+ CARD16 height B16;
+} xvmcCreateSubpictureReq;
+#define sz_xvmcCreateSubpictureReq 20;
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ BYTE padb1;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD16 width_actual B16;
+ CARD16 height_actual B16;
+ CARD16 num_palette_entries B16;
+ CARD16 entry_bytes B16;
+ CARD8 component_order[4];
+ CARD32 padl5 B32;
+ CARD32 padl6 B32;
+ CARD32 padl7 B32;
+} xvmcCreateSubpictureReply;
+#define sz_xvmcCreateSubpictureReply 32
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvmcReqType;
+ CARD16 length B16;
+ CARD32 subpicture_id B32;
+} xvmcDestroySubpictureReq;
+#define sz_xvmcDestroySubpictureReq 8;
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvmcReqType;
+ CARD16 length B16;
+ CARD32 port B32;
+ CARD32 surface_type_id B32;
+} xvmcListSubpictureTypesReq;
+#define sz_xvmcListSubpictureTypesReq 12;
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ BYTE padb1;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD32 num B32;
+ CARD32 padl2 B32;
+ CARD32 padl3 B32;
+ CARD32 padl4 B32;
+ CARD32 padl5 B32;
+ CARD32 padl6 B32;
+} xvmcListSubpictureTypesReply;
+#define sz_xvmcListSubpictureTypesReply 32
+
+#endif
diff --git a/Xvproto.h b/Xvproto.h
new file mode 100644
index 0000000..b4d8f22
--- /dev/null
+++ b/Xvproto.h
@@ -0,0 +1,604 @@
+/***********************************************************
+Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts,
+and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the names of Digital or MIT not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+******************************************************************/
+/* $XFree86: xc/include/extensions/Xvproto.h,v 1.6 2001/05/07 21:37:12 tsi Exp $ */
+
+#ifndef XVPROTO_H
+#define XVPROTO_H
+/*
+** File:
+**
+** Xvproto.h --- Xv protocol header file
+**
+** Author:
+**
+** David Carver (Digital Workstation Engineering/Project Athena)
+**
+** Revisions:
+**
+** 11.06.91 Carver
+** - changed SetPortControl to SetPortAttribute
+** - changed GetPortControl to GetPortAttribute
+** - changed QueryBestSize
+**
+** 15.05.91 Carver
+** - version 2.0 upgrade
+**
+** 24.01.91 Carver
+** - version 1.4 upgrade
+**
+*/
+
+#include <X11/Xmd.h>
+
+/* Symbols: These are undefined at the end of this file to restore the
+ values they have in Xv.h */
+
+#define XvPortID CARD32
+#define XvEncodingID CARD32
+#define ShmSeg CARD32
+#define VisualID CARD32
+#define Drawable CARD32
+#define GContext CARD32
+#define Time CARD32
+#define Atom CARD32
+
+/* Structures */
+
+typedef struct {
+ INT32 numerator B32;
+ INT32 denominator B32;
+} xvRational;
+#define sz_xvRational 8
+
+typedef struct {
+ XvPortID base_id B32;
+ CARD16 name_size B16;
+ CARD16 num_ports B16;
+ CARD16 num_formats B16;
+ CARD8 type;
+ CARD8 pad;
+} xvAdaptorInfo;
+#define sz_xvAdaptorInfo 12
+
+typedef struct {
+ XvEncodingID encoding B32;
+ CARD16 name_size B16;
+ CARD16 width B16, height B16;
+ xvRational rate;
+ CARD16 pad B16;
+} xvEncodingInfo;
+#define sz_xvEncodingInfo (12 + sz_xvRational)
+
+typedef struct {
+ VisualID visual B32;
+ CARD8 depth;
+ CARD8 pad1;
+ CARD16 pad2 B16;
+} xvFormat;
+#define sz_xvFormat 8
+
+typedef struct {
+ CARD32 flags B32;
+ INT32 min B32;
+ INT32 max B32;
+ CARD32 size B32;
+} xvAttributeInfo;
+#define sz_xvAttributeInfo 16
+
+typedef struct {
+ CARD32 id B32;
+ CARD8 type;
+ CARD8 byte_order;
+ CARD16 pad1 B16;
+ CARD8 guid[16];
+ CARD8 bpp;
+ CARD8 num_planes;
+ CARD16 pad2 B16;
+ CARD8 depth;
+ CARD8 pad3;
+ CARD16 pad4 B16;
+ CARD32 red_mask B32;
+ CARD32 green_mask B32;
+ CARD32 blue_mask B32;
+ CARD8 format;
+ CARD8 pad5;
+ CARD16 pad6 B16;
+ CARD32 y_sample_bits B32;
+ CARD32 u_sample_bits B32;
+ CARD32 v_sample_bits B32;
+ CARD32 horz_y_period B32;
+ CARD32 horz_u_period B32;
+ CARD32 horz_v_period B32;
+ CARD32 vert_y_period B32;
+ CARD32 vert_u_period B32;
+ CARD32 vert_v_period B32;
+ CARD8 comp_order[32];
+ CARD8 scanline_order;
+ CARD8 pad7;
+ CARD16 pad8 B16;
+ CARD32 pad9 B32;
+ CARD32 pad10 B32;
+} xvImageFormatInfo;
+#define sz_xvImageFormatInfo 128
+
+
+/* Requests */
+
+#define xv_QueryExtension 0
+#define xv_QueryAdaptors 1
+#define xv_QueryEncodings 2
+#define xv_GrabPort 3
+#define xv_UngrabPort 4
+#define xv_PutVideo 5
+#define xv_PutStill 6
+#define xv_GetVideo 7
+#define xv_GetStill 8
+#define xv_StopVideo 9
+#define xv_SelectVideoNotify 10
+#define xv_SelectPortNotify 11
+#define xv_QueryBestSize 12
+#define xv_SetPortAttribute 13
+#define xv_GetPortAttribute 14
+#define xv_QueryPortAttributes 15
+#define xv_ListImageFormats 16
+#define xv_QueryImageAttributes 17
+#define xv_PutImage 18
+#define xv_ShmPutImage 19
+#define xv_LastRequest xv_ShmPutImage
+
+#define xvNumRequests (xv_LastRequest + 1)
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvReqType;
+ CARD16 length B16;
+} xvQueryExtensionReq;
+#define sz_xvQueryExtensionReq 4
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvReqType;
+ CARD16 length B16;
+ CARD32 window B32;
+} xvQueryAdaptorsReq;
+#define sz_xvQueryAdaptorsReq 8
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvReqType;
+ CARD16 length B16;
+ CARD32 port B32;
+} xvQueryEncodingsReq;
+#define sz_xvQueryEncodingsReq 8
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvReqType;
+ CARD16 length B16;
+ XvPortID port B32;
+ Drawable drawable B32;
+ GContext gc B32;
+ INT16 vid_x B16;
+ INT16 vid_y B16;
+ CARD16 vid_w B16;
+ CARD16 vid_h B16;
+ INT16 drw_x B16;
+ INT16 drw_y B16;
+ CARD16 drw_w B16;
+ CARD16 drw_h B16;
+} xvPutVideoReq;
+#define sz_xvPutVideoReq 32
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvReqType;
+ CARD16 length B16;
+ XvPortID port B32;
+ Drawable drawable B32;
+ GContext gc B32;
+ INT16 vid_x B16;
+ INT16 vid_y B16;
+ CARD16 vid_w B16;
+ CARD16 vid_h B16;
+ INT16 drw_x B16;
+ INT16 drw_y B16;
+ CARD16 drw_w B16;
+ CARD16 drw_h B16;
+} xvPutStillReq;
+#define sz_xvPutStillReq 32
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvReqType;
+ CARD16 length B16;
+ XvPortID port B32;
+ Drawable drawable B32;
+ GContext gc B32;
+ INT16 vid_x B16;
+ INT16 vid_y B16;
+ CARD16 vid_w B16;
+ CARD16 vid_h B16;
+ INT16 drw_x B16;
+ INT16 drw_y B16;
+ CARD16 drw_w B16;
+ CARD16 drw_h B16;
+} xvGetVideoReq;
+#define sz_xvGetVideoReq 32
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvReqType;
+ CARD16 length B16;
+ XvPortID port B32;
+ Drawable drawable B32;
+ GContext gc B32;
+ INT16 vid_x B16;
+ INT16 vid_y B16;
+ CARD16 vid_w B16;
+ CARD16 vid_h B16;
+ INT16 drw_x B16;
+ INT16 drw_y B16;
+ CARD16 drw_w B16;
+ CARD16 drw_h B16;
+} xvGetStillReq;
+#define sz_xvGetStillReq 32
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvReqType;
+ CARD16 length B16;
+ XvPortID port B32;
+ Time time B32;
+} xvGrabPortReq;
+#define sz_xvGrabPortReq 12
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvReqType;
+ CARD16 length B16;
+ XvPortID port B32;
+ Time time B32;
+} xvUngrabPortReq;
+#define sz_xvUngrabPortReq 12
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvReqType;
+ CARD16 length B16;
+ Drawable drawable B32;
+ BOOL onoff;
+ CARD8 pad1;
+ CARD16 pad2;
+} xvSelectVideoNotifyReq;
+#define sz_xvSelectVideoNotifyReq 12
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvReqType;
+ CARD16 length B16;
+ XvPortID port B32;
+ BOOL onoff;
+ CARD8 pad1;
+ CARD16 pad2;
+} xvSelectPortNotifyReq;
+#define sz_xvSelectPortNotifyReq 12
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvReqType;
+ CARD16 length B16;
+ XvPortID port B32;
+ Drawable drawable B32;
+} xvStopVideoReq;
+#define sz_xvStopVideoReq 12
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvReqType;
+ CARD16 length B16;
+ XvPortID port B32;
+ Atom attribute B32;
+ INT32 value B32;
+} xvSetPortAttributeReq;
+#define sz_xvSetPortAttributeReq 16
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvReqType;
+ CARD16 length B16;
+ XvPortID port B32;
+ Atom attribute B32;
+} xvGetPortAttributeReq;
+#define sz_xvGetPortAttributeReq 12
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvReqType;
+ CARD16 length B16;
+ XvPortID port B32;
+ CARD16 vid_w B16;
+ CARD16 vid_h B16;
+ CARD16 drw_w B16;
+ CARD16 drw_h B16;
+ CARD8 motion;
+ CARD8 pad1;
+ CARD16 pad2 B16;
+} xvQueryBestSizeReq;
+#define sz_xvQueryBestSizeReq 20
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvReqType;
+ CARD16 length B16;
+ XvPortID port B32;
+} xvQueryPortAttributesReq;
+#define sz_xvQueryPortAttributesReq 8
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvReqType;
+ CARD16 length B16;
+ XvPortID port B32;
+ Drawable drawable B32;
+ GContext gc B32;
+ CARD32 id B32;
+ INT16 src_x B16;
+ INT16 src_y B16;
+ CARD16 src_w B16;
+ CARD16 src_h B16;
+ INT16 drw_x B16;
+ INT16 drw_y B16;
+ CARD16 drw_w B16;
+ CARD16 drw_h B16;
+ CARD16 width B16;
+ CARD16 height B16;
+} xvPutImageReq;
+#define sz_xvPutImageReq 40
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvReqType;
+ CARD16 length B16;
+ XvPortID port B32;
+ Drawable drawable B32;
+ GContext gc B32;
+ ShmSeg shmseg B32;
+ CARD32 id B32;
+ CARD32 offset B32;
+ INT16 src_x B16;
+ INT16 src_y B16;
+ CARD16 src_w B16;
+ CARD16 src_h B16;
+ INT16 drw_x B16;
+ INT16 drw_y B16;
+ CARD16 drw_w B16;
+ CARD16 drw_h B16;
+ CARD16 width B16;
+ CARD16 height B16;
+ CARD8 send_event;
+ CARD8 pad1;
+ CARD16 pad2 B16;
+} xvShmPutImageReq;
+#define sz_xvShmPutImageReq 52
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvReqType;
+ CARD16 length B16;
+ XvPortID port B32;
+} xvListImageFormatsReq;
+#define sz_xvListImageFormatsReq 8
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xvReqType;
+ CARD16 length B16;
+ CARD32 port B32;
+ CARD32 id B32;
+ CARD16 width B16;
+ CARD16 height B16;
+} xvQueryImageAttributesReq;
+#define sz_xvQueryImageAttributesReq 16
+
+
+/* Replies */
+
+typedef struct _QueryExtensionReply {
+ BYTE type; /* X_Reply */
+ CARD8 padb1;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD16 version B16;
+ CARD16 revision B16;
+ CARD32 padl4 B32;
+ CARD32 padl5 B32;
+ CARD32 padl6 B32;
+ CARD32 padl7 B32;
+ CARD32 padl8 B32;
+} xvQueryExtensionReply;
+#define sz_xvQueryExtensionReply 32
+
+typedef struct _QueryAdaptorsReply {
+ BYTE type; /* X_Reply */
+ CARD8 padb1;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD16 num_adaptors B16;
+ CARD16 pads3 B16;
+ CARD32 padl4 B32;
+ CARD32 padl5 B32;
+ CARD32 padl6 B32;
+ CARD32 padl7 B32;
+ CARD32 padl8 B32;
+} xvQueryAdaptorsReply;
+#define sz_xvQueryAdaptorsReply 32
+
+typedef struct _QueryEncodingsReply {
+ BYTE type; /* X_Reply */
+ CARD8 padb1;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD16 num_encodings B16;
+ CARD32 padl3 B32;
+ CARD32 padl4 B32;
+ CARD32 padl5 B32;
+ CARD32 padl6 B32;
+ CARD32 padl7 B32;
+ CARD32 padl8 B32;
+} xvQueryEncodingsReply;
+#define sz_xvQueryEncodingsReply 32
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ BYTE result;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32; /* 0 */
+ CARD32 padl3 B32;
+ CARD32 padl4 B32;
+ CARD32 padl5 B32;
+ CARD32 padl6 B32;
+ CARD32 padl7 B32;
+ CARD32 padl8 B32;
+} xvGrabPortReply;
+#define sz_xvGrabPortReply 32
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ BYTE padb1;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32; /* 0 */
+ INT32 value B32;
+ CARD32 padl4 B32;
+ CARD32 padl5 B32;
+ CARD32 padl6 B32;
+ CARD32 padl7 B32;
+ CARD32 padl8 B32;
+} xvGetPortAttributeReply;
+#define sz_xvGetPortAttributeReply 32
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ BYTE padb1;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32; /* 0 */
+ CARD16 actual_width B16;
+ CARD16 actual_height B16;
+ CARD32 padl4 B32;
+ CARD32 padl5 B32;
+ CARD32 padl6 B32;
+ CARD32 padl7 B32;
+ CARD32 padl8 B32;
+} xvQueryBestSizeReply;
+#define sz_xvQueryBestSizeReply 32
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ BYTE padb1;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32; /* 0 */
+ CARD32 num_attributes B32;
+ CARD32 text_size B32;
+ CARD32 padl5 B32;
+ CARD32 padl6 B32;
+ CARD32 padl7 B32;
+ CARD32 padl8 B32;
+} xvQueryPortAttributesReply;
+#define sz_xvQueryPortAttributesReply 32
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ BYTE padb1;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD32 num_formats B32;
+ CARD32 padl4 B32;
+ CARD32 padl5 B32;
+ CARD32 padl6 B32;
+ CARD32 padl7 B32;
+ CARD32 padl8 B32;
+} xvListImageFormatsReply;
+#define sz_xvListImageFormatsReply 32
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ BYTE padb1;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD32 num_planes B32;
+ CARD32 data_size B32;
+ CARD16 width B16;
+ CARD16 height B16;
+ CARD32 padl6 B32;
+ CARD32 padl7 B32;
+ CARD32 padl8 B32;
+} xvQueryImageAttributesReply;
+#define sz_xvQueryImageAttributesReply 32
+
+/* DEFINE EVENT STRUCTURE */
+
+typedef struct {
+ union {
+ struct {
+ BYTE type;
+ BYTE detail;
+ CARD16 sequenceNumber B16;
+ } u;
+ struct {
+ BYTE type;
+ BYTE reason;
+ CARD16 sequenceNumber B16;
+ Time time B32;
+ Drawable drawable B32;
+ XvPortID port B32;
+ CARD32 padl5 B32;
+ CARD32 padl6 B32;
+ CARD32 padl7 B32;
+ CARD32 padl8 B32;
+ } videoNotify;
+ struct {
+ BYTE type;
+ BYTE padb1;
+ CARD16 sequenceNumber B16;
+ Time time B32;
+ XvPortID port B32;
+ Atom attribute B32;
+ INT32 value B32;
+ CARD32 padl6 B32;
+ CARD32 padl7 B32;
+ CARD32 padl8 B32;
+ } portNotify;
+ } u;
+} xvEvent;
+
+#undef XvPortID
+#undef XvEncodingID
+#undef ShmSeg
+#undef VisualID
+#undef Drawable
+#undef GContext
+#undef Time
+#undef Atom
+
+#endif /* XVPROTO_H */
+