Home | History | Annotate | Line # | Download | only in files
      1 /*
      2  * This file generated automatically from xvmc.xml by c_client.py.
      3  * Edit at your peril.
      4  */
      5 
      6 /**
      7  * @defgroup XCB_XvMC_API XCB XvMC API
      8  * @brief XvMC XCB Protocol Implementation.
      9  * @{
     10  **/
     11 
     12 #ifndef __XVMC_H
     13 #define __XVMC_H
     14 
     15 #include "xcb.h"
     16 #include "xv.h"
     17 
     18 #ifdef __cplusplus
     19 extern "C" {
     20 #endif
     21 
     22 #define XCB_XVMC_MAJOR_VERSION 1
     23 #define XCB_XVMC_MINOR_VERSION 1
     24 
     25 extern xcb_extension_t xcb_xvmc_id;
     26 
     27 typedef uint32_t xcb_xvmc_context_t;
     28 
     29 /**
     30  * @brief xcb_xvmc_context_iterator_t
     31  **/
     32 typedef struct xcb_xvmc_context_iterator_t {
     33     xcb_xvmc_context_t *data;
     34     int                 rem;
     35     int                 index;
     36 } xcb_xvmc_context_iterator_t;
     37 
     38 typedef uint32_t xcb_xvmc_surface_t;
     39 
     40 /**
     41  * @brief xcb_xvmc_surface_iterator_t
     42  **/
     43 typedef struct xcb_xvmc_surface_iterator_t {
     44     xcb_xvmc_surface_t *data;
     45     int                 rem;
     46     int                 index;
     47 } xcb_xvmc_surface_iterator_t;
     48 
     49 typedef uint32_t xcb_xvmc_subpicture_t;
     50 
     51 /**
     52  * @brief xcb_xvmc_subpicture_iterator_t
     53  **/
     54 typedef struct xcb_xvmc_subpicture_iterator_t {
     55     xcb_xvmc_subpicture_t *data;
     56     int                    rem;
     57     int                    index;
     58 } xcb_xvmc_subpicture_iterator_t;
     59 
     60 /**
     61  * @brief xcb_xvmc_surface_info_t
     62  **/
     63 typedef struct xcb_xvmc_surface_info_t {
     64     xcb_xvmc_surface_t id;
     65     uint16_t           chroma_format;
     66     uint16_t           pad0;
     67     uint16_t           max_width;
     68     uint16_t           max_height;
     69     uint16_t           subpicture_max_width;
     70     uint16_t           subpicture_max_height;
     71     uint32_t           mc_type;
     72     uint32_t           flags;
     73 } xcb_xvmc_surface_info_t;
     74 
     75 /**
     76  * @brief xcb_xvmc_surface_info_iterator_t
     77  **/
     78 typedef struct xcb_xvmc_surface_info_iterator_t {
     79     xcb_xvmc_surface_info_t *data;
     80     int                      rem;
     81     int                      index;
     82 } xcb_xvmc_surface_info_iterator_t;
     83 
     84 /**
     85  * @brief xcb_xvmc_query_version_cookie_t
     86  **/
     87 typedef struct xcb_xvmc_query_version_cookie_t {
     88     unsigned int sequence;
     89 } xcb_xvmc_query_version_cookie_t;
     90 
     91 /** Opcode for xcb_xvmc_query_version. */
     92 #define XCB_XVMC_QUERY_VERSION 0
     93 
     94 /**
     95  * @brief xcb_xvmc_query_version_request_t
     96  **/
     97 typedef struct xcb_xvmc_query_version_request_t {
     98     uint8_t  major_opcode;
     99     uint8_t  minor_opcode;
    100     uint16_t length;
    101 } xcb_xvmc_query_version_request_t;
    102 
    103 /**
    104  * @brief xcb_xvmc_query_version_reply_t
    105  **/
    106 typedef struct xcb_xvmc_query_version_reply_t {
    107     uint8_t  response_type;
    108     uint8_t  pad0;
    109     uint16_t sequence;
    110     uint32_t length;
    111     uint32_t major;
    112     uint32_t minor;
    113 } xcb_xvmc_query_version_reply_t;
    114 
    115 /**
    116  * @brief xcb_xvmc_list_surface_types_cookie_t
    117  **/
    118 typedef struct xcb_xvmc_list_surface_types_cookie_t {
    119     unsigned int sequence;
    120 } xcb_xvmc_list_surface_types_cookie_t;
    121 
    122 /** Opcode for xcb_xvmc_list_surface_types. */
    123 #define XCB_XVMC_LIST_SURFACE_TYPES 1
    124 
    125 /**
    126  * @brief xcb_xvmc_list_surface_types_request_t
    127  **/
    128 typedef struct xcb_xvmc_list_surface_types_request_t {
    129     uint8_t       major_opcode;
    130     uint8_t       minor_opcode;
    131     uint16_t      length;
    132     xcb_xv_port_t port_id;
    133 } xcb_xvmc_list_surface_types_request_t;
    134 
    135 /**
    136  * @brief xcb_xvmc_list_surface_types_reply_t
    137  **/
    138 typedef struct xcb_xvmc_list_surface_types_reply_t {
    139     uint8_t  response_type;
    140     uint8_t  pad0;
    141     uint16_t sequence;
    142     uint32_t length;
    143     uint32_t num;
    144     uint8_t  pad1[20];
    145 } xcb_xvmc_list_surface_types_reply_t;
    146 
    147 /**
    148  * @brief xcb_xvmc_create_context_cookie_t
    149  **/
    150 typedef struct xcb_xvmc_create_context_cookie_t {
    151     unsigned int sequence;
    152 } xcb_xvmc_create_context_cookie_t;
    153 
    154 /** Opcode for xcb_xvmc_create_context. */
    155 #define XCB_XVMC_CREATE_CONTEXT 2
    156 
    157 /**
    158  * @brief xcb_xvmc_create_context_request_t
    159  **/
    160 typedef struct xcb_xvmc_create_context_request_t {
    161     uint8_t            major_opcode;
    162     uint8_t            minor_opcode;
    163     uint16_t           length;
    164     xcb_xvmc_context_t context_id;
    165     xcb_xv_port_t      port_id;
    166     xcb_xvmc_surface_t surface_id;
    167     uint16_t           width;
    168     uint16_t           height;
    169     uint32_t           flags;
    170 } xcb_xvmc_create_context_request_t;
    171 
    172 /**
    173  * @brief xcb_xvmc_create_context_reply_t
    174  **/
    175 typedef struct xcb_xvmc_create_context_reply_t {
    176     uint8_t  response_type;
    177     uint8_t  pad0;
    178     uint16_t sequence;
    179     uint32_t length;
    180     uint16_t width_actual;
    181     uint16_t height_actual;
    182     uint32_t flags_return;
    183     uint8_t  pad1[20];
    184 } xcb_xvmc_create_context_reply_t;
    185 
    186 /** Opcode for xcb_xvmc_destroy_context. */
    187 #define XCB_XVMC_DESTROY_CONTEXT 3
    188 
    189 /**
    190  * @brief xcb_xvmc_destroy_context_request_t
    191  **/
    192 typedef struct xcb_xvmc_destroy_context_request_t {
    193     uint8_t            major_opcode;
    194     uint8_t            minor_opcode;
    195     uint16_t           length;
    196     xcb_xvmc_context_t context_id;
    197 } xcb_xvmc_destroy_context_request_t;
    198 
    199 /**
    200  * @brief xcb_xvmc_create_surface_cookie_t
    201  **/
    202 typedef struct xcb_xvmc_create_surface_cookie_t {
    203     unsigned int sequence;
    204 } xcb_xvmc_create_surface_cookie_t;
    205 
    206 /** Opcode for xcb_xvmc_create_surface. */
    207 #define XCB_XVMC_CREATE_SURFACE 4
    208 
    209 /**
    210  * @brief xcb_xvmc_create_surface_request_t
    211  **/
    212 typedef struct xcb_xvmc_create_surface_request_t {
    213     uint8_t            major_opcode;
    214     uint8_t            minor_opcode;
    215     uint16_t           length;
    216     xcb_xvmc_surface_t surface_id;
    217     xcb_xvmc_context_t context_id;
    218 } xcb_xvmc_create_surface_request_t;
    219 
    220 /**
    221  * @brief xcb_xvmc_create_surface_reply_t
    222  **/
    223 typedef struct xcb_xvmc_create_surface_reply_t {
    224     uint8_t  response_type;
    225     uint8_t  pad0;
    226     uint16_t sequence;
    227     uint32_t length;
    228     uint8_t  pad1[24];
    229 } xcb_xvmc_create_surface_reply_t;
    230 
    231 /** Opcode for xcb_xvmc_destroy_surface. */
    232 #define XCB_XVMC_DESTROY_SURFACE 5
    233 
    234 /**
    235  * @brief xcb_xvmc_destroy_surface_request_t
    236  **/
    237 typedef struct xcb_xvmc_destroy_surface_request_t {
    238     uint8_t            major_opcode;
    239     uint8_t            minor_opcode;
    240     uint16_t           length;
    241     xcb_xvmc_surface_t surface_id;
    242 } xcb_xvmc_destroy_surface_request_t;
    243 
    244 /**
    245  * @brief xcb_xvmc_create_subpicture_cookie_t
    246  **/
    247 typedef struct xcb_xvmc_create_subpicture_cookie_t {
    248     unsigned int sequence;
    249 } xcb_xvmc_create_subpicture_cookie_t;
    250 
    251 /** Opcode for xcb_xvmc_create_subpicture. */
    252 #define XCB_XVMC_CREATE_SUBPICTURE 6
    253 
    254 /**
    255  * @brief xcb_xvmc_create_subpicture_request_t
    256  **/
    257 typedef struct xcb_xvmc_create_subpicture_request_t {
    258     uint8_t               major_opcode;
    259     uint8_t               minor_opcode;
    260     uint16_t              length;
    261     xcb_xvmc_subpicture_t subpicture_id;
    262     xcb_xvmc_context_t    context;
    263     uint32_t              xvimage_id;
    264     uint16_t              width;
    265     uint16_t              height;
    266 } xcb_xvmc_create_subpicture_request_t;
    267 
    268 /**
    269  * @brief xcb_xvmc_create_subpicture_reply_t
    270  **/
    271 typedef struct xcb_xvmc_create_subpicture_reply_t {
    272     uint8_t  response_type;
    273     uint8_t  pad0;
    274     uint16_t sequence;
    275     uint32_t length;
    276     uint16_t width_actual;
    277     uint16_t height_actual;
    278     uint16_t num_palette_entries;
    279     uint16_t entry_bytes;
    280     uint8_t  component_order[4];
    281     uint8_t  pad1[12];
    282 } xcb_xvmc_create_subpicture_reply_t;
    283 
    284 /** Opcode for xcb_xvmc_destroy_subpicture. */
    285 #define XCB_XVMC_DESTROY_SUBPICTURE 7
    286 
    287 /**
    288  * @brief xcb_xvmc_destroy_subpicture_request_t
    289  **/
    290 typedef struct xcb_xvmc_destroy_subpicture_request_t {
    291     uint8_t               major_opcode;
    292     uint8_t               minor_opcode;
    293     uint16_t              length;
    294     xcb_xvmc_subpicture_t subpicture_id;
    295 } xcb_xvmc_destroy_subpicture_request_t;
    296 
    297 /**
    298  * @brief xcb_xvmc_list_subpicture_types_cookie_t
    299  **/
    300 typedef struct xcb_xvmc_list_subpicture_types_cookie_t {
    301     unsigned int sequence;
    302 } xcb_xvmc_list_subpicture_types_cookie_t;
    303 
    304 /** Opcode for xcb_xvmc_list_subpicture_types. */
    305 #define XCB_XVMC_LIST_SUBPICTURE_TYPES 8
    306 
    307 /**
    308  * @brief xcb_xvmc_list_subpicture_types_request_t
    309  **/
    310 typedef struct xcb_xvmc_list_subpicture_types_request_t {
    311     uint8_t            major_opcode;
    312     uint8_t            minor_opcode;
    313     uint16_t           length;
    314     xcb_xv_port_t      port_id;
    315     xcb_xvmc_surface_t surface_id;
    316 } xcb_xvmc_list_subpicture_types_request_t;
    317 
    318 /**
    319  * @brief xcb_xvmc_list_subpicture_types_reply_t
    320  **/
    321 typedef struct xcb_xvmc_list_subpicture_types_reply_t {
    322     uint8_t  response_type;
    323     uint8_t  pad0;
    324     uint16_t sequence;
    325     uint32_t length;
    326     uint32_t num;
    327     uint8_t  pad1[20];
    328 } xcb_xvmc_list_subpicture_types_reply_t;
    329 
    330 /**
    331  * Get the next element of the iterator
    332  * @param i Pointer to a xcb_xvmc_context_iterator_t
    333  *
    334  * Get the next element in the iterator. The member rem is
    335  * decreased by one. The member data points to the next
    336  * element. The member index is increased by sizeof(xcb_xvmc_context_t)
    337  */
    338 void
    339 xcb_xvmc_context_next (xcb_xvmc_context_iterator_t *i);
    340 
    341 /**
    342  * Return the iterator pointing to the last element
    343  * @param i An xcb_xvmc_context_iterator_t
    344  * @return  The iterator pointing to the last element
    345  *
    346  * Set the current element in the iterator to the last element.
    347  * The member rem is set to 0. The member data points to the
    348  * last element.
    349  */
    350 xcb_generic_iterator_t
    351 xcb_xvmc_context_end (xcb_xvmc_context_iterator_t i);
    352 
    353 /**
    354  * Get the next element of the iterator
    355  * @param i Pointer to a xcb_xvmc_surface_iterator_t
    356  *
    357  * Get the next element in the iterator. The member rem is
    358  * decreased by one. The member data points to the next
    359  * element. The member index is increased by sizeof(xcb_xvmc_surface_t)
    360  */
    361 void
    362 xcb_xvmc_surface_next (xcb_xvmc_surface_iterator_t *i);
    363 
    364 /**
    365  * Return the iterator pointing to the last element
    366  * @param i An xcb_xvmc_surface_iterator_t
    367  * @return  The iterator pointing to the last element
    368  *
    369  * Set the current element in the iterator to the last element.
    370  * The member rem is set to 0. The member data points to the
    371  * last element.
    372  */
    373 xcb_generic_iterator_t
    374 xcb_xvmc_surface_end (xcb_xvmc_surface_iterator_t i);
    375 
    376 /**
    377  * Get the next element of the iterator
    378  * @param i Pointer to a xcb_xvmc_subpicture_iterator_t
    379  *
    380  * Get the next element in the iterator. The member rem is
    381  * decreased by one. The member data points to the next
    382  * element. The member index is increased by sizeof(xcb_xvmc_subpicture_t)
    383  */
    384 void
    385 xcb_xvmc_subpicture_next (xcb_xvmc_subpicture_iterator_t *i);
    386 
    387 /**
    388  * Return the iterator pointing to the last element
    389  * @param i An xcb_xvmc_subpicture_iterator_t
    390  * @return  The iterator pointing to the last element
    391  *
    392  * Set the current element in the iterator to the last element.
    393  * The member rem is set to 0. The member data points to the
    394  * last element.
    395  */
    396 xcb_generic_iterator_t
    397 xcb_xvmc_subpicture_end (xcb_xvmc_subpicture_iterator_t i);
    398 
    399 /**
    400  * Get the next element of the iterator
    401  * @param i Pointer to a xcb_xvmc_surface_info_iterator_t
    402  *
    403  * Get the next element in the iterator. The member rem is
    404  * decreased by one. The member data points to the next
    405  * element. The member index is increased by sizeof(xcb_xvmc_surface_info_t)
    406  */
    407 void
    408 xcb_xvmc_surface_info_next (xcb_xvmc_surface_info_iterator_t *i);
    409 
    410 /**
    411  * Return the iterator pointing to the last element
    412  * @param i An xcb_xvmc_surface_info_iterator_t
    413  * @return  The iterator pointing to the last element
    414  *
    415  * Set the current element in the iterator to the last element.
    416  * The member rem is set to 0. The member data points to the
    417  * last element.
    418  */
    419 xcb_generic_iterator_t
    420 xcb_xvmc_surface_info_end (xcb_xvmc_surface_info_iterator_t i);
    421 
    422 /**
    423  *
    424  * @param c The connection
    425  * @return A cookie
    426  *
    427  * Delivers a request to the X server.
    428  *
    429  */
    430 xcb_xvmc_query_version_cookie_t
    431 xcb_xvmc_query_version (xcb_connection_t *c);
    432 
    433 /**
    434  *
    435  * @param c The connection
    436  * @return A cookie
    437  *
    438  * Delivers a request to the X server.
    439  *
    440  * This form can be used only if the request will cause
    441  * a reply to be generated. Any returned error will be
    442  * placed in the event queue.
    443  */
    444 xcb_xvmc_query_version_cookie_t
    445 xcb_xvmc_query_version_unchecked (xcb_connection_t *c);
    446 
    447 /**
    448  * Return the reply
    449  * @param c      The connection
    450  * @param cookie The cookie
    451  * @param e      The xcb_generic_error_t supplied
    452  *
    453  * Returns the reply of the request asked by
    454  *
    455  * The parameter @p e supplied to this function must be NULL if
    456  * xcb_xvmc_query_version_unchecked(). is used.
    457  * Otherwise, it stores the error if any.
    458  *
    459  * The returned value must be freed by the caller using free().
    460  */
    461 xcb_xvmc_query_version_reply_t *
    462 xcb_xvmc_query_version_reply (xcb_connection_t                 *c,
    463                               xcb_xvmc_query_version_cookie_t   cookie  /**< */,
    464                               xcb_generic_error_t             **e);
    465 
    466 int
    467 xcb_xvmc_list_surface_types_sizeof (const void  *_buffer);
    468 
    469 /**
    470  *
    471  * @param c The connection
    472  * @return A cookie
    473  *
    474  * Delivers a request to the X server.
    475  *
    476  */
    477 xcb_xvmc_list_surface_types_cookie_t
    478 xcb_xvmc_list_surface_types (xcb_connection_t *c,
    479                              xcb_xv_port_t     port_id);
    480 
    481 /**
    482  *
    483  * @param c The connection
    484  * @return A cookie
    485  *
    486  * Delivers a request to the X server.
    487  *
    488  * This form can be used only if the request will cause
    489  * a reply to be generated. Any returned error will be
    490  * placed in the event queue.
    491  */
    492 xcb_xvmc_list_surface_types_cookie_t
    493 xcb_xvmc_list_surface_types_unchecked (xcb_connection_t *c,
    494                                        xcb_xv_port_t     port_id);
    495 
    496 xcb_xvmc_surface_info_t *
    497 xcb_xvmc_list_surface_types_surfaces (const xcb_xvmc_list_surface_types_reply_t *R);
    498 
    499 int
    500 xcb_xvmc_list_surface_types_surfaces_length (const xcb_xvmc_list_surface_types_reply_t *R);
    501 
    502 xcb_xvmc_surface_info_iterator_t
    503 xcb_xvmc_list_surface_types_surfaces_iterator (const xcb_xvmc_list_surface_types_reply_t *R);
    504 
    505 /**
    506  * Return the reply
    507  * @param c      The connection
    508  * @param cookie The cookie
    509  * @param e      The xcb_generic_error_t supplied
    510  *
    511  * Returns the reply of the request asked by
    512  *
    513  * The parameter @p e supplied to this function must be NULL if
    514  * xcb_xvmc_list_surface_types_unchecked(). is used.
    515  * Otherwise, it stores the error if any.
    516  *
    517  * The returned value must be freed by the caller using free().
    518  */
    519 xcb_xvmc_list_surface_types_reply_t *
    520 xcb_xvmc_list_surface_types_reply (xcb_connection_t                      *c,
    521                                    xcb_xvmc_list_surface_types_cookie_t   cookie  /**< */,
    522                                    xcb_generic_error_t                  **e);
    523 
    524 int
    525 xcb_xvmc_create_context_sizeof (const void  *_buffer);
    526 
    527 /**
    528  *
    529  * @param c The connection
    530  * @return A cookie
    531  *
    532  * Delivers a request to the X server.
    533  *
    534  */
    535 xcb_xvmc_create_context_cookie_t
    536 xcb_xvmc_create_context (xcb_connection_t   *c,
    537                          xcb_xvmc_context_t  context_id,
    538                          xcb_xv_port_t       port_id,
    539                          xcb_xvmc_surface_t  surface_id,
    540                          uint16_t            width,
    541                          uint16_t            height,
    542                          uint32_t            flags);
    543 
    544 /**
    545  *
    546  * @param c The connection
    547  * @return A cookie
    548  *
    549  * Delivers a request to the X server.
    550  *
    551  * This form can be used only if the request will cause
    552  * a reply to be generated. Any returned error will be
    553  * placed in the event queue.
    554  */
    555 xcb_xvmc_create_context_cookie_t
    556 xcb_xvmc_create_context_unchecked (xcb_connection_t   *c,
    557                                    xcb_xvmc_context_t  context_id,
    558                                    xcb_xv_port_t       port_id,
    559                                    xcb_xvmc_surface_t  surface_id,
    560                                    uint16_t            width,
    561                                    uint16_t            height,
    562                                    uint32_t            flags);
    563 
    564 uint32_t *
    565 xcb_xvmc_create_context_priv_data (const xcb_xvmc_create_context_reply_t *R);
    566 
    567 int
    568 xcb_xvmc_create_context_priv_data_length (const xcb_xvmc_create_context_reply_t *R);
    569 
    570 xcb_generic_iterator_t
    571 xcb_xvmc_create_context_priv_data_end (const xcb_xvmc_create_context_reply_t *R);
    572 
    573 /**
    574  * Return the reply
    575  * @param c      The connection
    576  * @param cookie The cookie
    577  * @param e      The xcb_generic_error_t supplied
    578  *
    579  * Returns the reply of the request asked by
    580  *
    581  * The parameter @p e supplied to this function must be NULL if
    582  * xcb_xvmc_create_context_unchecked(). is used.
    583  * Otherwise, it stores the error if any.
    584  *
    585  * The returned value must be freed by the caller using free().
    586  */
    587 xcb_xvmc_create_context_reply_t *
    588 xcb_xvmc_create_context_reply (xcb_connection_t                  *c,
    589                                xcb_xvmc_create_context_cookie_t   cookie  /**< */,
    590                                xcb_generic_error_t              **e);
    591 
    592 /**
    593  *
    594  * @param c The connection
    595  * @return A cookie
    596  *
    597  * Delivers a request to the X server.
    598  *
    599  * This form can be used only if the request will not cause
    600  * a reply to be generated. Any returned error will be
    601  * saved for handling by xcb_request_check().
    602  */
    603 xcb_void_cookie_t
    604 xcb_xvmc_destroy_context_checked (xcb_connection_t   *c,
    605                                   xcb_xvmc_context_t  context_id);
    606 
    607 /**
    608  *
    609  * @param c The connection
    610  * @return A cookie
    611  *
    612  * Delivers a request to the X server.
    613  *
    614  */
    615 xcb_void_cookie_t
    616 xcb_xvmc_destroy_context (xcb_connection_t   *c,
    617                           xcb_xvmc_context_t  context_id);
    618 
    619 int
    620 xcb_xvmc_create_surface_sizeof (const void  *_buffer);
    621 
    622 /**
    623  *
    624  * @param c The connection
    625  * @return A cookie
    626  *
    627  * Delivers a request to the X server.
    628  *
    629  */
    630 xcb_xvmc_create_surface_cookie_t
    631 xcb_xvmc_create_surface (xcb_connection_t   *c,
    632                          xcb_xvmc_surface_t  surface_id,
    633                          xcb_xvmc_context_t  context_id);
    634 
    635 /**
    636  *
    637  * @param c The connection
    638  * @return A cookie
    639  *
    640  * Delivers a request to the X server.
    641  *
    642  * This form can be used only if the request will cause
    643  * a reply to be generated. Any returned error will be
    644  * placed in the event queue.
    645  */
    646 xcb_xvmc_create_surface_cookie_t
    647 xcb_xvmc_create_surface_unchecked (xcb_connection_t   *c,
    648                                    xcb_xvmc_surface_t  surface_id,
    649                                    xcb_xvmc_context_t  context_id);
    650 
    651 uint32_t *
    652 xcb_xvmc_create_surface_priv_data (const xcb_xvmc_create_surface_reply_t *R);
    653 
    654 int
    655 xcb_xvmc_create_surface_priv_data_length (const xcb_xvmc_create_surface_reply_t *R);
    656 
    657 xcb_generic_iterator_t
    658 xcb_xvmc_create_surface_priv_data_end (const xcb_xvmc_create_surface_reply_t *R);
    659 
    660 /**
    661  * Return the reply
    662  * @param c      The connection
    663  * @param cookie The cookie
    664  * @param e      The xcb_generic_error_t supplied
    665  *
    666  * Returns the reply of the request asked by
    667  *
    668  * The parameter @p e supplied to this function must be NULL if
    669  * xcb_xvmc_create_surface_unchecked(). is used.
    670  * Otherwise, it stores the error if any.
    671  *
    672  * The returned value must be freed by the caller using free().
    673  */
    674 xcb_xvmc_create_surface_reply_t *
    675 xcb_xvmc_create_surface_reply (xcb_connection_t                  *c,
    676                                xcb_xvmc_create_surface_cookie_t   cookie  /**< */,
    677                                xcb_generic_error_t              **e);
    678 
    679 /**
    680  *
    681  * @param c The connection
    682  * @return A cookie
    683  *
    684  * Delivers a request to the X server.
    685  *
    686  * This form can be used only if the request will not cause
    687  * a reply to be generated. Any returned error will be
    688  * saved for handling by xcb_request_check().
    689  */
    690 xcb_void_cookie_t
    691 xcb_xvmc_destroy_surface_checked (xcb_connection_t   *c,
    692                                   xcb_xvmc_surface_t  surface_id);
    693 
    694 /**
    695  *
    696  * @param c The connection
    697  * @return A cookie
    698  *
    699  * Delivers a request to the X server.
    700  *
    701  */
    702 xcb_void_cookie_t
    703 xcb_xvmc_destroy_surface (xcb_connection_t   *c,
    704                           xcb_xvmc_surface_t  surface_id);
    705 
    706 int
    707 xcb_xvmc_create_subpicture_sizeof (const void  *_buffer);
    708 
    709 /**
    710  *
    711  * @param c The connection
    712  * @return A cookie
    713  *
    714  * Delivers a request to the X server.
    715  *
    716  */
    717 xcb_xvmc_create_subpicture_cookie_t
    718 xcb_xvmc_create_subpicture (xcb_connection_t      *c,
    719                             xcb_xvmc_subpicture_t  subpicture_id,
    720                             xcb_xvmc_context_t     context,
    721                             uint32_t               xvimage_id,
    722                             uint16_t               width,
    723                             uint16_t               height);
    724 
    725 /**
    726  *
    727  * @param c The connection
    728  * @return A cookie
    729  *
    730  * Delivers a request to the X server.
    731  *
    732  * This form can be used only if the request will cause
    733  * a reply to be generated. Any returned error will be
    734  * placed in the event queue.
    735  */
    736 xcb_xvmc_create_subpicture_cookie_t
    737 xcb_xvmc_create_subpicture_unchecked (xcb_connection_t      *c,
    738                                       xcb_xvmc_subpicture_t  subpicture_id,
    739                                       xcb_xvmc_context_t     context,
    740                                       uint32_t               xvimage_id,
    741                                       uint16_t               width,
    742                                       uint16_t               height);
    743 
    744 uint32_t *
    745 xcb_xvmc_create_subpicture_priv_data (const xcb_xvmc_create_subpicture_reply_t *R);
    746 
    747 int
    748 xcb_xvmc_create_subpicture_priv_data_length (const xcb_xvmc_create_subpicture_reply_t *R);
    749 
    750 xcb_generic_iterator_t
    751 xcb_xvmc_create_subpicture_priv_data_end (const xcb_xvmc_create_subpicture_reply_t *R);
    752 
    753 /**
    754  * Return the reply
    755  * @param c      The connection
    756  * @param cookie The cookie
    757  * @param e      The xcb_generic_error_t supplied
    758  *
    759  * Returns the reply of the request asked by
    760  *
    761  * The parameter @p e supplied to this function must be NULL if
    762  * xcb_xvmc_create_subpicture_unchecked(). is used.
    763  * Otherwise, it stores the error if any.
    764  *
    765  * The returned value must be freed by the caller using free().
    766  */
    767 xcb_xvmc_create_subpicture_reply_t *
    768 xcb_xvmc_create_subpicture_reply (xcb_connection_t                     *c,
    769                                   xcb_xvmc_create_subpicture_cookie_t   cookie  /**< */,
    770                                   xcb_generic_error_t                 **e);
    771 
    772 /**
    773  *
    774  * @param c The connection
    775  * @return A cookie
    776  *
    777  * Delivers a request to the X server.
    778  *
    779  * This form can be used only if the request will not cause
    780  * a reply to be generated. Any returned error will be
    781  * saved for handling by xcb_request_check().
    782  */
    783 xcb_void_cookie_t
    784 xcb_xvmc_destroy_subpicture_checked (xcb_connection_t      *c,
    785                                      xcb_xvmc_subpicture_t  subpicture_id);
    786 
    787 /**
    788  *
    789  * @param c The connection
    790  * @return A cookie
    791  *
    792  * Delivers a request to the X server.
    793  *
    794  */
    795 xcb_void_cookie_t
    796 xcb_xvmc_destroy_subpicture (xcb_connection_t      *c,
    797                              xcb_xvmc_subpicture_t  subpicture_id);
    798 
    799 int
    800 xcb_xvmc_list_subpicture_types_sizeof (const void  *_buffer);
    801 
    802 /**
    803  *
    804  * @param c The connection
    805  * @return A cookie
    806  *
    807  * Delivers a request to the X server.
    808  *
    809  */
    810 xcb_xvmc_list_subpicture_types_cookie_t
    811 xcb_xvmc_list_subpicture_types (xcb_connection_t   *c,
    812                                 xcb_xv_port_t       port_id,
    813                                 xcb_xvmc_surface_t  surface_id);
    814 
    815 /**
    816  *
    817  * @param c The connection
    818  * @return A cookie
    819  *
    820  * Delivers a request to the X server.
    821  *
    822  * This form can be used only if the request will cause
    823  * a reply to be generated. Any returned error will be
    824  * placed in the event queue.
    825  */
    826 xcb_xvmc_list_subpicture_types_cookie_t
    827 xcb_xvmc_list_subpicture_types_unchecked (xcb_connection_t   *c,
    828                                           xcb_xv_port_t       port_id,
    829                                           xcb_xvmc_surface_t  surface_id);
    830 
    831 xcb_xv_image_format_info_t *
    832 xcb_xvmc_list_subpicture_types_types (const xcb_xvmc_list_subpicture_types_reply_t *R);
    833 
    834 int
    835 xcb_xvmc_list_subpicture_types_types_length (const xcb_xvmc_list_subpicture_types_reply_t *R);
    836 
    837 xcb_xv_image_format_info_iterator_t
    838 xcb_xvmc_list_subpicture_types_types_iterator (const xcb_xvmc_list_subpicture_types_reply_t *R);
    839 
    840 /**
    841  * Return the reply
    842  * @param c      The connection
    843  * @param cookie The cookie
    844  * @param e      The xcb_generic_error_t supplied
    845  *
    846  * Returns the reply of the request asked by
    847  *
    848  * The parameter @p e supplied to this function must be NULL if
    849  * xcb_xvmc_list_subpicture_types_unchecked(). is used.
    850  * Otherwise, it stores the error if any.
    851  *
    852  * The returned value must be freed by the caller using free().
    853  */
    854 xcb_xvmc_list_subpicture_types_reply_t *
    855 xcb_xvmc_list_subpicture_types_reply (xcb_connection_t                         *c,
    856                                       xcb_xvmc_list_subpicture_types_cookie_t   cookie  /**< */,
    857                                       xcb_generic_error_t                     **e);
    858 
    859 
    860 #ifdef __cplusplus
    861 }
    862 #endif
    863 
    864 #endif
    865 
    866 /**
    867  * @}
    868  */
    869