| /*********************************************************** |
| 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 */ |
| |