#ifndef XVPROTO_H
#define XVPROTO_H
#include <X11/Xmd.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
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
#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
typedef struct _QueryExtensionReply {
BYTE type;
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;
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;
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;
BYTE result;
CARD16 sequenceNumber B16;
CARD32 length B32;
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;
BYTE padb1;
CARD16 sequenceNumber B16;
CARD32 length B32;
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;
BYTE padb1;
CARD16 sequenceNumber B16;
CARD32 length B32;
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;
BYTE padb1;
CARD16 sequenceNumber B16;
CARD32 length B32;
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;
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;
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
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