|
1 /*********************************************************** |
|
2 Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts, |
|
3 and the Massachusetts Institute of Technology, Cambridge, Massachusetts. |
|
4 |
|
5 All Rights Reserved |
|
6 |
|
7 Permission to use, copy, modify, and distribute this software and its |
|
8 documentation for any purpose and without fee is hereby granted, |
|
9 provided that the above copyright notice appear in all copies and that |
|
10 both that copyright notice and this permission notice appear in |
|
11 supporting documentation, and that the names of Digital or MIT not be |
|
12 used in advertising or publicity pertaining to distribution of the |
|
13 software without specific, written prior permission. |
|
14 |
|
15 DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING |
|
16 ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL |
|
17 DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR |
|
18 ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, |
|
19 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, |
|
20 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS |
|
21 SOFTWARE. |
|
22 |
|
23 ******************************************************************/ |
|
24 /* $XFree86: xc/include/extensions/Xvlib.h,v 1.3 1999/12/11 19:28:48 mvojkovi Exp $ */ |
|
25 |
|
26 #ifndef XVLIB_H |
|
27 #define XVLIB_H |
|
28 /* |
|
29 ** File: |
|
30 ** |
|
31 ** Xvlib.h --- Xv library public header file |
|
32 ** |
|
33 ** Author: |
|
34 ** |
|
35 ** David Carver (Digital Workstation Engineering/Project Athena) |
|
36 ** |
|
37 ** Revisions: |
|
38 ** |
|
39 ** 26.06.91 Carver |
|
40 ** - changed XvFreeAdaptors to XvFreeAdaptorInfo |
|
41 ** - changed XvFreeEncodings to XvFreeEncodingInfo |
|
42 ** |
|
43 ** 11.06.91 Carver |
|
44 ** - changed SetPortControl to SetPortAttribute |
|
45 ** - changed GetPortControl to GetPortAttribute |
|
46 ** - changed QueryBestSize |
|
47 ** |
|
48 ** 05.15.91 Carver |
|
49 ** - version 2.0 upgrade |
|
50 ** |
|
51 ** 01.24.91 Carver |
|
52 ** - version 1.4 upgrade |
|
53 ** |
|
54 */ |
|
55 |
|
56 #include <X11/Xfuncproto.h> |
|
57 #include "Xv.h" |
|
58 #include "SDL_name.h" |
|
59 |
|
60 typedef struct { |
|
61 int numerator; |
|
62 int denominator; |
|
63 } SDL_NAME(XvRational); |
|
64 |
|
65 typedef struct { |
|
66 int flags; /* XvGettable, XvSettable */ |
|
67 int min_value; |
|
68 int max_value; |
|
69 char *name; |
|
70 } SDL_NAME(XvAttribute); |
|
71 |
|
72 typedef struct { |
|
73 XvEncodingID encoding_id; |
|
74 char *name; |
|
75 unsigned long width; |
|
76 unsigned long height; |
|
77 SDL_NAME(XvRational) rate; |
|
78 unsigned long num_encodings; |
|
79 } SDL_NAME(XvEncodingInfo); |
|
80 |
|
81 typedef struct { |
|
82 char depth; |
|
83 unsigned long visual_id; |
|
84 } SDL_NAME(XvFormat); |
|
85 |
|
86 typedef struct { |
|
87 XvPortID base_id; |
|
88 unsigned long num_ports; |
|
89 char type; |
|
90 char *name; |
|
91 unsigned long num_formats; |
|
92 SDL_NAME(XvFormat) *formats; |
|
93 unsigned long num_adaptors; |
|
94 } SDL_NAME(XvAdaptorInfo); |
|
95 |
|
96 typedef struct { |
|
97 int type; |
|
98 unsigned long serial; /* # of last request processed by server */ |
|
99 Bool send_event; /* true if this came from a SendEvent request */ |
|
100 Display *display; /* Display the event was read from */ |
|
101 Drawable drawable; /* drawable */ |
|
102 unsigned long reason; /* what generated this event */ |
|
103 XvPortID port_id; /* what port */ |
|
104 Time time; /* milliseconds */ |
|
105 } SDL_NAME(XvVideoNotifyEvent); |
|
106 |
|
107 typedef struct { |
|
108 int type; |
|
109 unsigned long serial; /* # of last request processed by server */ |
|
110 Bool send_event; /* true if this came from a SendEvent request */ |
|
111 Display *display; /* Display the event was read from */ |
|
112 XvPortID port_id; /* what port */ |
|
113 Time time; /* milliseconds */ |
|
114 Atom attribute; /* atom that identifies attribute */ |
|
115 long value; /* value of attribute */ |
|
116 } SDL_NAME(XvPortNotifyEvent); |
|
117 |
|
118 typedef union { |
|
119 int type; |
|
120 SDL_NAME(XvVideoNotifyEvent) xvvideo; |
|
121 SDL_NAME(XvPortNotifyEvent) xvport; |
|
122 long pad[24]; |
|
123 } SDL_NAME(XvEvent); |
|
124 |
|
125 typedef struct { |
|
126 int id; /* Unique descriptor for the format */ |
|
127 int type; /* XvRGB, XvYUV */ |
|
128 int byte_order; /* LSBFirst, MSBFirst */ |
|
129 char guid[16]; /* Globally Unique IDentifier */ |
|
130 int bits_per_pixel; |
|
131 int format; /* XvPacked, XvPlanar */ |
|
132 int num_planes; |
|
133 |
|
134 /* for RGB formats only */ |
|
135 int depth; |
|
136 unsigned int red_mask; |
|
137 unsigned int green_mask; |
|
138 unsigned int blue_mask; |
|
139 |
|
140 /* for YUV formats only */ |
|
141 unsigned int y_sample_bits; |
|
142 unsigned int u_sample_bits; |
|
143 unsigned int v_sample_bits; |
|
144 unsigned int horz_y_period; |
|
145 unsigned int horz_u_period; |
|
146 unsigned int horz_v_period; |
|
147 unsigned int vert_y_period; |
|
148 unsigned int vert_u_period; |
|
149 unsigned int vert_v_period; |
|
150 char component_order[32]; /* eg. UYVY */ |
|
151 int scanline_order; /* XvTopToBottom, XvBottomToTop */ |
|
152 } SDL_NAME(XvImageFormatValues); |
|
153 |
|
154 typedef struct { |
|
155 int id; |
|
156 int width, height; |
|
157 int data_size; /* bytes */ |
|
158 int num_planes; |
|
159 int *pitches; /* bytes */ |
|
160 int *offsets; /* bytes */ |
|
161 char *data; |
|
162 XPointer obdata; |
|
163 } SDL_NAME(XvImage); |
|
164 |
|
165 _XFUNCPROTOBEGIN |
|
166 |
|
167 extern int SDL_NAME(XvQueryExtension)( |
|
168 #if NeedFunctionPrototypes |
|
169 Display* /* display */, |
|
170 unsigned int* /* p_version */, |
|
171 unsigned int* /* p_revision */, |
|
172 unsigned int* /* p_requestBase */, |
|
173 unsigned int* /* p_eventBase */, |
|
174 unsigned int* /* p_errorBase */ |
|
175 #endif |
|
176 ); |
|
177 |
|
178 extern int SDL_NAME(XvQueryAdaptors)( |
|
179 #if NeedFunctionPrototypes |
|
180 Display* /* display */, |
|
181 Window /* window */, |
|
182 unsigned int* /* p_nAdaptors */, |
|
183 SDL_NAME(XvAdaptorInfo)** /* p_pAdaptors */ |
|
184 #endif |
|
185 ); |
|
186 |
|
187 extern int SDL_NAME(XvQueryEncodings)( |
|
188 #if NeedFunctionPrototypes |
|
189 Display* /* display */, |
|
190 XvPortID /* port */, |
|
191 unsigned int* /* p_nEncoding */, |
|
192 SDL_NAME(XvEncodingInfo)** /* p_pEncoding */ |
|
193 #endif |
|
194 ); |
|
195 |
|
196 extern int SDL_NAME(XvPutVideo)( |
|
197 #if NeedFunctionPrototypes |
|
198 Display* /* display */, |
|
199 XvPortID /* port */, |
|
200 Drawable /* d */, |
|
201 GC /* gc */, |
|
202 int /* vx */, |
|
203 int /* vy */, |
|
204 unsigned int /* vw */, |
|
205 unsigned int /* vh */, |
|
206 int /* dx */, |
|
207 int /* dy */, |
|
208 unsigned int /* dw */, |
|
209 unsigned int /* dh */ |
|
210 #endif |
|
211 ); |
|
212 |
|
213 extern int SDL_NAME(XvPutStill)( |
|
214 #if NeedFunctionPrototypes |
|
215 Display* /* display */, |
|
216 XvPortID /* port */, |
|
217 Drawable /* d */, |
|
218 GC /* gc */, |
|
219 int /* vx */, |
|
220 int /* vy */, |
|
221 unsigned int /* vw */, |
|
222 unsigned int /* vh */, |
|
223 int /* dx */, |
|
224 int /* dy */, |
|
225 unsigned int /* dw */, |
|
226 unsigned int /* dh */ |
|
227 #endif |
|
228 ); |
|
229 |
|
230 extern int SDL_NAME(XvGetVideo)( |
|
231 #if NeedFunctionPrototypes |
|
232 Display* /* display */, |
|
233 XvPortID /* port */, |
|
234 Drawable /* d */, |
|
235 GC /* gc */, |
|
236 int /* vx */, |
|
237 int /* vy */, |
|
238 unsigned int /* vw */, |
|
239 unsigned int /* vh */, |
|
240 int /* dx */, |
|
241 int /* dy */, |
|
242 unsigned int /* dw */, |
|
243 unsigned int /* dh */ |
|
244 #endif |
|
245 ); |
|
246 |
|
247 extern int SDL_NAME(XvGetStill)( |
|
248 #if NeedFunctionPrototypes |
|
249 Display* /* display */, |
|
250 XvPortID /* port */, |
|
251 Drawable /* d */, |
|
252 GC /* gc */, |
|
253 int /* vx */, |
|
254 int /* vy */, |
|
255 unsigned int /* vw */, |
|
256 unsigned int /* vh */, |
|
257 int /* dx */, |
|
258 int /* dy */, |
|
259 unsigned int /* dw */, |
|
260 unsigned int /* dh */ |
|
261 #endif |
|
262 ); |
|
263 |
|
264 extern int SDL_NAME(XvStopVideo)( |
|
265 #if NeedFunctionPrototypes |
|
266 Display* /* display */, |
|
267 XvPortID /* port */, |
|
268 Drawable /* drawable */ |
|
269 #endif |
|
270 ); |
|
271 |
|
272 extern int SDL_NAME(XvGrabPort)( |
|
273 #if NeedFunctionPrototypes |
|
274 Display* /* display */, |
|
275 XvPortID /* port */, |
|
276 Time /* time */ |
|
277 #endif |
|
278 ); |
|
279 |
|
280 extern int SDL_NAME(XvUngrabPort)( |
|
281 #if NeedFunctionPrototypes |
|
282 Display* /* display */, |
|
283 XvPortID /* port */, |
|
284 Time /* time */ |
|
285 #endif |
|
286 ); |
|
287 |
|
288 extern int SDL_NAME(XvSelectVideoNotify)( |
|
289 #if NeedFunctionPrototypes |
|
290 Display* /* display */, |
|
291 Drawable /* drawable */, |
|
292 Bool /* onoff */ |
|
293 #endif |
|
294 ); |
|
295 |
|
296 extern int SDL_NAME(XvSelectPortNotify)( |
|
297 #if NeedFunctionPrototypes |
|
298 Display* /* display */, |
|
299 XvPortID /* port */, |
|
300 Bool /* onoff */ |
|
301 #endif |
|
302 ); |
|
303 |
|
304 extern int SDL_NAME(XvSetPortAttribute)( |
|
305 #if NeedFunctionPrototypes |
|
306 Display* /* display */, |
|
307 XvPortID /* port */, |
|
308 Atom /* attribute */, |
|
309 int /* value */ |
|
310 #endif |
|
311 ); |
|
312 |
|
313 extern int SDL_NAME(XvGetPortAttribute)( |
|
314 #if NeedFunctionPrototypes |
|
315 Display* /* display */, |
|
316 XvPortID /* port */, |
|
317 Atom /* attribute */, |
|
318 int* /* p_value */ |
|
319 #endif |
|
320 ); |
|
321 |
|
322 extern int SDL_NAME(XvQueryBestSize)( |
|
323 #if NeedFunctionPrototypes |
|
324 Display* /* display */, |
|
325 XvPortID /* port */, |
|
326 Bool /* motion */, |
|
327 unsigned int /* vid_w */, |
|
328 unsigned int /* vid_h */, |
|
329 unsigned int /* drw_w */, |
|
330 unsigned int /* drw_h */, |
|
331 unsigned int* /* p_actual_width */, |
|
332 unsigned int* /* p_actual_width */ |
|
333 #endif |
|
334 ); |
|
335 |
|
336 extern SDL_NAME(XvAttribute)* SDL_NAME(XvQueryPortAttributes)( |
|
337 #if NeedFunctionPrototypes |
|
338 Display* /* display */, |
|
339 XvPortID /* port */, |
|
340 int* /* number */ |
|
341 #endif |
|
342 ); |
|
343 |
|
344 |
|
345 extern void SDL_NAME(XvFreeAdaptorInfo)( |
|
346 #if NeedFunctionPrototypes |
|
347 SDL_NAME(XvAdaptorInfo)* /* adaptors */ |
|
348 #endif |
|
349 ); |
|
350 |
|
351 extern void SDL_NAME(XvFreeEncodingInfo)( |
|
352 #if NeedFunctionPrototypes |
|
353 SDL_NAME(XvEncodingInfo)* /* encodings */ |
|
354 #endif |
|
355 ); |
|
356 |
|
357 |
|
358 extern SDL_NAME(XvImageFormatValues) * SDL_NAME(XvListImageFormats) ( |
|
359 #if NeedFunctionPrototypes |
|
360 Display *display, |
|
361 XvPortID port_id, |
|
362 int *count_return |
|
363 #endif |
|
364 ); |
|
365 |
|
366 extern SDL_NAME(XvImage) * SDL_NAME(XvCreateImage) ( |
|
367 #if NeedFunctionPrototypes |
|
368 Display *display, |
|
369 XvPortID port, |
|
370 int id, |
|
371 char *data, |
|
372 int width, |
|
373 int height |
|
374 #endif |
|
375 ); |
|
376 |
|
377 extern int SDL_NAME(XvPutImage) ( |
|
378 #if NeedFunctionPrototypes |
|
379 Display *display, |
|
380 XvPortID id, |
|
381 Drawable d, |
|
382 GC gc, |
|
383 SDL_NAME(XvImage) *image, |
|
384 int src_x, |
|
385 int src_y, |
|
386 unsigned int src_w, |
|
387 unsigned int src_h, |
|
388 int dest_x, |
|
389 int dest_y, |
|
390 unsigned int dest_w, |
|
391 unsigned int dest_h |
|
392 #endif |
|
393 ); |
|
394 |
|
395 extern int SDL_NAME(XvShmPutImage) ( |
|
396 #if NeedFunctionPrototypes |
|
397 Display *display, |
|
398 XvPortID id, |
|
399 Drawable d, |
|
400 GC gc, |
|
401 SDL_NAME(XvImage) *image, |
|
402 int src_x, |
|
403 int src_y, |
|
404 unsigned int src_w, |
|
405 unsigned int src_h, |
|
406 int dest_x, |
|
407 int dest_y, |
|
408 unsigned int dest_w, |
|
409 unsigned int dest_h, |
|
410 Bool send_event |
|
411 #endif |
|
412 ); |
|
413 |
|
414 #ifdef _XSHM_H_ |
|
415 |
|
416 extern SDL_NAME(XvImage) * SDL_NAME(XvShmCreateImage) ( |
|
417 #if NeedFunctionPrototypes |
|
418 Display *display, |
|
419 XvPortID port, |
|
420 int id, |
|
421 char* data, |
|
422 int width, |
|
423 int height, |
|
424 XShmSegmentInfo *shminfo |
|
425 #endif |
|
426 ); |
|
427 |
|
428 #endif |
|
429 |
|
430 |
|
431 _XFUNCPROTOEND |
|
432 |
|
433 #endif /* XVLIB_H */ |