Initial revision XEVIE-BASE XEVIE-MERGE XORG-RELEASE-1-BASE
authorKaleb Keithley <kaleb@freedesktop.org>
Fri, 14 Nov 2003 16:48:43 +0000 (16:48 +0000)
committerKaleb Keithley <kaleb@freedesktop.org>
Fri, 14 Nov 2003 16:48:43 +0000 (16:48 +0000)
Xv.h [new file with mode: 0644]
XvMC.h [new file with mode: 0644]
XvMCproto.h [new file with mode: 0644]
Xvproto.h [new file with mode: 0644]

diff --git a/Xv.h b/Xv.h
new file mode 100644 (file)
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 (file)
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 (file)
index 0000000..f02814a
--- /dev/null
@@ -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 (file)
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 */
+