1#ifndef _XVMCPROTO_H_
2#define _XVMCPROTO_H_
3
4#define xvmc_QueryVersion		0
5#define xvmc_ListSurfaceTypes		1
6#define xvmc_CreateContext		2
7#define xvmc_DestroyContext		3
8#define xvmc_CreateSurface		4
9#define xvmc_DestroySurface		5
10#define xvmc_CreateSubpicture		6
11#define xvmc_DestroySubpicture		7
12#define xvmc_ListSubpictureTypes	8
13#define xvmc_GetDRInfo                  9
14#define xvmc_LastRequest		xvmc_GetDRInfo
15
16#define xvmcNumRequest			(xvmc_LastRequest + 1)
17
18
19typedef struct {
20  CARD32 surface_type_id;
21  CARD16 chroma_format;
22  CARD16 pad0;
23  CARD16 max_width;
24  CARD16 max_height;
25  CARD16 subpicture_max_width;
26  CARD16 subpicture_max_height;
27  CARD32 mc_type;
28  CARD32 flags;
29} xvmcSurfaceInfo;
30#define sz_xvmcSurfaceInfo 24
31
32typedef struct {
33  CARD8 reqType;
34  CARD8 xvmcReqType;
35  CARD16 length;
36} xvmcQueryVersionReq;
37#define sz_xvmcQueryVersionReq 4
38
39typedef struct {
40  BYTE type;  /* X_Reply */
41  BYTE padb1;
42  CARD16 sequenceNumber;
43  CARD32 length;
44  CARD32 major;
45  CARD32 minor;
46  CARD32 padl4;
47  CARD32 padl5;
48  CARD32 padl6;
49  CARD32 padl7;
50} xvmcQueryVersionReply;
51#define sz_xvmcQueryVersionReply 32
52
53typedef struct {
54  CARD8 reqType;
55  CARD8 xvmcReqType;
56  CARD16 length;
57  CARD32 port;
58} xvmcListSurfaceTypesReq;
59#define sz_xvmcListSurfaceTypesReq 8
60
61typedef struct {
62  BYTE type;  /* X_Reply */
63  BYTE padb1;
64  CARD16 sequenceNumber;
65  CARD32 length;
66  CARD32 num;
67  CARD32 padl3;
68  CARD32 padl4;
69  CARD32 padl5;
70  CARD32 padl6;
71  CARD32 padl7;
72} xvmcListSurfaceTypesReply;
73#define sz_xvmcListSurfaceTypesReply 32
74
75typedef struct {
76  CARD8 reqType;
77  CARD8 xvmcReqType;
78  CARD16 length;
79  CARD32 context_id;
80  CARD32 port;
81  CARD32 surface_type_id;
82  CARD16 width;
83  CARD16 height;
84  CARD32 flags;
85} xvmcCreateContextReq;
86#define sz_xvmcCreateContextReq 24
87
88typedef struct {
89  BYTE type;  /* X_Reply */
90  BYTE padb1;
91  CARD16 sequenceNumber;
92  CARD32 length;
93  CARD16 width_actual;
94  CARD16 height_actual;
95  CARD32 flags_return;
96  CARD32 padl4;
97  CARD32 padl5;
98  CARD32 padl6;
99  CARD32 padl7;
100} xvmcCreateContextReply;
101#define sz_xvmcCreateContextReply 32
102
103typedef struct {
104  CARD8 reqType;
105  CARD8 xvmcReqType;
106  CARD16 length;
107  CARD32 context_id;
108} xvmcDestroyContextReq;
109#define sz_xvmcDestroyContextReq 8
110
111typedef struct {
112  CARD8 reqType;
113  CARD8 xvmcReqType;
114  CARD16 length;
115  CARD32 surface_id;
116  CARD32 context_id;
117} xvmcCreateSurfaceReq;
118#define sz_xvmcCreateSurfaceReq 12
119
120typedef struct {
121  BYTE type;  /* X_Reply */
122  BYTE padb1;
123  CARD16 sequenceNumber;
124  CARD32 length;
125  CARD32 padl2;
126  CARD32 padl3;
127  CARD32 padl4;
128  CARD32 padl5;
129  CARD32 padl6;
130  CARD32 padl7;
131} xvmcCreateSurfaceReply;
132#define sz_xvmcCreateSurfaceReply 32
133
134typedef struct {
135  CARD8 reqType;
136  CARD8 xvmcReqType;
137  CARD16 length;
138  CARD32 surface_id;
139} xvmcDestroySurfaceReq;
140#define sz_xvmcDestroySurfaceReq 8
141
142
143typedef struct {
144  CARD8 reqType;
145  CARD8 xvmcReqType;
146  CARD16 length;
147  CARD32 subpicture_id;
148  CARD32 context_id;
149  CARD32 xvimage_id;
150  CARD16 width;
151  CARD16 height;
152} xvmcCreateSubpictureReq;
153#define sz_xvmcCreateSubpictureReq 20
154
155typedef struct {
156  BYTE type;  /* X_Reply */
157  BYTE padb1;
158  CARD16 sequenceNumber;
159  CARD32 length;
160  CARD16 width_actual;
161  CARD16 height_actual;
162  CARD16 num_palette_entries;
163  CARD16 entry_bytes;
164  CARD8  component_order[4];
165  CARD32 padl5;
166  CARD32 padl6;
167  CARD32 padl7;
168} xvmcCreateSubpictureReply;
169#define sz_xvmcCreateSubpictureReply 32
170
171typedef struct {
172  CARD8 reqType;
173  CARD8 xvmcReqType;
174  CARD16 length;
175  CARD32 subpicture_id;
176} xvmcDestroySubpictureReq;
177#define sz_xvmcDestroySubpictureReq 8
178
179typedef struct {
180  CARD8 reqType;
181  CARD8 xvmcReqType;
182  CARD16 length;
183  CARD32 port;
184  CARD32 surface_type_id;
185} xvmcListSubpictureTypesReq;
186#define sz_xvmcListSubpictureTypesReq 12
187
188typedef struct {
189  BYTE type;  /* X_Reply */
190  BYTE padb1;
191  CARD16 sequenceNumber;
192  CARD32 length;
193  CARD32 num;
194  CARD32 padl2;
195  CARD32 padl3;
196  CARD32 padl4;
197  CARD32 padl5;
198  CARD32 padl6;
199} xvmcListSubpictureTypesReply;
200#define sz_xvmcListSubpictureTypesReply 32
201
202typedef struct {
203  CARD8 reqType;
204  CARD8 xvmcReqType;
205  CARD16 length;
206  CARD32 port;
207  CARD32 shmKey;
208  CARD32 magic;
209} xvmcGetDRInfoReq;
210#define sz_xvmcGetDRInfoReq 16
211
212typedef struct {
213  BYTE type;  /* X_Reply */
214  BYTE padb1;
215  CARD16 sequenceNumber;
216  CARD32 length;
217  CARD32 major;
218  CARD32 minor;
219  CARD32 patchLevel;
220  CARD32 nameLen;
221  CARD32 busIDLen;
222  CARD32 isLocal;
223} xvmcGetDRInfoReply;
224#define sz_xvmcGetDRInfoReply 32
225
226#endif
227