Home | History | Annotate | Line # | Download | only in files
      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