xref: /netbsd/external/mit/xorg/lib/libxcb/files/xv.h (revision 9a467d0f)
1 /*
2  * This file generated automatically from xv.xml by c_client.py.
3  * Edit at your peril.
4  */
5 
6 /**
7  * @defgroup XCB_Xv_API XCB Xv API
8  * @brief Xv XCB Protocol Implementation.
9  * @{
10  **/
11 
12 #ifndef __XV_H
13 #define __XV_H
14 
15 #include "xcb.h"
16 #include "xproto.h"
17 #include "shm.h"
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 #define XCB_XV_MAJOR_VERSION 2
24 #define XCB_XV_MINOR_VERSION 2
25 
26 extern xcb_extension_t xcb_xv_id;
27 
28 typedef uint32_t xcb_xv_port_t;
29 
30 /**
31  * @brief xcb_xv_port_iterator_t
32  **/
33 typedef struct xcb_xv_port_iterator_t {
34     xcb_xv_port_t *data;
35     int            rem;
36     int            index;
37 } xcb_xv_port_iterator_t;
38 
39 typedef uint32_t xcb_xv_encoding_t;
40 
41 /**
42  * @brief xcb_xv_encoding_iterator_t
43  **/
44 typedef struct xcb_xv_encoding_iterator_t {
45     xcb_xv_encoding_t *data;
46     int                rem;
47     int                index;
48 } xcb_xv_encoding_iterator_t;
49 
50 typedef enum xcb_xv_type_t {
51     XCB_XV_TYPE_INPUT_MASK = 1,
52     XCB_XV_TYPE_OUTPUT_MASK = 2,
53     XCB_XV_TYPE_VIDEO_MASK = 4,
54     XCB_XV_TYPE_STILL_MASK = 8,
55     XCB_XV_TYPE_IMAGE_MASK = 16
56 } xcb_xv_type_t;
57 
58 typedef enum xcb_xv_image_format_info_type_t {
59     XCB_XV_IMAGE_FORMAT_INFO_TYPE_RGB = 0,
60     XCB_XV_IMAGE_FORMAT_INFO_TYPE_YUV = 1
61 } xcb_xv_image_format_info_type_t;
62 
63 typedef enum xcb_xv_image_format_info_format_t {
64     XCB_XV_IMAGE_FORMAT_INFO_FORMAT_PACKED = 0,
65     XCB_XV_IMAGE_FORMAT_INFO_FORMAT_PLANAR = 1
66 } xcb_xv_image_format_info_format_t;
67 
68 typedef enum xcb_xv_attribute_flag_t {
69     XCB_XV_ATTRIBUTE_FLAG_GETTABLE = 1,
70     XCB_XV_ATTRIBUTE_FLAG_SETTABLE = 2
71 } xcb_xv_attribute_flag_t;
72 
73 typedef enum xcb_xv_video_notify_reason_t {
74     XCB_XV_VIDEO_NOTIFY_REASON_STARTED = 0,
75     XCB_XV_VIDEO_NOTIFY_REASON_STOPPED = 1,
76     XCB_XV_VIDEO_NOTIFY_REASON_BUSY = 2,
77     XCB_XV_VIDEO_NOTIFY_REASON_PREEMPTED = 3,
78     XCB_XV_VIDEO_NOTIFY_REASON_HARD_ERROR = 4
79 } xcb_xv_video_notify_reason_t;
80 
81 typedef enum xcb_xv_scanline_order_t {
82     XCB_XV_SCANLINE_ORDER_TOP_TO_BOTTOM = 0,
83     XCB_XV_SCANLINE_ORDER_BOTTOM_TO_TOP = 1
84 } xcb_xv_scanline_order_t;
85 
86 typedef enum xcb_xv_grab_port_status_t {
87     XCB_XV_GRAB_PORT_STATUS_SUCCESS = 0,
88     XCB_XV_GRAB_PORT_STATUS_BAD_EXTENSION = 1,
89     XCB_XV_GRAB_PORT_STATUS_ALREADY_GRABBED = 2,
90     XCB_XV_GRAB_PORT_STATUS_INVALID_TIME = 3,
91     XCB_XV_GRAB_PORT_STATUS_BAD_REPLY = 4,
92     XCB_XV_GRAB_PORT_STATUS_BAD_ALLOC = 5
93 } xcb_xv_grab_port_status_t;
94 
95 /**
96  * @brief xcb_xv_rational_t
97  **/
98 typedef struct xcb_xv_rational_t {
99     int32_t numerator;
100     int32_t denominator;
101 } xcb_xv_rational_t;
102 
103 /**
104  * @brief xcb_xv_rational_iterator_t
105  **/
106 typedef struct xcb_xv_rational_iterator_t {
107     xcb_xv_rational_t *data;
108     int                rem;
109     int                index;
110 } xcb_xv_rational_iterator_t;
111 
112 /**
113  * @brief xcb_xv_format_t
114  **/
115 typedef struct xcb_xv_format_t {
116     xcb_visualid_t visual;
117     uint8_t        depth;
118     uint8_t        pad0[3];
119 } xcb_xv_format_t;
120 
121 /**
122  * @brief xcb_xv_format_iterator_t
123  **/
124 typedef struct xcb_xv_format_iterator_t {
125     xcb_xv_format_t *data;
126     int              rem;
127     int              index;
128 } xcb_xv_format_iterator_t;
129 
130 /**
131  * @brief xcb_xv_adaptor_info_t
132  **/
133 typedef struct xcb_xv_adaptor_info_t {
134     xcb_xv_port_t base_id;
135     uint16_t      name_size;
136     uint16_t      num_ports;
137     uint16_t      num_formats;
138     uint8_t       type;
139     uint8_t       pad0;
140 } xcb_xv_adaptor_info_t;
141 
142 /**
143  * @brief xcb_xv_adaptor_info_iterator_t
144  **/
145 typedef struct xcb_xv_adaptor_info_iterator_t {
146     xcb_xv_adaptor_info_t *data;
147     int                    rem;
148     int                    index;
149 } xcb_xv_adaptor_info_iterator_t;
150 
151 /**
152  * @brief xcb_xv_encoding_info_t
153  **/
154 typedef struct xcb_xv_encoding_info_t {
155     xcb_xv_encoding_t encoding;
156     uint16_t          name_size;
157     uint16_t          width;
158     uint16_t          height;
159     uint8_t           pad0[2];
160     xcb_xv_rational_t rate;
161 } xcb_xv_encoding_info_t;
162 
163 /**
164  * @brief xcb_xv_encoding_info_iterator_t
165  **/
166 typedef struct xcb_xv_encoding_info_iterator_t {
167     xcb_xv_encoding_info_t *data;
168     int                     rem;
169     int                     index;
170 } xcb_xv_encoding_info_iterator_t;
171 
172 /**
173  * @brief xcb_xv_image_t
174  **/
175 typedef struct xcb_xv_image_t {
176     uint32_t id;
177     uint16_t width;
178     uint16_t height;
179     uint32_t data_size;
180     uint32_t num_planes;
181 } xcb_xv_image_t;
182 
183 /**
184  * @brief xcb_xv_image_iterator_t
185  **/
186 typedef struct xcb_xv_image_iterator_t {
187     xcb_xv_image_t *data;
188     int             rem;
189     int             index;
190 } xcb_xv_image_iterator_t;
191 
192 /**
193  * @brief xcb_xv_attribute_info_t
194  **/
195 typedef struct xcb_xv_attribute_info_t {
196     uint32_t flags;
197     int32_t  min;
198     int32_t  max;
199     uint32_t size;
200 } xcb_xv_attribute_info_t;
201 
202 /**
203  * @brief xcb_xv_attribute_info_iterator_t
204  **/
205 typedef struct xcb_xv_attribute_info_iterator_t {
206     xcb_xv_attribute_info_t *data;
207     int                      rem;
208     int                      index;
209 } xcb_xv_attribute_info_iterator_t;
210 
211 /**
212  * @brief xcb_xv_image_format_info_t
213  **/
214 typedef struct xcb_xv_image_format_info_t {
215     uint32_t id;
216     uint8_t  type;
217     uint8_t  byte_order;
218     uint8_t  pad0[2];
219     uint8_t  guid[16];
220     uint8_t  bpp;
221     uint8_t  num_planes;
222     uint8_t  pad1[2];
223     uint8_t  depth;
224     uint8_t  pad2[3];
225     uint32_t red_mask;
226     uint32_t green_mask;
227     uint32_t blue_mask;
228     uint8_t  format;
229     uint8_t  pad3[3];
230     uint32_t y_sample_bits;
231     uint32_t u_sample_bits;
232     uint32_t v_sample_bits;
233     uint32_t vhorz_y_period;
234     uint32_t vhorz_u_period;
235     uint32_t vhorz_v_period;
236     uint32_t vvert_y_period;
237     uint32_t vvert_u_period;
238     uint32_t vvert_v_period;
239     uint8_t  vcomp_order[32];
240     uint8_t  vscanline_order;
241     uint8_t  pad4[11];
242 } xcb_xv_image_format_info_t;
243 
244 /**
245  * @brief xcb_xv_image_format_info_iterator_t
246  **/
247 typedef struct xcb_xv_image_format_info_iterator_t {
248     xcb_xv_image_format_info_t *data;
249     int                         rem;
250     int                         index;
251 } xcb_xv_image_format_info_iterator_t;
252 
253 /** Opcode for xcb_xv_bad_port. */
254 #define XCB_XV_BAD_PORT 0
255 
256 /**
257  * @brief xcb_xv_bad_port_error_t
258  **/
259 typedef struct xcb_xv_bad_port_error_t {
260     uint8_t  response_type;
261     uint8_t  error_code;
262     uint16_t sequence;
263     uint32_t bad_value;
264     uint16_t minor_opcode;
265     uint8_t  major_opcode;
266 } xcb_xv_bad_port_error_t;
267 
268 /** Opcode for xcb_xv_bad_encoding. */
269 #define XCB_XV_BAD_ENCODING 1
270 
271 /**
272  * @brief xcb_xv_bad_encoding_error_t
273  **/
274 typedef struct xcb_xv_bad_encoding_error_t {
275     uint8_t  response_type;
276     uint8_t  error_code;
277     uint16_t sequence;
278     uint32_t bad_value;
279     uint16_t minor_opcode;
280     uint8_t  major_opcode;
281 } xcb_xv_bad_encoding_error_t;
282 
283 /** Opcode for xcb_xv_bad_control. */
284 #define XCB_XV_BAD_CONTROL 2
285 
286 /**
287  * @brief xcb_xv_bad_control_error_t
288  **/
289 typedef struct xcb_xv_bad_control_error_t {
290     uint8_t  response_type;
291     uint8_t  error_code;
292     uint16_t sequence;
293     uint32_t bad_value;
294     uint16_t minor_opcode;
295     uint8_t  major_opcode;
296 } xcb_xv_bad_control_error_t;
297 
298 /** Opcode for xcb_xv_video_notify. */
299 #define XCB_XV_VIDEO_NOTIFY 0
300 
301 /**
302  * @brief xcb_xv_video_notify_event_t
303  **/
304 typedef struct xcb_xv_video_notify_event_t {
305     uint8_t         response_type;
306     uint8_t         reason;
307     uint16_t        sequence;
308     xcb_timestamp_t time;
309     xcb_drawable_t  drawable;
310     xcb_xv_port_t   port;
311 } xcb_xv_video_notify_event_t;
312 
313 /** Opcode for xcb_xv_port_notify. */
314 #define XCB_XV_PORT_NOTIFY 1
315 
316 /**
317  * @brief xcb_xv_port_notify_event_t
318  **/
319 typedef struct xcb_xv_port_notify_event_t {
320     uint8_t         response_type;
321     uint8_t         pad0;
322     uint16_t        sequence;
323     xcb_timestamp_t time;
324     xcb_xv_port_t   port;
325     xcb_atom_t      attribute;
326     int32_t         value;
327 } xcb_xv_port_notify_event_t;
328 
329 /**
330  * @brief xcb_xv_query_extension_cookie_t
331  **/
332 typedef struct xcb_xv_query_extension_cookie_t {
333     unsigned int sequence;
334 } xcb_xv_query_extension_cookie_t;
335 
336 /** Opcode for xcb_xv_query_extension. */
337 #define XCB_XV_QUERY_EXTENSION 0
338 
339 /**
340  * @brief xcb_xv_query_extension_request_t
341  **/
342 typedef struct xcb_xv_query_extension_request_t {
343     uint8_t  major_opcode;
344     uint8_t  minor_opcode;
345     uint16_t length;
346 } xcb_xv_query_extension_request_t;
347 
348 /**
349  * @brief xcb_xv_query_extension_reply_t
350  **/
351 typedef struct xcb_xv_query_extension_reply_t {
352     uint8_t  response_type;
353     uint8_t  pad0;
354     uint16_t sequence;
355     uint32_t length;
356     uint16_t major;
357     uint16_t minor;
358 } xcb_xv_query_extension_reply_t;
359 
360 /**
361  * @brief xcb_xv_query_adaptors_cookie_t
362  **/
363 typedef struct xcb_xv_query_adaptors_cookie_t {
364     unsigned int sequence;
365 } xcb_xv_query_adaptors_cookie_t;
366 
367 /** Opcode for xcb_xv_query_adaptors. */
368 #define XCB_XV_QUERY_ADAPTORS 1
369 
370 /**
371  * @brief xcb_xv_query_adaptors_request_t
372  **/
373 typedef struct xcb_xv_query_adaptors_request_t {
374     uint8_t      major_opcode;
375     uint8_t      minor_opcode;
376     uint16_t     length;
377     xcb_window_t window;
378 } xcb_xv_query_adaptors_request_t;
379 
380 /**
381  * @brief xcb_xv_query_adaptors_reply_t
382  **/
383 typedef struct xcb_xv_query_adaptors_reply_t {
384     uint8_t  response_type;
385     uint8_t  pad0;
386     uint16_t sequence;
387     uint32_t length;
388     uint16_t num_adaptors;
389     uint8_t  pad1[22];
390 } xcb_xv_query_adaptors_reply_t;
391 
392 /**
393  * @brief xcb_xv_query_encodings_cookie_t
394  **/
395 typedef struct xcb_xv_query_encodings_cookie_t {
396     unsigned int sequence;
397 } xcb_xv_query_encodings_cookie_t;
398 
399 /** Opcode for xcb_xv_query_encodings. */
400 #define XCB_XV_QUERY_ENCODINGS 2
401 
402 /**
403  * @brief xcb_xv_query_encodings_request_t
404  **/
405 typedef struct xcb_xv_query_encodings_request_t {
406     uint8_t       major_opcode;
407     uint8_t       minor_opcode;
408     uint16_t      length;
409     xcb_xv_port_t port;
410 } xcb_xv_query_encodings_request_t;
411 
412 /**
413  * @brief xcb_xv_query_encodings_reply_t
414  **/
415 typedef struct xcb_xv_query_encodings_reply_t {
416     uint8_t  response_type;
417     uint8_t  pad0;
418     uint16_t sequence;
419     uint32_t length;
420     uint16_t num_encodings;
421     uint8_t  pad1[22];
422 } xcb_xv_query_encodings_reply_t;
423 
424 /**
425  * @brief xcb_xv_grab_port_cookie_t
426  **/
427 typedef struct xcb_xv_grab_port_cookie_t {
428     unsigned int sequence;
429 } xcb_xv_grab_port_cookie_t;
430 
431 /** Opcode for xcb_xv_grab_port. */
432 #define XCB_XV_GRAB_PORT 3
433 
434 /**
435  * @brief xcb_xv_grab_port_request_t
436  **/
437 typedef struct xcb_xv_grab_port_request_t {
438     uint8_t         major_opcode;
439     uint8_t         minor_opcode;
440     uint16_t        length;
441     xcb_xv_port_t   port;
442     xcb_timestamp_t time;
443 } xcb_xv_grab_port_request_t;
444 
445 /**
446  * @brief xcb_xv_grab_port_reply_t
447  **/
448 typedef struct xcb_xv_grab_port_reply_t {
449     uint8_t  response_type;
450     uint8_t  result;
451     uint16_t sequence;
452     uint32_t length;
453 } xcb_xv_grab_port_reply_t;
454 
455 /** Opcode for xcb_xv_ungrab_port. */
456 #define XCB_XV_UNGRAB_PORT 4
457 
458 /**
459  * @brief xcb_xv_ungrab_port_request_t
460  **/
461 typedef struct xcb_xv_ungrab_port_request_t {
462     uint8_t         major_opcode;
463     uint8_t         minor_opcode;
464     uint16_t        length;
465     xcb_xv_port_t   port;
466     xcb_timestamp_t time;
467 } xcb_xv_ungrab_port_request_t;
468 
469 /** Opcode for xcb_xv_put_video. */
470 #define XCB_XV_PUT_VIDEO 5
471 
472 /**
473  * @brief xcb_xv_put_video_request_t
474  **/
475 typedef struct xcb_xv_put_video_request_t {
476     uint8_t        major_opcode;
477     uint8_t        minor_opcode;
478     uint16_t       length;
479     xcb_xv_port_t  port;
480     xcb_drawable_t drawable;
481     xcb_gcontext_t gc;
482     int16_t        vid_x;
483     int16_t        vid_y;
484     uint16_t       vid_w;
485     uint16_t       vid_h;
486     int16_t        drw_x;
487     int16_t        drw_y;
488     uint16_t       drw_w;
489     uint16_t       drw_h;
490 } xcb_xv_put_video_request_t;
491 
492 /** Opcode for xcb_xv_put_still. */
493 #define XCB_XV_PUT_STILL 6
494 
495 /**
496  * @brief xcb_xv_put_still_request_t
497  **/
498 typedef struct xcb_xv_put_still_request_t {
499     uint8_t        major_opcode;
500     uint8_t        minor_opcode;
501     uint16_t       length;
502     xcb_xv_port_t  port;
503     xcb_drawable_t drawable;
504     xcb_gcontext_t gc;
505     int16_t        vid_x;
506     int16_t        vid_y;
507     uint16_t       vid_w;
508     uint16_t       vid_h;
509     int16_t        drw_x;
510     int16_t        drw_y;
511     uint16_t       drw_w;
512     uint16_t       drw_h;
513 } xcb_xv_put_still_request_t;
514 
515 /** Opcode for xcb_xv_get_video. */
516 #define XCB_XV_GET_VIDEO 7
517 
518 /**
519  * @brief xcb_xv_get_video_request_t
520  **/
521 typedef struct xcb_xv_get_video_request_t {
522     uint8_t        major_opcode;
523     uint8_t        minor_opcode;
524     uint16_t       length;
525     xcb_xv_port_t  port;
526     xcb_drawable_t drawable;
527     xcb_gcontext_t gc;
528     int16_t        vid_x;
529     int16_t        vid_y;
530     uint16_t       vid_w;
531     uint16_t       vid_h;
532     int16_t        drw_x;
533     int16_t        drw_y;
534     uint16_t       drw_w;
535     uint16_t       drw_h;
536 } xcb_xv_get_video_request_t;
537 
538 /** Opcode for xcb_xv_get_still. */
539 #define XCB_XV_GET_STILL 8
540 
541 /**
542  * @brief xcb_xv_get_still_request_t
543  **/
544 typedef struct xcb_xv_get_still_request_t {
545     uint8_t        major_opcode;
546     uint8_t        minor_opcode;
547     uint16_t       length;
548     xcb_xv_port_t  port;
549     xcb_drawable_t drawable;
550     xcb_gcontext_t gc;
551     int16_t        vid_x;
552     int16_t        vid_y;
553     uint16_t       vid_w;
554     uint16_t       vid_h;
555     int16_t        drw_x;
556     int16_t        drw_y;
557     uint16_t       drw_w;
558     uint16_t       drw_h;
559 } xcb_xv_get_still_request_t;
560 
561 /** Opcode for xcb_xv_stop_video. */
562 #define XCB_XV_STOP_VIDEO 9
563 
564 /**
565  * @brief xcb_xv_stop_video_request_t
566  **/
567 typedef struct xcb_xv_stop_video_request_t {
568     uint8_t        major_opcode;
569     uint8_t        minor_opcode;
570     uint16_t       length;
571     xcb_xv_port_t  port;
572     xcb_drawable_t drawable;
573 } xcb_xv_stop_video_request_t;
574 
575 /** Opcode for xcb_xv_select_video_notify. */
576 #define XCB_XV_SELECT_VIDEO_NOTIFY 10
577 
578 /**
579  * @brief xcb_xv_select_video_notify_request_t
580  **/
581 typedef struct xcb_xv_select_video_notify_request_t {
582     uint8_t        major_opcode;
583     uint8_t        minor_opcode;
584     uint16_t       length;
585     xcb_drawable_t drawable;
586     uint8_t        onoff;
587     uint8_t        pad0[3];
588 } xcb_xv_select_video_notify_request_t;
589 
590 /** Opcode for xcb_xv_select_port_notify. */
591 #define XCB_XV_SELECT_PORT_NOTIFY 11
592 
593 /**
594  * @brief xcb_xv_select_port_notify_request_t
595  **/
596 typedef struct xcb_xv_select_port_notify_request_t {
597     uint8_t       major_opcode;
598     uint8_t       minor_opcode;
599     uint16_t      length;
600     xcb_xv_port_t port;
601     uint8_t       onoff;
602     uint8_t       pad0[3];
603 } xcb_xv_select_port_notify_request_t;
604 
605 /**
606  * @brief xcb_xv_query_best_size_cookie_t
607  **/
608 typedef struct xcb_xv_query_best_size_cookie_t {
609     unsigned int sequence;
610 } xcb_xv_query_best_size_cookie_t;
611 
612 /** Opcode for xcb_xv_query_best_size. */
613 #define XCB_XV_QUERY_BEST_SIZE 12
614 
615 /**
616  * @brief xcb_xv_query_best_size_request_t
617  **/
618 typedef struct xcb_xv_query_best_size_request_t {
619     uint8_t       major_opcode;
620     uint8_t       minor_opcode;
621     uint16_t      length;
622     xcb_xv_port_t port;
623     uint16_t      vid_w;
624     uint16_t      vid_h;
625     uint16_t      drw_w;
626     uint16_t      drw_h;
627     uint8_t       motion;
628     uint8_t       pad0[3];
629 } xcb_xv_query_best_size_request_t;
630 
631 /**
632  * @brief xcb_xv_query_best_size_reply_t
633  **/
634 typedef struct xcb_xv_query_best_size_reply_t {
635     uint8_t  response_type;
636     uint8_t  pad0;
637     uint16_t sequence;
638     uint32_t length;
639     uint16_t actual_width;
640     uint16_t actual_height;
641 } xcb_xv_query_best_size_reply_t;
642 
643 /** Opcode for xcb_xv_set_port_attribute. */
644 #define XCB_XV_SET_PORT_ATTRIBUTE 13
645 
646 /**
647  * @brief xcb_xv_set_port_attribute_request_t
648  **/
649 typedef struct xcb_xv_set_port_attribute_request_t {
650     uint8_t       major_opcode;
651     uint8_t       minor_opcode;
652     uint16_t      length;
653     xcb_xv_port_t port;
654     xcb_atom_t    attribute;
655     int32_t       value;
656 } xcb_xv_set_port_attribute_request_t;
657 
658 /**
659  * @brief xcb_xv_get_port_attribute_cookie_t
660  **/
661 typedef struct xcb_xv_get_port_attribute_cookie_t {
662     unsigned int sequence;
663 } xcb_xv_get_port_attribute_cookie_t;
664 
665 /** Opcode for xcb_xv_get_port_attribute. */
666 #define XCB_XV_GET_PORT_ATTRIBUTE 14
667 
668 /**
669  * @brief xcb_xv_get_port_attribute_request_t
670  **/
671 typedef struct xcb_xv_get_port_attribute_request_t {
672     uint8_t       major_opcode;
673     uint8_t       minor_opcode;
674     uint16_t      length;
675     xcb_xv_port_t port;
676     xcb_atom_t    attribute;
677 } xcb_xv_get_port_attribute_request_t;
678 
679 /**
680  * @brief xcb_xv_get_port_attribute_reply_t
681  **/
682 typedef struct xcb_xv_get_port_attribute_reply_t {
683     uint8_t  response_type;
684     uint8_t  pad0;
685     uint16_t sequence;
686     uint32_t length;
687     int32_t  value;
688 } xcb_xv_get_port_attribute_reply_t;
689 
690 /**
691  * @brief xcb_xv_query_port_attributes_cookie_t
692  **/
693 typedef struct xcb_xv_query_port_attributes_cookie_t {
694     unsigned int sequence;
695 } xcb_xv_query_port_attributes_cookie_t;
696 
697 /** Opcode for xcb_xv_query_port_attributes. */
698 #define XCB_XV_QUERY_PORT_ATTRIBUTES 15
699 
700 /**
701  * @brief xcb_xv_query_port_attributes_request_t
702  **/
703 typedef struct xcb_xv_query_port_attributes_request_t {
704     uint8_t       major_opcode;
705     uint8_t       minor_opcode;
706     uint16_t      length;
707     xcb_xv_port_t port;
708 } xcb_xv_query_port_attributes_request_t;
709 
710 /**
711  * @brief xcb_xv_query_port_attributes_reply_t
712  **/
713 typedef struct xcb_xv_query_port_attributes_reply_t {
714     uint8_t  response_type;
715     uint8_t  pad0;
716     uint16_t sequence;
717     uint32_t length;
718     uint32_t num_attributes;
719     uint32_t text_size;
720     uint8_t  pad1[16];
721 } xcb_xv_query_port_attributes_reply_t;
722 
723 /**
724  * @brief xcb_xv_list_image_formats_cookie_t
725  **/
726 typedef struct xcb_xv_list_image_formats_cookie_t {
727     unsigned int sequence;
728 } xcb_xv_list_image_formats_cookie_t;
729 
730 /** Opcode for xcb_xv_list_image_formats. */
731 #define XCB_XV_LIST_IMAGE_FORMATS 16
732 
733 /**
734  * @brief xcb_xv_list_image_formats_request_t
735  **/
736 typedef struct xcb_xv_list_image_formats_request_t {
737     uint8_t       major_opcode;
738     uint8_t       minor_opcode;
739     uint16_t      length;
740     xcb_xv_port_t port;
741 } xcb_xv_list_image_formats_request_t;
742 
743 /**
744  * @brief xcb_xv_list_image_formats_reply_t
745  **/
746 typedef struct xcb_xv_list_image_formats_reply_t {
747     uint8_t  response_type;
748     uint8_t  pad0;
749     uint16_t sequence;
750     uint32_t length;
751     uint32_t num_formats;
752     uint8_t  pad1[20];
753 } xcb_xv_list_image_formats_reply_t;
754 
755 /**
756  * @brief xcb_xv_query_image_attributes_cookie_t
757  **/
758 typedef struct xcb_xv_query_image_attributes_cookie_t {
759     unsigned int sequence;
760 } xcb_xv_query_image_attributes_cookie_t;
761 
762 /** Opcode for xcb_xv_query_image_attributes. */
763 #define XCB_XV_QUERY_IMAGE_ATTRIBUTES 17
764 
765 /**
766  * @brief xcb_xv_query_image_attributes_request_t
767  **/
768 typedef struct xcb_xv_query_image_attributes_request_t {
769     uint8_t       major_opcode;
770     uint8_t       minor_opcode;
771     uint16_t      length;
772     xcb_xv_port_t port;
773     uint32_t      id;
774     uint16_t      width;
775     uint16_t      height;
776 } xcb_xv_query_image_attributes_request_t;
777 
778 /**
779  * @brief xcb_xv_query_image_attributes_reply_t
780  **/
781 typedef struct xcb_xv_query_image_attributes_reply_t {
782     uint8_t  response_type;
783     uint8_t  pad0;
784     uint16_t sequence;
785     uint32_t length;
786     uint32_t num_planes;
787     uint32_t data_size;
788     uint16_t width;
789     uint16_t height;
790     uint8_t  pad1[12];
791 } xcb_xv_query_image_attributes_reply_t;
792 
793 /** Opcode for xcb_xv_put_image. */
794 #define XCB_XV_PUT_IMAGE 18
795 
796 /**
797  * @brief xcb_xv_put_image_request_t
798  **/
799 typedef struct xcb_xv_put_image_request_t {
800     uint8_t        major_opcode;
801     uint8_t        minor_opcode;
802     uint16_t       length;
803     xcb_xv_port_t  port;
804     xcb_drawable_t drawable;
805     xcb_gcontext_t gc;
806     uint32_t       id;
807     int16_t        src_x;
808     int16_t        src_y;
809     uint16_t       src_w;
810     uint16_t       src_h;
811     int16_t        drw_x;
812     int16_t        drw_y;
813     uint16_t       drw_w;
814     uint16_t       drw_h;
815     uint16_t       width;
816     uint16_t       height;
817 } xcb_xv_put_image_request_t;
818 
819 /** Opcode for xcb_xv_shm_put_image. */
820 #define XCB_XV_SHM_PUT_IMAGE 19
821 
822 /**
823  * @brief xcb_xv_shm_put_image_request_t
824  **/
825 typedef struct xcb_xv_shm_put_image_request_t {
826     uint8_t        major_opcode;
827     uint8_t        minor_opcode;
828     uint16_t       length;
829     xcb_xv_port_t  port;
830     xcb_drawable_t drawable;
831     xcb_gcontext_t gc;
832     xcb_shm_seg_t  shmseg;
833     uint32_t       id;
834     uint32_t       offset;
835     int16_t        src_x;
836     int16_t        src_y;
837     uint16_t       src_w;
838     uint16_t       src_h;
839     int16_t        drw_x;
840     int16_t        drw_y;
841     uint16_t       drw_w;
842     uint16_t       drw_h;
843     uint16_t       width;
844     uint16_t       height;
845     uint8_t        send_event;
846     uint8_t        pad0[3];
847 } xcb_xv_shm_put_image_request_t;
848 
849 /**
850  * Get the next element of the iterator
851  * @param i Pointer to a xcb_xv_port_iterator_t
852  *
853  * Get the next element in the iterator. The member rem is
854  * decreased by one. The member data points to the next
855  * element. The member index is increased by sizeof(xcb_xv_port_t)
856  */
857 void
858 xcb_xv_port_next (xcb_xv_port_iterator_t *i);
859 
860 /**
861  * Return the iterator pointing to the last element
862  * @param i An xcb_xv_port_iterator_t
863  * @return  The iterator pointing to the last element
864  *
865  * Set the current element in the iterator to the last element.
866  * The member rem is set to 0. The member data points to the
867  * last element.
868  */
869 xcb_generic_iterator_t
870 xcb_xv_port_end (xcb_xv_port_iterator_t i);
871 
872 /**
873  * Get the next element of the iterator
874  * @param i Pointer to a xcb_xv_encoding_iterator_t
875  *
876  * Get the next element in the iterator. The member rem is
877  * decreased by one. The member data points to the next
878  * element. The member index is increased by sizeof(xcb_xv_encoding_t)
879  */
880 void
881 xcb_xv_encoding_next (xcb_xv_encoding_iterator_t *i);
882 
883 /**
884  * Return the iterator pointing to the last element
885  * @param i An xcb_xv_encoding_iterator_t
886  * @return  The iterator pointing to the last element
887  *
888  * Set the current element in the iterator to the last element.
889  * The member rem is set to 0. The member data points to the
890  * last element.
891  */
892 xcb_generic_iterator_t
893 xcb_xv_encoding_end (xcb_xv_encoding_iterator_t i);
894 
895 /**
896  * Get the next element of the iterator
897  * @param i Pointer to a xcb_xv_rational_iterator_t
898  *
899  * Get the next element in the iterator. The member rem is
900  * decreased by one. The member data points to the next
901  * element. The member index is increased by sizeof(xcb_xv_rational_t)
902  */
903 void
904 xcb_xv_rational_next (xcb_xv_rational_iterator_t *i);
905 
906 /**
907  * Return the iterator pointing to the last element
908  * @param i An xcb_xv_rational_iterator_t
909  * @return  The iterator pointing to the last element
910  *
911  * Set the current element in the iterator to the last element.
912  * The member rem is set to 0. The member data points to the
913  * last element.
914  */
915 xcb_generic_iterator_t
916 xcb_xv_rational_end (xcb_xv_rational_iterator_t i);
917 
918 /**
919  * Get the next element of the iterator
920  * @param i Pointer to a xcb_xv_format_iterator_t
921  *
922  * Get the next element in the iterator. The member rem is
923  * decreased by one. The member data points to the next
924  * element. The member index is increased by sizeof(xcb_xv_format_t)
925  */
926 void
927 xcb_xv_format_next (xcb_xv_format_iterator_t *i);
928 
929 /**
930  * Return the iterator pointing to the last element
931  * @param i An xcb_xv_format_iterator_t
932  * @return  The iterator pointing to the last element
933  *
934  * Set the current element in the iterator to the last element.
935  * The member rem is set to 0. The member data points to the
936  * last element.
937  */
938 xcb_generic_iterator_t
939 xcb_xv_format_end (xcb_xv_format_iterator_t i);
940 
941 int
942 xcb_xv_adaptor_info_sizeof (const void  *_buffer);
943 
944 char *
945 xcb_xv_adaptor_info_name (const xcb_xv_adaptor_info_t *R);
946 
947 int
948 xcb_xv_adaptor_info_name_length (const xcb_xv_adaptor_info_t *R);
949 
950 xcb_generic_iterator_t
951 xcb_xv_adaptor_info_name_end (const xcb_xv_adaptor_info_t *R);
952 
953 xcb_xv_format_t *
954 xcb_xv_adaptor_info_formats (const xcb_xv_adaptor_info_t *R);
955 
956 int
957 xcb_xv_adaptor_info_formats_length (const xcb_xv_adaptor_info_t *R);
958 
959 xcb_xv_format_iterator_t
960 xcb_xv_adaptor_info_formats_iterator (const xcb_xv_adaptor_info_t *R);
961 
962 /**
963  * Get the next element of the iterator
964  * @param i Pointer to a xcb_xv_adaptor_info_iterator_t
965  *
966  * Get the next element in the iterator. The member rem is
967  * decreased by one. The member data points to the next
968  * element. The member index is increased by sizeof(xcb_xv_adaptor_info_t)
969  */
970 void
971 xcb_xv_adaptor_info_next (xcb_xv_adaptor_info_iterator_t *i);
972 
973 /**
974  * Return the iterator pointing to the last element
975  * @param i An xcb_xv_adaptor_info_iterator_t
976  * @return  The iterator pointing to the last element
977  *
978  * Set the current element in the iterator to the last element.
979  * The member rem is set to 0. The member data points to the
980  * last element.
981  */
982 xcb_generic_iterator_t
983 xcb_xv_adaptor_info_end (xcb_xv_adaptor_info_iterator_t i);
984 
985 int
986 xcb_xv_encoding_info_sizeof (const void  *_buffer);
987 
988 char *
989 xcb_xv_encoding_info_name (const xcb_xv_encoding_info_t *R);
990 
991 int
992 xcb_xv_encoding_info_name_length (const xcb_xv_encoding_info_t *R);
993 
994 xcb_generic_iterator_t
995 xcb_xv_encoding_info_name_end (const xcb_xv_encoding_info_t *R);
996 
997 /**
998  * Get the next element of the iterator
999  * @param i Pointer to a xcb_xv_encoding_info_iterator_t
1000  *
1001  * Get the next element in the iterator. The member rem is
1002  * decreased by one. The member data points to the next
1003  * element. The member index is increased by sizeof(xcb_xv_encoding_info_t)
1004  */
1005 void
1006 xcb_xv_encoding_info_next (xcb_xv_encoding_info_iterator_t *i);
1007 
1008 /**
1009  * Return the iterator pointing to the last element
1010  * @param i An xcb_xv_encoding_info_iterator_t
1011  * @return  The iterator pointing to the last element
1012  *
1013  * Set the current element in the iterator to the last element.
1014  * The member rem is set to 0. The member data points to the
1015  * last element.
1016  */
1017 xcb_generic_iterator_t
1018 xcb_xv_encoding_info_end (xcb_xv_encoding_info_iterator_t i);
1019 
1020 int
1021 xcb_xv_image_sizeof (const void  *_buffer);
1022 
1023 uint32_t *
1024 xcb_xv_image_pitches (const xcb_xv_image_t *R);
1025 
1026 int
1027 xcb_xv_image_pitches_length (const xcb_xv_image_t *R);
1028 
1029 xcb_generic_iterator_t
1030 xcb_xv_image_pitches_end (const xcb_xv_image_t *R);
1031 
1032 uint32_t *
1033 xcb_xv_image_offsets (const xcb_xv_image_t *R);
1034 
1035 int
1036 xcb_xv_image_offsets_length (const xcb_xv_image_t *R);
1037 
1038 xcb_generic_iterator_t
1039 xcb_xv_image_offsets_end (const xcb_xv_image_t *R);
1040 
1041 uint8_t *
1042 xcb_xv_image_data (const xcb_xv_image_t *R);
1043 
1044 int
1045 xcb_xv_image_data_length (const xcb_xv_image_t *R);
1046 
1047 xcb_generic_iterator_t
1048 xcb_xv_image_data_end (const xcb_xv_image_t *R);
1049 
1050 /**
1051  * Get the next element of the iterator
1052  * @param i Pointer to a xcb_xv_image_iterator_t
1053  *
1054  * Get the next element in the iterator. The member rem is
1055  * decreased by one. The member data points to the next
1056  * element. The member index is increased by sizeof(xcb_xv_image_t)
1057  */
1058 void
1059 xcb_xv_image_next (xcb_xv_image_iterator_t *i);
1060 
1061 /**
1062  * Return the iterator pointing to the last element
1063  * @param i An xcb_xv_image_iterator_t
1064  * @return  The iterator pointing to the last element
1065  *
1066  * Set the current element in the iterator to the last element.
1067  * The member rem is set to 0. The member data points to the
1068  * last element.
1069  */
1070 xcb_generic_iterator_t
1071 xcb_xv_image_end (xcb_xv_image_iterator_t i);
1072 
1073 int
1074 xcb_xv_attribute_info_sizeof (const void  *_buffer);
1075 
1076 char *
1077 xcb_xv_attribute_info_name (const xcb_xv_attribute_info_t *R);
1078 
1079 int
1080 xcb_xv_attribute_info_name_length (const xcb_xv_attribute_info_t *R);
1081 
1082 xcb_generic_iterator_t
1083 xcb_xv_attribute_info_name_end (const xcb_xv_attribute_info_t *R);
1084 
1085 /**
1086  * Get the next element of the iterator
1087  * @param i Pointer to a xcb_xv_attribute_info_iterator_t
1088  *
1089  * Get the next element in the iterator. The member rem is
1090  * decreased by one. The member data points to the next
1091  * element. The member index is increased by sizeof(xcb_xv_attribute_info_t)
1092  */
1093 void
1094 xcb_xv_attribute_info_next (xcb_xv_attribute_info_iterator_t *i);
1095 
1096 /**
1097  * Return the iterator pointing to the last element
1098  * @param i An xcb_xv_attribute_info_iterator_t
1099  * @return  The iterator pointing to the last element
1100  *
1101  * Set the current element in the iterator to the last element.
1102  * The member rem is set to 0. The member data points to the
1103  * last element.
1104  */
1105 xcb_generic_iterator_t
1106 xcb_xv_attribute_info_end (xcb_xv_attribute_info_iterator_t i);
1107 
1108 /**
1109  * Get the next element of the iterator
1110  * @param i Pointer to a xcb_xv_image_format_info_iterator_t
1111  *
1112  * Get the next element in the iterator. The member rem is
1113  * decreased by one. The member data points to the next
1114  * element. The member index is increased by sizeof(xcb_xv_image_format_info_t)
1115  */
1116 void
1117 xcb_xv_image_format_info_next (xcb_xv_image_format_info_iterator_t *i);
1118 
1119 /**
1120  * Return the iterator pointing to the last element
1121  * @param i An xcb_xv_image_format_info_iterator_t
1122  * @return  The iterator pointing to the last element
1123  *
1124  * Set the current element in the iterator to the last element.
1125  * The member rem is set to 0. The member data points to the
1126  * last element.
1127  */
1128 xcb_generic_iterator_t
1129 xcb_xv_image_format_info_end (xcb_xv_image_format_info_iterator_t i);
1130 
1131 /**
1132  *
1133  * @param c The connection
1134  * @return A cookie
1135  *
1136  * Delivers a request to the X server.
1137  *
1138  */
1139 xcb_xv_query_extension_cookie_t
1140 xcb_xv_query_extension (xcb_connection_t *c);
1141 
1142 /**
1143  *
1144  * @param c The connection
1145  * @return A cookie
1146  *
1147  * Delivers a request to the X server.
1148  *
1149  * This form can be used only if the request will cause
1150  * a reply to be generated. Any returned error will be
1151  * placed in the event queue.
1152  */
1153 xcb_xv_query_extension_cookie_t
1154 xcb_xv_query_extension_unchecked (xcb_connection_t *c);
1155 
1156 /**
1157  * Return the reply
1158  * @param c      The connection
1159  * @param cookie The cookie
1160  * @param e      The xcb_generic_error_t supplied
1161  *
1162  * Returns the reply of the request asked by
1163  *
1164  * The parameter @p e supplied to this function must be NULL if
1165  * xcb_xv_query_extension_unchecked(). is used.
1166  * Otherwise, it stores the error if any.
1167  *
1168  * The returned value must be freed by the caller using free().
1169  */
1170 xcb_xv_query_extension_reply_t *
1171 xcb_xv_query_extension_reply (xcb_connection_t                 *c,
1172                               xcb_xv_query_extension_cookie_t   cookie  /**< */,
1173                               xcb_generic_error_t             **e);
1174 
1175 int
1176 xcb_xv_query_adaptors_sizeof (const void  *_buffer);
1177 
1178 /**
1179  *
1180  * @param c The connection
1181  * @return A cookie
1182  *
1183  * Delivers a request to the X server.
1184  *
1185  */
1186 xcb_xv_query_adaptors_cookie_t
1187 xcb_xv_query_adaptors (xcb_connection_t *c,
1188                        xcb_window_t      window);
1189 
1190 /**
1191  *
1192  * @param c The connection
1193  * @return A cookie
1194  *
1195  * Delivers a request to the X server.
1196  *
1197  * This form can be used only if the request will cause
1198  * a reply to be generated. Any returned error will be
1199  * placed in the event queue.
1200  */
1201 xcb_xv_query_adaptors_cookie_t
1202 xcb_xv_query_adaptors_unchecked (xcb_connection_t *c,
1203                                  xcb_window_t      window);
1204 
1205 int
1206 xcb_xv_query_adaptors_info_length (const xcb_xv_query_adaptors_reply_t *R);
1207 
1208 xcb_xv_adaptor_info_iterator_t
1209 xcb_xv_query_adaptors_info_iterator (const xcb_xv_query_adaptors_reply_t *R);
1210 
1211 /**
1212  * Return the reply
1213  * @param c      The connection
1214  * @param cookie The cookie
1215  * @param e      The xcb_generic_error_t supplied
1216  *
1217  * Returns the reply of the request asked by
1218  *
1219  * The parameter @p e supplied to this function must be NULL if
1220  * xcb_xv_query_adaptors_unchecked(). is used.
1221  * Otherwise, it stores the error if any.
1222  *
1223  * The returned value must be freed by the caller using free().
1224  */
1225 xcb_xv_query_adaptors_reply_t *
1226 xcb_xv_query_adaptors_reply (xcb_connection_t                *c,
1227                              xcb_xv_query_adaptors_cookie_t   cookie  /**< */,
1228                              xcb_generic_error_t            **e);
1229 
1230 int
1231 xcb_xv_query_encodings_sizeof (const void  *_buffer);
1232 
1233 /**
1234  *
1235  * @param c The connection
1236  * @return A cookie
1237  *
1238  * Delivers a request to the X server.
1239  *
1240  */
1241 xcb_xv_query_encodings_cookie_t
1242 xcb_xv_query_encodings (xcb_connection_t *c,
1243                         xcb_xv_port_t     port);
1244 
1245 /**
1246  *
1247  * @param c The connection
1248  * @return A cookie
1249  *
1250  * Delivers a request to the X server.
1251  *
1252  * This form can be used only if the request will cause
1253  * a reply to be generated. Any returned error will be
1254  * placed in the event queue.
1255  */
1256 xcb_xv_query_encodings_cookie_t
1257 xcb_xv_query_encodings_unchecked (xcb_connection_t *c,
1258                                   xcb_xv_port_t     port);
1259 
1260 int
1261 xcb_xv_query_encodings_info_length (const xcb_xv_query_encodings_reply_t *R);
1262 
1263 xcb_xv_encoding_info_iterator_t
1264 xcb_xv_query_encodings_info_iterator (const xcb_xv_query_encodings_reply_t *R);
1265 
1266 /**
1267  * Return the reply
1268  * @param c      The connection
1269  * @param cookie The cookie
1270  * @param e      The xcb_generic_error_t supplied
1271  *
1272  * Returns the reply of the request asked by
1273  *
1274  * The parameter @p e supplied to this function must be NULL if
1275  * xcb_xv_query_encodings_unchecked(). is used.
1276  * Otherwise, it stores the error if any.
1277  *
1278  * The returned value must be freed by the caller using free().
1279  */
1280 xcb_xv_query_encodings_reply_t *
1281 xcb_xv_query_encodings_reply (xcb_connection_t                 *c,
1282                               xcb_xv_query_encodings_cookie_t   cookie  /**< */,
1283                               xcb_generic_error_t             **e);
1284 
1285 /**
1286  *
1287  * @param c The connection
1288  * @return A cookie
1289  *
1290  * Delivers a request to the X server.
1291  *
1292  */
1293 xcb_xv_grab_port_cookie_t
1294 xcb_xv_grab_port (xcb_connection_t *c,
1295                   xcb_xv_port_t     port,
1296                   xcb_timestamp_t   time);
1297 
1298 /**
1299  *
1300  * @param c The connection
1301  * @return A cookie
1302  *
1303  * Delivers a request to the X server.
1304  *
1305  * This form can be used only if the request will cause
1306  * a reply to be generated. Any returned error will be
1307  * placed in the event queue.
1308  */
1309 xcb_xv_grab_port_cookie_t
1310 xcb_xv_grab_port_unchecked (xcb_connection_t *c,
1311                             xcb_xv_port_t     port,
1312                             xcb_timestamp_t   time);
1313 
1314 /**
1315  * Return the reply
1316  * @param c      The connection
1317  * @param cookie The cookie
1318  * @param e      The xcb_generic_error_t supplied
1319  *
1320  * Returns the reply of the request asked by
1321  *
1322  * The parameter @p e supplied to this function must be NULL if
1323  * xcb_xv_grab_port_unchecked(). is used.
1324  * Otherwise, it stores the error if any.
1325  *
1326  * The returned value must be freed by the caller using free().
1327  */
1328 xcb_xv_grab_port_reply_t *
1329 xcb_xv_grab_port_reply (xcb_connection_t           *c,
1330                         xcb_xv_grab_port_cookie_t   cookie  /**< */,
1331                         xcb_generic_error_t       **e);
1332 
1333 /**
1334  *
1335  * @param c The connection
1336  * @return A cookie
1337  *
1338  * Delivers a request to the X server.
1339  *
1340  * This form can be used only if the request will not cause
1341  * a reply to be generated. Any returned error will be
1342  * saved for handling by xcb_request_check().
1343  */
1344 xcb_void_cookie_t
1345 xcb_xv_ungrab_port_checked (xcb_connection_t *c,
1346                             xcb_xv_port_t     port,
1347                             xcb_timestamp_t   time);
1348 
1349 /**
1350  *
1351  * @param c The connection
1352  * @return A cookie
1353  *
1354  * Delivers a request to the X server.
1355  *
1356  */
1357 xcb_void_cookie_t
1358 xcb_xv_ungrab_port (xcb_connection_t *c,
1359                     xcb_xv_port_t     port,
1360                     xcb_timestamp_t   time);
1361 
1362 /**
1363  *
1364  * @param c The connection
1365  * @return A cookie
1366  *
1367  * Delivers a request to the X server.
1368  *
1369  * This form can be used only if the request will not cause
1370  * a reply to be generated. Any returned error will be
1371  * saved for handling by xcb_request_check().
1372  */
1373 xcb_void_cookie_t
1374 xcb_xv_put_video_checked (xcb_connection_t *c,
1375                           xcb_xv_port_t     port,
1376                           xcb_drawable_t    drawable,
1377                           xcb_gcontext_t    gc,
1378                           int16_t           vid_x,
1379                           int16_t           vid_y,
1380                           uint16_t          vid_w,
1381                           uint16_t          vid_h,
1382                           int16_t           drw_x,
1383                           int16_t           drw_y,
1384                           uint16_t          drw_w,
1385                           uint16_t          drw_h);
1386 
1387 /**
1388  *
1389  * @param c The connection
1390  * @return A cookie
1391  *
1392  * Delivers a request to the X server.
1393  *
1394  */
1395 xcb_void_cookie_t
1396 xcb_xv_put_video (xcb_connection_t *c,
1397                   xcb_xv_port_t     port,
1398                   xcb_drawable_t    drawable,
1399                   xcb_gcontext_t    gc,
1400                   int16_t           vid_x,
1401                   int16_t           vid_y,
1402                   uint16_t          vid_w,
1403                   uint16_t          vid_h,
1404                   int16_t           drw_x,
1405                   int16_t           drw_y,
1406                   uint16_t          drw_w,
1407                   uint16_t          drw_h);
1408 
1409 /**
1410  *
1411  * @param c The connection
1412  * @return A cookie
1413  *
1414  * Delivers a request to the X server.
1415  *
1416  * This form can be used only if the request will not cause
1417  * a reply to be generated. Any returned error will be
1418  * saved for handling by xcb_request_check().
1419  */
1420 xcb_void_cookie_t
1421 xcb_xv_put_still_checked (xcb_connection_t *c,
1422                           xcb_xv_port_t     port,
1423                           xcb_drawable_t    drawable,
1424                           xcb_gcontext_t    gc,
1425                           int16_t           vid_x,
1426                           int16_t           vid_y,
1427                           uint16_t          vid_w,
1428                           uint16_t          vid_h,
1429                           int16_t           drw_x,
1430                           int16_t           drw_y,
1431                           uint16_t          drw_w,
1432                           uint16_t          drw_h);
1433 
1434 /**
1435  *
1436  * @param c The connection
1437  * @return A cookie
1438  *
1439  * Delivers a request to the X server.
1440  *
1441  */
1442 xcb_void_cookie_t
1443 xcb_xv_put_still (xcb_connection_t *c,
1444                   xcb_xv_port_t     port,
1445                   xcb_drawable_t    drawable,
1446                   xcb_gcontext_t    gc,
1447                   int16_t           vid_x,
1448                   int16_t           vid_y,
1449                   uint16_t          vid_w,
1450                   uint16_t          vid_h,
1451                   int16_t           drw_x,
1452                   int16_t           drw_y,
1453                   uint16_t          drw_w,
1454                   uint16_t          drw_h);
1455 
1456 /**
1457  *
1458  * @param c The connection
1459  * @return A cookie
1460  *
1461  * Delivers a request to the X server.
1462  *
1463  * This form can be used only if the request will not cause
1464  * a reply to be generated. Any returned error will be
1465  * saved for handling by xcb_request_check().
1466  */
1467 xcb_void_cookie_t
1468 xcb_xv_get_video_checked (xcb_connection_t *c,
1469                           xcb_xv_port_t     port,
1470                           xcb_drawable_t    drawable,
1471                           xcb_gcontext_t    gc,
1472                           int16_t           vid_x,
1473                           int16_t           vid_y,
1474                           uint16_t          vid_w,
1475                           uint16_t          vid_h,
1476                           int16_t           drw_x,
1477                           int16_t           drw_y,
1478                           uint16_t          drw_w,
1479                           uint16_t          drw_h);
1480 
1481 /**
1482  *
1483  * @param c The connection
1484  * @return A cookie
1485  *
1486  * Delivers a request to the X server.
1487  *
1488  */
1489 xcb_void_cookie_t
1490 xcb_xv_get_video (xcb_connection_t *c,
1491                   xcb_xv_port_t     port,
1492                   xcb_drawable_t    drawable,
1493                   xcb_gcontext_t    gc,
1494                   int16_t           vid_x,
1495                   int16_t           vid_y,
1496                   uint16_t          vid_w,
1497                   uint16_t          vid_h,
1498                   int16_t           drw_x,
1499                   int16_t           drw_y,
1500                   uint16_t          drw_w,
1501                   uint16_t          drw_h);
1502 
1503 /**
1504  *
1505  * @param c The connection
1506  * @return A cookie
1507  *
1508  * Delivers a request to the X server.
1509  *
1510  * This form can be used only if the request will not cause
1511  * a reply to be generated. Any returned error will be
1512  * saved for handling by xcb_request_check().
1513  */
1514 xcb_void_cookie_t
1515 xcb_xv_get_still_checked (xcb_connection_t *c,
1516                           xcb_xv_port_t     port,
1517                           xcb_drawable_t    drawable,
1518                           xcb_gcontext_t    gc,
1519                           int16_t           vid_x,
1520                           int16_t           vid_y,
1521                           uint16_t          vid_w,
1522                           uint16_t          vid_h,
1523                           int16_t           drw_x,
1524                           int16_t           drw_y,
1525                           uint16_t          drw_w,
1526                           uint16_t          drw_h);
1527 
1528 /**
1529  *
1530  * @param c The connection
1531  * @return A cookie
1532  *
1533  * Delivers a request to the X server.
1534  *
1535  */
1536 xcb_void_cookie_t
1537 xcb_xv_get_still (xcb_connection_t *c,
1538                   xcb_xv_port_t     port,
1539                   xcb_drawable_t    drawable,
1540                   xcb_gcontext_t    gc,
1541                   int16_t           vid_x,
1542                   int16_t           vid_y,
1543                   uint16_t          vid_w,
1544                   uint16_t          vid_h,
1545                   int16_t           drw_x,
1546                   int16_t           drw_y,
1547                   uint16_t          drw_w,
1548                   uint16_t          drw_h);
1549 
1550 /**
1551  *
1552  * @param c The connection
1553  * @return A cookie
1554  *
1555  * Delivers a request to the X server.
1556  *
1557  * This form can be used only if the request will not cause
1558  * a reply to be generated. Any returned error will be
1559  * saved for handling by xcb_request_check().
1560  */
1561 xcb_void_cookie_t
1562 xcb_xv_stop_video_checked (xcb_connection_t *c,
1563                            xcb_xv_port_t     port,
1564                            xcb_drawable_t    drawable);
1565 
1566 /**
1567  *
1568  * @param c The connection
1569  * @return A cookie
1570  *
1571  * Delivers a request to the X server.
1572  *
1573  */
1574 xcb_void_cookie_t
1575 xcb_xv_stop_video (xcb_connection_t *c,
1576                    xcb_xv_port_t     port,
1577                    xcb_drawable_t    drawable);
1578 
1579 /**
1580  *
1581  * @param c The connection
1582  * @return A cookie
1583  *
1584  * Delivers a request to the X server.
1585  *
1586  * This form can be used only if the request will not cause
1587  * a reply to be generated. Any returned error will be
1588  * saved for handling by xcb_request_check().
1589  */
1590 xcb_void_cookie_t
1591 xcb_xv_select_video_notify_checked (xcb_connection_t *c,
1592                                     xcb_drawable_t    drawable,
1593                                     uint8_t           onoff);
1594 
1595 /**
1596  *
1597  * @param c The connection
1598  * @return A cookie
1599  *
1600  * Delivers a request to the X server.
1601  *
1602  */
1603 xcb_void_cookie_t
1604 xcb_xv_select_video_notify (xcb_connection_t *c,
1605                             xcb_drawable_t    drawable,
1606                             uint8_t           onoff);
1607 
1608 /**
1609  *
1610  * @param c The connection
1611  * @return A cookie
1612  *
1613  * Delivers a request to the X server.
1614  *
1615  * This form can be used only if the request will not cause
1616  * a reply to be generated. Any returned error will be
1617  * saved for handling by xcb_request_check().
1618  */
1619 xcb_void_cookie_t
1620 xcb_xv_select_port_notify_checked (xcb_connection_t *c,
1621                                    xcb_xv_port_t     port,
1622                                    uint8_t           onoff);
1623 
1624 /**
1625  *
1626  * @param c The connection
1627  * @return A cookie
1628  *
1629  * Delivers a request to the X server.
1630  *
1631  */
1632 xcb_void_cookie_t
1633 xcb_xv_select_port_notify (xcb_connection_t *c,
1634                            xcb_xv_port_t     port,
1635                            uint8_t           onoff);
1636 
1637 /**
1638  *
1639  * @param c The connection
1640  * @return A cookie
1641  *
1642  * Delivers a request to the X server.
1643  *
1644  */
1645 xcb_xv_query_best_size_cookie_t
1646 xcb_xv_query_best_size (xcb_connection_t *c,
1647                         xcb_xv_port_t     port,
1648                         uint16_t          vid_w,
1649                         uint16_t          vid_h,
1650                         uint16_t          drw_w,
1651                         uint16_t          drw_h,
1652                         uint8_t           motion);
1653 
1654 /**
1655  *
1656  * @param c The connection
1657  * @return A cookie
1658  *
1659  * Delivers a request to the X server.
1660  *
1661  * This form can be used only if the request will cause
1662  * a reply to be generated. Any returned error will be
1663  * placed in the event queue.
1664  */
1665 xcb_xv_query_best_size_cookie_t
1666 xcb_xv_query_best_size_unchecked (xcb_connection_t *c,
1667                                   xcb_xv_port_t     port,
1668                                   uint16_t          vid_w,
1669                                   uint16_t          vid_h,
1670                                   uint16_t          drw_w,
1671                                   uint16_t          drw_h,
1672                                   uint8_t           motion);
1673 
1674 /**
1675  * Return the reply
1676  * @param c      The connection
1677  * @param cookie The cookie
1678  * @param e      The xcb_generic_error_t supplied
1679  *
1680  * Returns the reply of the request asked by
1681  *
1682  * The parameter @p e supplied to this function must be NULL if
1683  * xcb_xv_query_best_size_unchecked(). is used.
1684  * Otherwise, it stores the error if any.
1685  *
1686  * The returned value must be freed by the caller using free().
1687  */
1688 xcb_xv_query_best_size_reply_t *
1689 xcb_xv_query_best_size_reply (xcb_connection_t                 *c,
1690                               xcb_xv_query_best_size_cookie_t   cookie  /**< */,
1691                               xcb_generic_error_t             **e);
1692 
1693 /**
1694  *
1695  * @param c The connection
1696  * @return A cookie
1697  *
1698  * Delivers a request to the X server.
1699  *
1700  * This form can be used only if the request will not cause
1701  * a reply to be generated. Any returned error will be
1702  * saved for handling by xcb_request_check().
1703  */
1704 xcb_void_cookie_t
1705 xcb_xv_set_port_attribute_checked (xcb_connection_t *c,
1706                                    xcb_xv_port_t     port,
1707                                    xcb_atom_t        attribute,
1708                                    int32_t           value);
1709 
1710 /**
1711  *
1712  * @param c The connection
1713  * @return A cookie
1714  *
1715  * Delivers a request to the X server.
1716  *
1717  */
1718 xcb_void_cookie_t
1719 xcb_xv_set_port_attribute (xcb_connection_t *c,
1720                            xcb_xv_port_t     port,
1721                            xcb_atom_t        attribute,
1722                            int32_t           value);
1723 
1724 /**
1725  *
1726  * @param c The connection
1727  * @return A cookie
1728  *
1729  * Delivers a request to the X server.
1730  *
1731  */
1732 xcb_xv_get_port_attribute_cookie_t
1733 xcb_xv_get_port_attribute (xcb_connection_t *c,
1734                            xcb_xv_port_t     port,
1735                            xcb_atom_t        attribute);
1736 
1737 /**
1738  *
1739  * @param c The connection
1740  * @return A cookie
1741  *
1742  * Delivers a request to the X server.
1743  *
1744  * This form can be used only if the request will cause
1745  * a reply to be generated. Any returned error will be
1746  * placed in the event queue.
1747  */
1748 xcb_xv_get_port_attribute_cookie_t
1749 xcb_xv_get_port_attribute_unchecked (xcb_connection_t *c,
1750                                      xcb_xv_port_t     port,
1751                                      xcb_atom_t        attribute);
1752 
1753 /**
1754  * Return the reply
1755  * @param c      The connection
1756  * @param cookie The cookie
1757  * @param e      The xcb_generic_error_t supplied
1758  *
1759  * Returns the reply of the request asked by
1760  *
1761  * The parameter @p e supplied to this function must be NULL if
1762  * xcb_xv_get_port_attribute_unchecked(). is used.
1763  * Otherwise, it stores the error if any.
1764  *
1765  * The returned value must be freed by the caller using free().
1766  */
1767 xcb_xv_get_port_attribute_reply_t *
1768 xcb_xv_get_port_attribute_reply (xcb_connection_t                    *c,
1769                                  xcb_xv_get_port_attribute_cookie_t   cookie  /**< */,
1770                                  xcb_generic_error_t                **e);
1771 
1772 int
1773 xcb_xv_query_port_attributes_sizeof (const void  *_buffer);
1774 
1775 /**
1776  *
1777  * @param c The connection
1778  * @return A cookie
1779  *
1780  * Delivers a request to the X server.
1781  *
1782  */
1783 xcb_xv_query_port_attributes_cookie_t
1784 xcb_xv_query_port_attributes (xcb_connection_t *c,
1785                               xcb_xv_port_t     port);
1786 
1787 /**
1788  *
1789  * @param c The connection
1790  * @return A cookie
1791  *
1792  * Delivers a request to the X server.
1793  *
1794  * This form can be used only if the request will cause
1795  * a reply to be generated. Any returned error will be
1796  * placed in the event queue.
1797  */
1798 xcb_xv_query_port_attributes_cookie_t
1799 xcb_xv_query_port_attributes_unchecked (xcb_connection_t *c,
1800                                         xcb_xv_port_t     port);
1801 
1802 int
1803 xcb_xv_query_port_attributes_attributes_length (const xcb_xv_query_port_attributes_reply_t *R);
1804 
1805 xcb_xv_attribute_info_iterator_t
1806 xcb_xv_query_port_attributes_attributes_iterator (const xcb_xv_query_port_attributes_reply_t *R);
1807 
1808 /**
1809  * Return the reply
1810  * @param c      The connection
1811  * @param cookie The cookie
1812  * @param e      The xcb_generic_error_t supplied
1813  *
1814  * Returns the reply of the request asked by
1815  *
1816  * The parameter @p e supplied to this function must be NULL if
1817  * xcb_xv_query_port_attributes_unchecked(). is used.
1818  * Otherwise, it stores the error if any.
1819  *
1820  * The returned value must be freed by the caller using free().
1821  */
1822 xcb_xv_query_port_attributes_reply_t *
1823 xcb_xv_query_port_attributes_reply (xcb_connection_t                       *c,
1824                                     xcb_xv_query_port_attributes_cookie_t   cookie  /**< */,
1825                                     xcb_generic_error_t                   **e);
1826 
1827 int
1828 xcb_xv_list_image_formats_sizeof (const void  *_buffer);
1829 
1830 /**
1831  *
1832  * @param c The connection
1833  * @return A cookie
1834  *
1835  * Delivers a request to the X server.
1836  *
1837  */
1838 xcb_xv_list_image_formats_cookie_t
1839 xcb_xv_list_image_formats (xcb_connection_t *c,
1840                            xcb_xv_port_t     port);
1841 
1842 /**
1843  *
1844  * @param c The connection
1845  * @return A cookie
1846  *
1847  * Delivers a request to the X server.
1848  *
1849  * This form can be used only if the request will cause
1850  * a reply to be generated. Any returned error will be
1851  * placed in the event queue.
1852  */
1853 xcb_xv_list_image_formats_cookie_t
1854 xcb_xv_list_image_formats_unchecked (xcb_connection_t *c,
1855                                      xcb_xv_port_t     port);
1856 
1857 xcb_xv_image_format_info_t *
1858 xcb_xv_list_image_formats_format (const xcb_xv_list_image_formats_reply_t *R);
1859 
1860 int
1861 xcb_xv_list_image_formats_format_length (const xcb_xv_list_image_formats_reply_t *R);
1862 
1863 xcb_xv_image_format_info_iterator_t
1864 xcb_xv_list_image_formats_format_iterator (const xcb_xv_list_image_formats_reply_t *R);
1865 
1866 /**
1867  * Return the reply
1868  * @param c      The connection
1869  * @param cookie The cookie
1870  * @param e      The xcb_generic_error_t supplied
1871  *
1872  * Returns the reply of the request asked by
1873  *
1874  * The parameter @p e supplied to this function must be NULL if
1875  * xcb_xv_list_image_formats_unchecked(). is used.
1876  * Otherwise, it stores the error if any.
1877  *
1878  * The returned value must be freed by the caller using free().
1879  */
1880 xcb_xv_list_image_formats_reply_t *
1881 xcb_xv_list_image_formats_reply (xcb_connection_t                    *c,
1882                                  xcb_xv_list_image_formats_cookie_t   cookie  /**< */,
1883                                  xcb_generic_error_t                **e);
1884 
1885 int
1886 xcb_xv_query_image_attributes_sizeof (const void  *_buffer);
1887 
1888 /**
1889  *
1890  * @param c The connection
1891  * @return A cookie
1892  *
1893  * Delivers a request to the X server.
1894  *
1895  */
1896 xcb_xv_query_image_attributes_cookie_t
1897 xcb_xv_query_image_attributes (xcb_connection_t *c,
1898                                xcb_xv_port_t     port,
1899                                uint32_t          id,
1900                                uint16_t          width,
1901                                uint16_t          height);
1902 
1903 /**
1904  *
1905  * @param c The connection
1906  * @return A cookie
1907  *
1908  * Delivers a request to the X server.
1909  *
1910  * This form can be used only if the request will cause
1911  * a reply to be generated. Any returned error will be
1912  * placed in the event queue.
1913  */
1914 xcb_xv_query_image_attributes_cookie_t
1915 xcb_xv_query_image_attributes_unchecked (xcb_connection_t *c,
1916                                          xcb_xv_port_t     port,
1917                                          uint32_t          id,
1918                                          uint16_t          width,
1919                                          uint16_t          height);
1920 
1921 uint32_t *
1922 xcb_xv_query_image_attributes_pitches (const xcb_xv_query_image_attributes_reply_t *R);
1923 
1924 int
1925 xcb_xv_query_image_attributes_pitches_length (const xcb_xv_query_image_attributes_reply_t *R);
1926 
1927 xcb_generic_iterator_t
1928 xcb_xv_query_image_attributes_pitches_end (const xcb_xv_query_image_attributes_reply_t *R);
1929 
1930 uint32_t *
1931 xcb_xv_query_image_attributes_offsets (const xcb_xv_query_image_attributes_reply_t *R);
1932 
1933 int
1934 xcb_xv_query_image_attributes_offsets_length (const xcb_xv_query_image_attributes_reply_t *R);
1935 
1936 xcb_generic_iterator_t
1937 xcb_xv_query_image_attributes_offsets_end (const xcb_xv_query_image_attributes_reply_t *R);
1938 
1939 /**
1940  * Return the reply
1941  * @param c      The connection
1942  * @param cookie The cookie
1943  * @param e      The xcb_generic_error_t supplied
1944  *
1945  * Returns the reply of the request asked by
1946  *
1947  * The parameter @p e supplied to this function must be NULL if
1948  * xcb_xv_query_image_attributes_unchecked(). is used.
1949  * Otherwise, it stores the error if any.
1950  *
1951  * The returned value must be freed by the caller using free().
1952  */
1953 xcb_xv_query_image_attributes_reply_t *
1954 xcb_xv_query_image_attributes_reply (xcb_connection_t                        *c,
1955                                      xcb_xv_query_image_attributes_cookie_t   cookie  /**< */,
1956                                      xcb_generic_error_t                    **e);
1957 
1958 int
1959 xcb_xv_put_image_sizeof (const void  *_buffer,
1960                          uint32_t     data_len);
1961 
1962 /**
1963  *
1964  * @param c The connection
1965  * @return A cookie
1966  *
1967  * Delivers a request to the X server.
1968  *
1969  * This form can be used only if the request will not cause
1970  * a reply to be generated. Any returned error will be
1971  * saved for handling by xcb_request_check().
1972  */
1973 xcb_void_cookie_t
1974 xcb_xv_put_image_checked (xcb_connection_t *c,
1975                           xcb_xv_port_t     port,
1976                           xcb_drawable_t    drawable,
1977                           xcb_gcontext_t    gc,
1978                           uint32_t          id,
1979                           int16_t           src_x,
1980                           int16_t           src_y,
1981                           uint16_t          src_w,
1982                           uint16_t          src_h,
1983                           int16_t           drw_x,
1984                           int16_t           drw_y,
1985                           uint16_t          drw_w,
1986                           uint16_t          drw_h,
1987                           uint16_t          width,
1988                           uint16_t          height,
1989                           uint32_t          data_len,
1990                           const uint8_t    *data);
1991 
1992 /**
1993  *
1994  * @param c The connection
1995  * @return A cookie
1996  *
1997  * Delivers a request to the X server.
1998  *
1999  */
2000 xcb_void_cookie_t
2001 xcb_xv_put_image (xcb_connection_t *c,
2002                   xcb_xv_port_t     port,
2003                   xcb_drawable_t    drawable,
2004                   xcb_gcontext_t    gc,
2005                   uint32_t          id,
2006                   int16_t           src_x,
2007                   int16_t           src_y,
2008                   uint16_t          src_w,
2009                   uint16_t          src_h,
2010                   int16_t           drw_x,
2011                   int16_t           drw_y,
2012                   uint16_t          drw_w,
2013                   uint16_t          drw_h,
2014                   uint16_t          width,
2015                   uint16_t          height,
2016                   uint32_t          data_len,
2017                   const uint8_t    *data);
2018 
2019 uint8_t *
2020 xcb_xv_put_image_data (const xcb_xv_put_image_request_t *R);
2021 
2022 int
2023 xcb_xv_put_image_data_length (const xcb_xv_put_image_request_t *R);
2024 
2025 xcb_generic_iterator_t
2026 xcb_xv_put_image_data_end (const xcb_xv_put_image_request_t *R);
2027 
2028 /**
2029  *
2030  * @param c The connection
2031  * @return A cookie
2032  *
2033  * Delivers a request to the X server.
2034  *
2035  * This form can be used only if the request will not cause
2036  * a reply to be generated. Any returned error will be
2037  * saved for handling by xcb_request_check().
2038  */
2039 xcb_void_cookie_t
2040 xcb_xv_shm_put_image_checked (xcb_connection_t *c,
2041                               xcb_xv_port_t     port,
2042                               xcb_drawable_t    drawable,
2043                               xcb_gcontext_t    gc,
2044                               xcb_shm_seg_t     shmseg,
2045                               uint32_t          id,
2046                               uint32_t          offset,
2047                               int16_t           src_x,
2048                               int16_t           src_y,
2049                               uint16_t          src_w,
2050                               uint16_t          src_h,
2051                               int16_t           drw_x,
2052                               int16_t           drw_y,
2053                               uint16_t          drw_w,
2054                               uint16_t          drw_h,
2055                               uint16_t          width,
2056                               uint16_t          height,
2057                               uint8_t           send_event);
2058 
2059 /**
2060  *
2061  * @param c The connection
2062  * @return A cookie
2063  *
2064  * Delivers a request to the X server.
2065  *
2066  */
2067 xcb_void_cookie_t
2068 xcb_xv_shm_put_image (xcb_connection_t *c,
2069                       xcb_xv_port_t     port,
2070                       xcb_drawable_t    drawable,
2071                       xcb_gcontext_t    gc,
2072                       xcb_shm_seg_t     shmseg,
2073                       uint32_t          id,
2074                       uint32_t          offset,
2075                       int16_t           src_x,
2076                       int16_t           src_y,
2077                       uint16_t          src_w,
2078                       uint16_t          src_h,
2079                       int16_t           drw_x,
2080                       int16_t           drw_y,
2081                       uint16_t          drw_w,
2082                       uint16_t          drw_h,
2083                       uint16_t          width,
2084                       uint16_t          height,
2085                       uint8_t           send_event);
2086 
2087 
2088 #ifdef __cplusplus
2089 }
2090 #endif
2091 
2092 #endif
2093 
2094 /**
2095  * @}
2096  */
2097