117ca54c3Smrg/***********************************************************
217ca54c3SmrgCopyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts,
317ca54c3Smrgand the Massachusetts Institute of Technology, Cambridge, Massachusetts.
417ca54c3Smrg
517ca54c3Smrg                        All Rights Reserved
617ca54c3Smrg
717ca54c3SmrgPermission to use, copy, modify, and distribute this software and its
817ca54c3Smrgdocumentation for any purpose and without fee is hereby granted,
917ca54c3Smrgprovided that the above copyright notice appear in all copies and that
1017ca54c3Smrgboth that copyright notice and this permission notice appear in
1117ca54c3Smrgsupporting documentation, and that the names of Digital or MIT not be
1217ca54c3Smrgused in advertising or publicity pertaining to distribution of the
1317ca54c3Smrgsoftware without specific, written prior permission.
1417ca54c3Smrg
1517ca54c3SmrgDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
1617ca54c3SmrgALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
1717ca54c3SmrgDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
1817ca54c3SmrgANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
1917ca54c3SmrgWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
2017ca54c3SmrgARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
2117ca54c3SmrgSOFTWARE.
2217ca54c3Smrg
2317ca54c3Smrg******************************************************************/
2417ca54c3Smrg
2517ca54c3Smrg#ifndef XVPROTO_H
2617ca54c3Smrg#define XVPROTO_H
2717ca54c3Smrg/*
2817ca54c3Smrg** File:
2917ca54c3Smrg**
3017ca54c3Smrg**   Xvproto.h --- Xv protocol header file
3117ca54c3Smrg**
3217ca54c3Smrg** Author:
3317ca54c3Smrg**
3417ca54c3Smrg**   David Carver (Digital Workstation Engineering/Project Athena)
3517ca54c3Smrg**
3617ca54c3Smrg** Revisions:
3717ca54c3Smrg**
3817ca54c3Smrg**   11.06.91 Carver
3917ca54c3Smrg**     - changed SetPortControl to SetPortAttribute
4017ca54c3Smrg**     - changed GetPortControl to GetPortAttribute
4117ca54c3Smrg**     - changed QueryBestSize
4217ca54c3Smrg**
4317ca54c3Smrg**   15.05.91 Carver
4417ca54c3Smrg**     - version 2.0 upgrade
4517ca54c3Smrg**
4617ca54c3Smrg**   24.01.91 Carver
4717ca54c3Smrg**     - version 1.4 upgrade
4817ca54c3Smrg**
4917ca54c3Smrg*/
5017ca54c3Smrg
5117ca54c3Smrg#include <X11/Xmd.h>
5217ca54c3Smrg
5317ca54c3Smrg/* Symbols: These are undefined at the end of this file to restore the
5417ca54c3Smrg   values they have in Xv.h */
5517ca54c3Smrg
5617ca54c3Smrg#define XvPortID CARD32
5717ca54c3Smrg#define XvEncodingID CARD32
5817ca54c3Smrg#define ShmSeg CARD32
5917ca54c3Smrg#define VisualID CARD32
6017ca54c3Smrg#define Drawable CARD32
6117ca54c3Smrg#define GContext CARD32
6217ca54c3Smrg#define Time CARD32
6317ca54c3Smrg#define Atom CARD32
6417ca54c3Smrg
6517ca54c3Smrg/* Structures */
6617ca54c3Smrg
6717ca54c3Smrgtypedef struct {
68ea1d6981Smrg  INT32 numerator;
69ea1d6981Smrg  INT32 denominator;
7017ca54c3Smrg} xvRational;
7117ca54c3Smrg#define sz_xvRational 8
7217ca54c3Smrg
7317ca54c3Smrgtypedef struct {
74ea1d6981Smrg  XvPortID base_id;
75ea1d6981Smrg  CARD16 name_size;
76ea1d6981Smrg  CARD16 num_ports;
77ea1d6981Smrg  CARD16 num_formats;
7817ca54c3Smrg  CARD8 type;
7917ca54c3Smrg  CARD8 pad;
8017ca54c3Smrg} xvAdaptorInfo;
8117ca54c3Smrg#define sz_xvAdaptorInfo 12
8217ca54c3Smrg
8317ca54c3Smrgtypedef struct {
84ea1d6981Smrg  XvEncodingID encoding;
85ea1d6981Smrg  CARD16 name_size;
86ea1d6981Smrg  CARD16 width, height;
87ea1d6981Smrg  CARD16 pad;
8817ca54c3Smrg  xvRational rate;
8917ca54c3Smrg} xvEncodingInfo;
9017ca54c3Smrg#define sz_xvEncodingInfo (12 + sz_xvRational)
9117ca54c3Smrg
9217ca54c3Smrgtypedef struct {
93ea1d6981Smrg  VisualID visual;
9417ca54c3Smrg  CARD8 depth;
9517ca54c3Smrg  CARD8 pad1;
96ea1d6981Smrg  CARD16 pad2;
9717ca54c3Smrg} xvFormat;
9817ca54c3Smrg#define sz_xvFormat 8
9917ca54c3Smrg
10017ca54c3Smrgtypedef struct {
101ea1d6981Smrg  CARD32 flags;
102ea1d6981Smrg  INT32 min;
103ea1d6981Smrg  INT32 max;
104ea1d6981Smrg  CARD32 size;
10517ca54c3Smrg} xvAttributeInfo;
10617ca54c3Smrg#define sz_xvAttributeInfo 16
10717ca54c3Smrg
10817ca54c3Smrgtypedef struct {
109ea1d6981Smrg  CARD32 id;
11017ca54c3Smrg  CARD8 type;
11117ca54c3Smrg  CARD8 byte_order;
112ea1d6981Smrg  CARD16 pad1;
11317ca54c3Smrg  CARD8 guid[16];
11417ca54c3Smrg  CARD8 bpp;
11517ca54c3Smrg  CARD8 num_planes;
116ea1d6981Smrg  CARD16 pad2;
11717ca54c3Smrg  CARD8 depth;
11817ca54c3Smrg  CARD8 pad3;
119ea1d6981Smrg  CARD16 pad4;
120ea1d6981Smrg  CARD32 red_mask;
121ea1d6981Smrg  CARD32 green_mask;
122ea1d6981Smrg  CARD32 blue_mask;
12317ca54c3Smrg  CARD8 format;
12417ca54c3Smrg  CARD8 pad5;
125ea1d6981Smrg  CARD16 pad6;
126ea1d6981Smrg  CARD32 y_sample_bits;
127ea1d6981Smrg  CARD32 u_sample_bits;
128ea1d6981Smrg  CARD32 v_sample_bits;
129ea1d6981Smrg  CARD32 horz_y_period;
130ea1d6981Smrg  CARD32 horz_u_period;
131ea1d6981Smrg  CARD32 horz_v_period;
132ea1d6981Smrg  CARD32 vert_y_period;
133ea1d6981Smrg  CARD32 vert_u_period;
134ea1d6981Smrg  CARD32 vert_v_period;
13517ca54c3Smrg  CARD8 comp_order[32];
13617ca54c3Smrg  CARD8 scanline_order;
13717ca54c3Smrg  CARD8 pad7;
138ea1d6981Smrg  CARD16 pad8;
139ea1d6981Smrg  CARD32 pad9;
140ea1d6981Smrg  CARD32 pad10;
14117ca54c3Smrg} xvImageFormatInfo;
14217ca54c3Smrg#define sz_xvImageFormatInfo 128
14317ca54c3Smrg
14417ca54c3Smrg
14517ca54c3Smrg/* Requests */
14617ca54c3Smrg
14717ca54c3Smrg#define xv_QueryExtension                  0
14817ca54c3Smrg#define	xv_QueryAdaptors                   1
14917ca54c3Smrg#define	xv_QueryEncodings                  2
15017ca54c3Smrg#define xv_GrabPort                        3
15117ca54c3Smrg#define xv_UngrabPort                      4
15217ca54c3Smrg#define xv_PutVideo                        5
15317ca54c3Smrg#define xv_PutStill                        6
15417ca54c3Smrg#define xv_GetVideo                        7
15517ca54c3Smrg#define xv_GetStill                        8
15617ca54c3Smrg#define xv_StopVideo                       9
15717ca54c3Smrg#define xv_SelectVideoNotify              10
15817ca54c3Smrg#define xv_SelectPortNotify               11
15917ca54c3Smrg#define xv_QueryBestSize                  12
16017ca54c3Smrg#define xv_SetPortAttribute               13
16117ca54c3Smrg#define xv_GetPortAttribute               14
16217ca54c3Smrg#define xv_QueryPortAttributes            15
16317ca54c3Smrg#define xv_ListImageFormats               16
16417ca54c3Smrg#define xv_QueryImageAttributes           17
16517ca54c3Smrg#define xv_PutImage                       18
16617ca54c3Smrg#define xv_ShmPutImage                    19
16717ca54c3Smrg#define xv_LastRequest                    xv_ShmPutImage
16817ca54c3Smrg
16917ca54c3Smrg#define xvNumRequests                     (xv_LastRequest + 1)
17017ca54c3Smrg
17117ca54c3Smrgtypedef struct {
17217ca54c3Smrg  CARD8 reqType;
17317ca54c3Smrg  CARD8 xvReqType;
174ea1d6981Smrg  CARD16 length;
17517ca54c3Smrg} xvQueryExtensionReq;
17617ca54c3Smrg#define sz_xvQueryExtensionReq 4
17717ca54c3Smrg
17817ca54c3Smrgtypedef struct {
17917ca54c3Smrg  CARD8 reqType;
18017ca54c3Smrg  CARD8 xvReqType;
181ea1d6981Smrg  CARD16 length;
182ea1d6981Smrg  CARD32 window;
18317ca54c3Smrg} xvQueryAdaptorsReq;
18417ca54c3Smrg#define sz_xvQueryAdaptorsReq 8
18517ca54c3Smrg
18617ca54c3Smrgtypedef struct {
18717ca54c3Smrg  CARD8 reqType;
18817ca54c3Smrg  CARD8 xvReqType;
189ea1d6981Smrg  CARD16 length;
190ea1d6981Smrg  CARD32 port;
19117ca54c3Smrg} xvQueryEncodingsReq;
19217ca54c3Smrg#define sz_xvQueryEncodingsReq 8
19317ca54c3Smrg
19417ca54c3Smrgtypedef struct {
19517ca54c3Smrg  CARD8 reqType;
19617ca54c3Smrg  CARD8 xvReqType;
197ea1d6981Smrg  CARD16 length;
198ea1d6981Smrg  XvPortID port;
199ea1d6981Smrg  Drawable drawable;
200ea1d6981Smrg  GContext gc;
201ea1d6981Smrg  INT16 vid_x;
202ea1d6981Smrg  INT16 vid_y;
203ea1d6981Smrg  CARD16 vid_w;
204ea1d6981Smrg  CARD16 vid_h;
205ea1d6981Smrg  INT16 drw_x;
206ea1d6981Smrg  INT16 drw_y;
207ea1d6981Smrg  CARD16 drw_w;
208ea1d6981Smrg  CARD16 drw_h;
20917ca54c3Smrg} xvPutVideoReq;
21017ca54c3Smrg#define sz_xvPutVideoReq 32
21117ca54c3Smrg
21217ca54c3Smrgtypedef struct {
21317ca54c3Smrg  CARD8 reqType;
21417ca54c3Smrg  CARD8 xvReqType;
215ea1d6981Smrg  CARD16 length;
216ea1d6981Smrg  XvPortID port;
217ea1d6981Smrg  Drawable drawable;
218ea1d6981Smrg  GContext gc;
219ea1d6981Smrg  INT16 vid_x;
220ea1d6981Smrg  INT16 vid_y;
221ea1d6981Smrg  CARD16 vid_w;
222ea1d6981Smrg  CARD16 vid_h;
223ea1d6981Smrg  INT16 drw_x;
224ea1d6981Smrg  INT16 drw_y;
225ea1d6981Smrg  CARD16 drw_w;
226ea1d6981Smrg  CARD16 drw_h;
22717ca54c3Smrg} xvPutStillReq;
22817ca54c3Smrg#define sz_xvPutStillReq 32
22917ca54c3Smrg
23017ca54c3Smrgtypedef struct {
23117ca54c3Smrg  CARD8 reqType;
23217ca54c3Smrg  CARD8 xvReqType;
233ea1d6981Smrg  CARD16 length;
234ea1d6981Smrg  XvPortID port;
235ea1d6981Smrg  Drawable drawable;
236ea1d6981Smrg  GContext gc;
237ea1d6981Smrg  INT16 vid_x;
238ea1d6981Smrg  INT16 vid_y;
239ea1d6981Smrg  CARD16 vid_w;
240ea1d6981Smrg  CARD16 vid_h;
241ea1d6981Smrg  INT16 drw_x;
242ea1d6981Smrg  INT16 drw_y;
243ea1d6981Smrg  CARD16 drw_w;
244ea1d6981Smrg  CARD16 drw_h;
24517ca54c3Smrg} xvGetVideoReq;
24617ca54c3Smrg#define sz_xvGetVideoReq 32
24717ca54c3Smrg
24817ca54c3Smrgtypedef struct {
24917ca54c3Smrg  CARD8 reqType;
25017ca54c3Smrg  CARD8 xvReqType;
251ea1d6981Smrg  CARD16 length;
252ea1d6981Smrg  XvPortID port;
253ea1d6981Smrg  Drawable drawable;
254ea1d6981Smrg  GContext gc;
255ea1d6981Smrg  INT16 vid_x;
256ea1d6981Smrg  INT16 vid_y;
257ea1d6981Smrg  CARD16 vid_w;
258ea1d6981Smrg  CARD16 vid_h;
259ea1d6981Smrg  INT16 drw_x;
260ea1d6981Smrg  INT16 drw_y;
261ea1d6981Smrg  CARD16 drw_w;
262ea1d6981Smrg  CARD16 drw_h;
26317ca54c3Smrg} xvGetStillReq;
26417ca54c3Smrg#define sz_xvGetStillReq 32
26517ca54c3Smrg
26617ca54c3Smrgtypedef struct {
26717ca54c3Smrg  CARD8 reqType;
26817ca54c3Smrg  CARD8 xvReqType;
269ea1d6981Smrg  CARD16 length;
270ea1d6981Smrg  XvPortID port;
271ea1d6981Smrg  Time time;
27217ca54c3Smrg} xvGrabPortReq;
27317ca54c3Smrg#define sz_xvGrabPortReq 12
27417ca54c3Smrg
27517ca54c3Smrgtypedef struct {
27617ca54c3Smrg  CARD8 reqType;
27717ca54c3Smrg  CARD8 xvReqType;
278ea1d6981Smrg  CARD16 length;
279ea1d6981Smrg  XvPortID port;
280ea1d6981Smrg  Time time;
28117ca54c3Smrg} xvUngrabPortReq;
28217ca54c3Smrg#define sz_xvUngrabPortReq 12
28317ca54c3Smrg
28417ca54c3Smrgtypedef struct {
28517ca54c3Smrg  CARD8 reqType;
28617ca54c3Smrg  CARD8 xvReqType;
287ea1d6981Smrg  CARD16 length;
288ea1d6981Smrg  Drawable drawable;
28917ca54c3Smrg  BOOL onoff;
29017ca54c3Smrg  CARD8 pad1;
29117ca54c3Smrg  CARD16 pad2;
29217ca54c3Smrg} xvSelectVideoNotifyReq;
29317ca54c3Smrg#define sz_xvSelectVideoNotifyReq 12
29417ca54c3Smrg
29517ca54c3Smrgtypedef struct {
29617ca54c3Smrg  CARD8 reqType;
29717ca54c3Smrg  CARD8 xvReqType;
298ea1d6981Smrg  CARD16 length;
299ea1d6981Smrg  XvPortID port;
30017ca54c3Smrg  BOOL onoff;
30117ca54c3Smrg  CARD8 pad1;
30217ca54c3Smrg  CARD16 pad2;
30317ca54c3Smrg} xvSelectPortNotifyReq;
30417ca54c3Smrg#define sz_xvSelectPortNotifyReq 12
30517ca54c3Smrg
30617ca54c3Smrgtypedef struct {
30717ca54c3Smrg  CARD8 reqType;
30817ca54c3Smrg  CARD8 xvReqType;
309ea1d6981Smrg  CARD16 length;
310ea1d6981Smrg  XvPortID port;
311ea1d6981Smrg  Drawable drawable;
31217ca54c3Smrg} xvStopVideoReq;
31317ca54c3Smrg#define sz_xvStopVideoReq 12
31417ca54c3Smrg
31517ca54c3Smrgtypedef struct {
31617ca54c3Smrg  CARD8 reqType;
31717ca54c3Smrg  CARD8 xvReqType;
318ea1d6981Smrg  CARD16 length;
319ea1d6981Smrg  XvPortID port;
320ea1d6981Smrg  Atom attribute;
321ea1d6981Smrg  INT32 value;
32217ca54c3Smrg} xvSetPortAttributeReq;
32317ca54c3Smrg#define sz_xvSetPortAttributeReq 16
32417ca54c3Smrg
32517ca54c3Smrgtypedef struct {
32617ca54c3Smrg  CARD8 reqType;
32717ca54c3Smrg  CARD8 xvReqType;
328ea1d6981Smrg  CARD16 length;
329ea1d6981Smrg  XvPortID port;
330ea1d6981Smrg  Atom attribute;
33117ca54c3Smrg} xvGetPortAttributeReq;
33217ca54c3Smrg#define sz_xvGetPortAttributeReq 12
33317ca54c3Smrg
33417ca54c3Smrgtypedef struct {
33517ca54c3Smrg  CARD8 reqType;
33617ca54c3Smrg  CARD8 xvReqType;
337ea1d6981Smrg  CARD16 length;
338ea1d6981Smrg  XvPortID port;
339ea1d6981Smrg  CARD16 vid_w;
340ea1d6981Smrg  CARD16 vid_h;
341ea1d6981Smrg  CARD16 drw_w;
342ea1d6981Smrg  CARD16 drw_h;
34317ca54c3Smrg  CARD8 motion;
34417ca54c3Smrg  CARD8 pad1;
345ea1d6981Smrg  CARD16 pad2;
34617ca54c3Smrg} xvQueryBestSizeReq;
34717ca54c3Smrg#define sz_xvQueryBestSizeReq 20
34817ca54c3Smrg
34917ca54c3Smrgtypedef struct {
35017ca54c3Smrg  CARD8 reqType;
35117ca54c3Smrg  CARD8 xvReqType;
352ea1d6981Smrg  CARD16 length;
353ea1d6981Smrg  XvPortID port;
35417ca54c3Smrg} xvQueryPortAttributesReq;
35517ca54c3Smrg#define sz_xvQueryPortAttributesReq 8
35617ca54c3Smrg
35717ca54c3Smrgtypedef struct {
35817ca54c3Smrg  CARD8 reqType;
35917ca54c3Smrg  CARD8 xvReqType;
360ea1d6981Smrg  CARD16 length;
361ea1d6981Smrg  XvPortID port;
362ea1d6981Smrg  Drawable drawable;
363ea1d6981Smrg  GContext gc;
364ea1d6981Smrg  CARD32 id;
365ea1d6981Smrg  INT16 src_x;
366ea1d6981Smrg  INT16 src_y;
367ea1d6981Smrg  CARD16 src_w;
368ea1d6981Smrg  CARD16 src_h;
369ea1d6981Smrg  INT16 drw_x;
370ea1d6981Smrg  INT16 drw_y;
371ea1d6981Smrg  CARD16 drw_w;
372ea1d6981Smrg  CARD16 drw_h;
373ea1d6981Smrg  CARD16 width;
374ea1d6981Smrg  CARD16 height;
37517ca54c3Smrg} xvPutImageReq;
37617ca54c3Smrg#define sz_xvPutImageReq 40
37717ca54c3Smrg
37817ca54c3Smrgtypedef struct {
37917ca54c3Smrg  CARD8 reqType;
38017ca54c3Smrg  CARD8 xvReqType;
381ea1d6981Smrg  CARD16 length;
382ea1d6981Smrg  XvPortID port;
383ea1d6981Smrg  Drawable drawable;
384ea1d6981Smrg  GContext gc;
385ea1d6981Smrg  ShmSeg shmseg;
386ea1d6981Smrg  CARD32 id;
387ea1d6981Smrg  CARD32 offset;
388ea1d6981Smrg  INT16 src_x;
389ea1d6981Smrg  INT16 src_y;
390ea1d6981Smrg  CARD16 src_w;
391ea1d6981Smrg  CARD16 src_h;
392ea1d6981Smrg  INT16 drw_x;
393ea1d6981Smrg  INT16 drw_y;
394ea1d6981Smrg  CARD16 drw_w;
395ea1d6981Smrg  CARD16 drw_h;
396ea1d6981Smrg  CARD16 width;
397ea1d6981Smrg  CARD16 height;
39817ca54c3Smrg  CARD8 send_event;
39917ca54c3Smrg  CARD8 pad1;
400ea1d6981Smrg  CARD16 pad2;
40117ca54c3Smrg} xvShmPutImageReq;
40217ca54c3Smrg#define sz_xvShmPutImageReq 52
40317ca54c3Smrg
40417ca54c3Smrgtypedef struct {
40517ca54c3Smrg  CARD8 reqType;
40617ca54c3Smrg  CARD8 xvReqType;
407ea1d6981Smrg  CARD16 length;
408ea1d6981Smrg  XvPortID port;
40917ca54c3Smrg} xvListImageFormatsReq;
41017ca54c3Smrg#define sz_xvListImageFormatsReq 8
41117ca54c3Smrg
41217ca54c3Smrgtypedef struct {
41317ca54c3Smrg  CARD8 reqType;
41417ca54c3Smrg  CARD8 xvReqType;
415ea1d6981Smrg  CARD16 length;
416ea1d6981Smrg  CARD32 port;
417ea1d6981Smrg  CARD32 id;
418ea1d6981Smrg  CARD16 width;
419ea1d6981Smrg  CARD16 height;
42017ca54c3Smrg} xvQueryImageAttributesReq;
42117ca54c3Smrg#define sz_xvQueryImageAttributesReq 16
42217ca54c3Smrg
42317ca54c3Smrg
42417ca54c3Smrg/* Replies */
42517ca54c3Smrg
42617ca54c3Smrgtypedef struct _QueryExtensionReply {
42717ca54c3Smrg  BYTE type;   /* X_Reply */
42817ca54c3Smrg  CARD8 padb1;
429ea1d6981Smrg  CARD16 sequenceNumber;
430ea1d6981Smrg  CARD32 length;
431ea1d6981Smrg  CARD16 version;
432ea1d6981Smrg  CARD16 revision;
433ea1d6981Smrg  CARD32 padl4;
434ea1d6981Smrg  CARD32 padl5;
435ea1d6981Smrg  CARD32 padl6;
436ea1d6981Smrg  CARD32 padl7;
437ea1d6981Smrg  CARD32 padl8;
43817ca54c3Smrg} xvQueryExtensionReply;
43917ca54c3Smrg#define sz_xvQueryExtensionReply 32
44017ca54c3Smrg
44117ca54c3Smrgtypedef struct _QueryAdaptorsReply {
44217ca54c3Smrg  BYTE type;   /* X_Reply */
44317ca54c3Smrg  CARD8 padb1;
444ea1d6981Smrg  CARD16 sequenceNumber;
445ea1d6981Smrg  CARD32 length;
446ea1d6981Smrg  CARD16 num_adaptors;
447ea1d6981Smrg  CARD16 pads3;
448ea1d6981Smrg  CARD32 padl4;
449ea1d6981Smrg  CARD32 padl5;
450ea1d6981Smrg  CARD32 padl6;
451ea1d6981Smrg  CARD32 padl7;
452ea1d6981Smrg  CARD32 padl8;
45317ca54c3Smrg} xvQueryAdaptorsReply;
45417ca54c3Smrg#define sz_xvQueryAdaptorsReply 32
45517ca54c3Smrg
45617ca54c3Smrgtypedef struct _QueryEncodingsReply {
45717ca54c3Smrg  BYTE type;   /* X_Reply */
45817ca54c3Smrg  CARD8 padb1;
459ea1d6981Smrg  CARD16 sequenceNumber;
460ea1d6981Smrg  CARD32 length;
461ea1d6981Smrg  CARD16 num_encodings;
462ea1d6981Smrg  CARD16 padl3;
463ea1d6981Smrg  CARD32 padl4;
464ea1d6981Smrg  CARD32 padl5;
465ea1d6981Smrg  CARD32 padl6;
466ea1d6981Smrg  CARD32 padl7;
467ea1d6981Smrg  CARD32 padl8;
46817ca54c3Smrg} xvQueryEncodingsReply;
46917ca54c3Smrg#define sz_xvQueryEncodingsReply 32
47017ca54c3Smrg
47117ca54c3Smrgtypedef struct {
47217ca54c3Smrg  BYTE type;  /* X_Reply */
47317ca54c3Smrg  BYTE result;
474ea1d6981Smrg  CARD16 sequenceNumber;
475ea1d6981Smrg  CARD32 length;  /* 0 */
476ea1d6981Smrg  CARD32 padl3;
477ea1d6981Smrg  CARD32 padl4;
478ea1d6981Smrg  CARD32 padl5;
479ea1d6981Smrg  CARD32 padl6;
480ea1d6981Smrg  CARD32 padl7;
481ea1d6981Smrg  CARD32 padl8;
48217ca54c3Smrg} xvGrabPortReply;
48317ca54c3Smrg#define sz_xvGrabPortReply 32
48417ca54c3Smrg
48517ca54c3Smrgtypedef struct {
48617ca54c3Smrg  BYTE type;  /* X_Reply */
48717ca54c3Smrg  BYTE padb1;
488ea1d6981Smrg  CARD16 sequenceNumber;
489ea1d6981Smrg  CARD32 length;  /* 0 */
490ea1d6981Smrg  INT32 value;
491ea1d6981Smrg  CARD32 padl4;
492ea1d6981Smrg  CARD32 padl5;
493ea1d6981Smrg  CARD32 padl6;
494ea1d6981Smrg  CARD32 padl7;
495ea1d6981Smrg  CARD32 padl8;
49617ca54c3Smrg} xvGetPortAttributeReply;
49717ca54c3Smrg#define sz_xvGetPortAttributeReply 32
49817ca54c3Smrg
49917ca54c3Smrgtypedef struct {
50017ca54c3Smrg  BYTE type;  /* X_Reply */
50117ca54c3Smrg  BYTE padb1;
502ea1d6981Smrg  CARD16 sequenceNumber;
503ea1d6981Smrg  CARD32 length;  /* 0 */
504ea1d6981Smrg  CARD16 actual_width;
505ea1d6981Smrg  CARD16 actual_height;
506ea1d6981Smrg  CARD32 padl4;
507ea1d6981Smrg  CARD32 padl5;
508ea1d6981Smrg  CARD32 padl6;
509ea1d6981Smrg  CARD32 padl7;
510ea1d6981Smrg  CARD32 padl8;
51117ca54c3Smrg} xvQueryBestSizeReply;
51217ca54c3Smrg#define sz_xvQueryBestSizeReply 32
51317ca54c3Smrg
51417ca54c3Smrgtypedef struct {
51517ca54c3Smrg  BYTE type;  /* X_Reply */
51617ca54c3Smrg  BYTE padb1;
517ea1d6981Smrg  CARD16 sequenceNumber;
518ea1d6981Smrg  CARD32 length;  /* 0 */
519ea1d6981Smrg  CARD32 num_attributes;
520ea1d6981Smrg  CARD32 text_size;
521ea1d6981Smrg  CARD32 padl5;
522ea1d6981Smrg  CARD32 padl6;
523ea1d6981Smrg  CARD32 padl7;
524ea1d6981Smrg  CARD32 padl8;
52517ca54c3Smrg} xvQueryPortAttributesReply;
52617ca54c3Smrg#define sz_xvQueryPortAttributesReply 32
52717ca54c3Smrg
52817ca54c3Smrgtypedef struct {
52917ca54c3Smrg  BYTE type;  /* X_Reply */
53017ca54c3Smrg  BYTE padb1;
531ea1d6981Smrg  CARD16 sequenceNumber;
532ea1d6981Smrg  CARD32 length;
533ea1d6981Smrg  CARD32 num_formats;
534ea1d6981Smrg  CARD32 padl4;
535ea1d6981Smrg  CARD32 padl5;
536ea1d6981Smrg  CARD32 padl6;
537ea1d6981Smrg  CARD32 padl7;
538ea1d6981Smrg  CARD32 padl8;
53917ca54c3Smrg} xvListImageFormatsReply;
54017ca54c3Smrg#define sz_xvListImageFormatsReply 32
54117ca54c3Smrg
54217ca54c3Smrgtypedef struct {
54317ca54c3Smrg  BYTE type;  /* X_Reply */
54417ca54c3Smrg  BYTE padb1;
545ea1d6981Smrg  CARD16 sequenceNumber;
546ea1d6981Smrg  CARD32 length;
547ea1d6981Smrg  CARD32 num_planes;
548ea1d6981Smrg  CARD32 data_size;
549ea1d6981Smrg  CARD16 width;
550ea1d6981Smrg  CARD16 height;
551ea1d6981Smrg  CARD32 padl6;
552ea1d6981Smrg  CARD32 padl7;
553ea1d6981Smrg  CARD32 padl8;
55417ca54c3Smrg} xvQueryImageAttributesReply;
55517ca54c3Smrg#define sz_xvQueryImageAttributesReply 32
55617ca54c3Smrg
55717ca54c3Smrg/* DEFINE EVENT STRUCTURE */
55817ca54c3Smrg
55917ca54c3Smrgtypedef struct {
56017ca54c3Smrg  union {
56117ca54c3Smrg    struct {
56217ca54c3Smrg      BYTE type;
56317ca54c3Smrg      BYTE detail;
564ea1d6981Smrg      CARD16 sequenceNumber;
56517ca54c3Smrg    } u;
56617ca54c3Smrg    struct {
56717ca54c3Smrg      BYTE type;
56817ca54c3Smrg      BYTE reason;
569ea1d6981Smrg      CARD16 sequenceNumber;
570ea1d6981Smrg      Time time;
571ea1d6981Smrg      Drawable drawable;
572ea1d6981Smrg      XvPortID port;
573ea1d6981Smrg      CARD32 padl5;
574ea1d6981Smrg      CARD32 padl6;
575ea1d6981Smrg      CARD32 padl7;
576ea1d6981Smrg      CARD32 padl8;
57717ca54c3Smrg    } videoNotify;
57817ca54c3Smrg    struct {
57917ca54c3Smrg      BYTE type;
58017ca54c3Smrg      BYTE padb1;
581ea1d6981Smrg      CARD16 sequenceNumber;
582ea1d6981Smrg      Time time;
583ea1d6981Smrg      XvPortID port;
584ea1d6981Smrg      Atom attribute;
585ea1d6981Smrg      INT32 value;
586ea1d6981Smrg      CARD32 padl6;
587ea1d6981Smrg      CARD32 padl7;
588ea1d6981Smrg      CARD32 padl8;
58917ca54c3Smrg    } portNotify;
59017ca54c3Smrg  } u;
59117ca54c3Smrg} xvEvent;
59217ca54c3Smrg
59317ca54c3Smrg#undef XvPortID
59417ca54c3Smrg#undef XvEncodingID
59517ca54c3Smrg#undef ShmSeg
59617ca54c3Smrg#undef VisualID
59717ca54c3Smrg#undef Drawable
59817ca54c3Smrg#undef GContext
59917ca54c3Smrg#undef Time
60017ca54c3Smrg#undef Atom
60117ca54c3Smrg
60217ca54c3Smrg#endif /* XVPROTO_H */
60317ca54c3Smrg
604