00001
00002
00003
00004
00005
00012 #ifndef __XVMC_H
00013 #define __XVMC_H
00014
00015 #include "xcb.h"
00016 #include "xv.h"
00017
00018 #ifdef __cplusplus
00019 extern "C" {
00020 #endif
00021
00022 #define XCB_XVMC_MAJOR_VERSION 1
00023 #define XCB_XVMC_MINOR_VERSION 1
00024
00025 extern xcb_extension_t xcb_xvmc_id;
00026
00027 typedef uint32_t xcb_xvmc_context_t;
00028
00032 typedef struct xcb_xvmc_context_iterator_t {
00033 xcb_xvmc_context_t *data;
00034 int rem;
00035 int index;
00036 } xcb_xvmc_context_iterator_t;
00037
00038 typedef uint32_t xcb_xvmc_surface_t;
00039
00043 typedef struct xcb_xvmc_surface_iterator_t {
00044 xcb_xvmc_surface_t *data;
00045 int rem;
00046 int index;
00047 } xcb_xvmc_surface_iterator_t;
00048
00049 typedef uint32_t xcb_xvmc_subpicture_t;
00050
00054 typedef struct xcb_xvmc_subpicture_iterator_t {
00055 xcb_xvmc_subpicture_t *data;
00056 int rem;
00057 int index;
00058 } xcb_xvmc_subpicture_iterator_t;
00059
00063 typedef struct xcb_xvmc_surface_info_t {
00064 xcb_xvmc_surface_t id;
00065 uint16_t chroma_format;
00066 uint16_t pad0;
00067 uint16_t max_width;
00068 uint16_t max_height;
00069 uint16_t subpicture_max_width;
00070 uint16_t subpicture_max_height;
00071 uint32_t mc_type;
00072 uint32_t flags;
00073 } xcb_xvmc_surface_info_t;
00074
00078 typedef struct xcb_xvmc_surface_info_iterator_t {
00079 xcb_xvmc_surface_info_t *data;
00080 int rem;
00081 int index;
00082 } xcb_xvmc_surface_info_iterator_t;
00083
00087 typedef struct xcb_xvmc_query_version_cookie_t {
00088 unsigned int sequence;
00089 } xcb_xvmc_query_version_cookie_t;
00090
00092 #define XCB_XVMC_QUERY_VERSION 0
00093
00097 typedef struct xcb_xvmc_query_version_request_t {
00098 uint8_t major_opcode;
00099 uint8_t minor_opcode;
00100 uint16_t length;
00101 } xcb_xvmc_query_version_request_t;
00102
00106 typedef struct xcb_xvmc_query_version_reply_t {
00107 uint8_t response_type;
00108 uint8_t pad0;
00109 uint16_t sequence;
00110 uint32_t length;
00111 uint32_t major;
00112 uint32_t minor;
00113 } xcb_xvmc_query_version_reply_t;
00114
00118 typedef struct xcb_xvmc_list_surface_types_cookie_t {
00119 unsigned int sequence;
00120 } xcb_xvmc_list_surface_types_cookie_t;
00121
00123 #define XCB_XVMC_LIST_SURFACE_TYPES 1
00124
00128 typedef struct xcb_xvmc_list_surface_types_request_t {
00129 uint8_t major_opcode;
00130 uint8_t minor_opcode;
00131 uint16_t length;
00132 xcb_xv_port_t port_id;
00133 } xcb_xvmc_list_surface_types_request_t;
00134
00138 typedef struct xcb_xvmc_list_surface_types_reply_t {
00139 uint8_t response_type;
00140 uint8_t pad0;
00141 uint16_t sequence;
00142 uint32_t length;
00143 uint32_t num;
00144 uint8_t pad1[20];
00145 } xcb_xvmc_list_surface_types_reply_t;
00146
00150 typedef struct xcb_xvmc_create_context_cookie_t {
00151 unsigned int sequence;
00152 } xcb_xvmc_create_context_cookie_t;
00153
00155 #define XCB_XVMC_CREATE_CONTEXT 2
00156
00160 typedef struct xcb_xvmc_create_context_request_t {
00161 uint8_t major_opcode;
00162 uint8_t minor_opcode;
00163 uint16_t length;
00164 xcb_xvmc_context_t context_id;
00165 xcb_xv_port_t port_id;
00166 xcb_xvmc_surface_t surface_id;
00167 uint16_t width;
00168 uint16_t height;
00169 uint32_t flags;
00170 } xcb_xvmc_create_context_request_t;
00171
00175 typedef struct xcb_xvmc_create_context_reply_t {
00176 uint8_t response_type;
00177 uint8_t pad0;
00178 uint16_t sequence;
00179 uint32_t length;
00180 uint16_t width_actual;
00181 uint16_t height_actual;
00182 uint32_t flags_return;
00183 uint8_t pad1[20];
00184 } xcb_xvmc_create_context_reply_t;
00185
00187 #define XCB_XVMC_DESTROY_CONTEXT 3
00188
00192 typedef struct xcb_xvmc_destroy_context_request_t {
00193 uint8_t major_opcode;
00194 uint8_t minor_opcode;
00195 uint16_t length;
00196 xcb_xvmc_context_t context_id;
00197 } xcb_xvmc_destroy_context_request_t;
00198
00202 typedef struct xcb_xvmc_create_surface_cookie_t {
00203 unsigned int sequence;
00204 } xcb_xvmc_create_surface_cookie_t;
00205
00207 #define XCB_XVMC_CREATE_SURFACE 4
00208
00212 typedef struct xcb_xvmc_create_surface_request_t {
00213 uint8_t major_opcode;
00214 uint8_t minor_opcode;
00215 uint16_t length;
00216 xcb_xvmc_surface_t surface_id;
00217 xcb_xvmc_context_t context_id;
00218 } xcb_xvmc_create_surface_request_t;
00219
00223 typedef struct xcb_xvmc_create_surface_reply_t {
00224 uint8_t response_type;
00225 uint8_t pad0;
00226 uint16_t sequence;
00227 uint32_t length;
00228 uint8_t pad1[24];
00229 } xcb_xvmc_create_surface_reply_t;
00230
00232 #define XCB_XVMC_DESTROY_SURFACE 5
00233
00237 typedef struct xcb_xvmc_destroy_surface_request_t {
00238 uint8_t major_opcode;
00239 uint8_t minor_opcode;
00240 uint16_t length;
00241 xcb_xvmc_surface_t surface_id;
00242 } xcb_xvmc_destroy_surface_request_t;
00243
00247 typedef struct xcb_xvmc_create_subpicture_cookie_t {
00248 unsigned int sequence;
00249 } xcb_xvmc_create_subpicture_cookie_t;
00250
00252 #define XCB_XVMC_CREATE_SUBPICTURE 6
00253
00257 typedef struct xcb_xvmc_create_subpicture_request_t {
00258 uint8_t major_opcode;
00259 uint8_t minor_opcode;
00260 uint16_t length;
00261 xcb_xvmc_subpicture_t subpicture_id;
00262 xcb_xvmc_context_t context;
00263 uint32_t xvimage_id;
00264 uint16_t width;
00265 uint16_t height;
00266 } xcb_xvmc_create_subpicture_request_t;
00267
00271 typedef struct xcb_xvmc_create_subpicture_reply_t {
00272 uint8_t response_type;
00273 uint8_t pad0;
00274 uint16_t sequence;
00275 uint32_t length;
00276 uint16_t width_actual;
00277 uint16_t height_actual;
00278 uint16_t num_palette_entries;
00279 uint16_t entry_bytes;
00280 uint8_t component_order[4];
00281 uint8_t pad1[12];
00282 } xcb_xvmc_create_subpicture_reply_t;
00283
00285 #define XCB_XVMC_DESTROY_SUBPICTURE 7
00286
00290 typedef struct xcb_xvmc_destroy_subpicture_request_t {
00291 uint8_t major_opcode;
00292 uint8_t minor_opcode;
00293 uint16_t length;
00294 xcb_xvmc_subpicture_t subpicture_id;
00295 } xcb_xvmc_destroy_subpicture_request_t;
00296
00300 typedef struct xcb_xvmc_list_subpicture_types_cookie_t {
00301 unsigned int sequence;
00302 } xcb_xvmc_list_subpicture_types_cookie_t;
00303
00305 #define XCB_XVMC_LIST_SUBPICTURE_TYPES 8
00306
00310 typedef struct xcb_xvmc_list_subpicture_types_request_t {
00311 uint8_t major_opcode;
00312 uint8_t minor_opcode;
00313 uint16_t length;
00314 xcb_xv_port_t port_id;
00315 xcb_xvmc_surface_t surface_id;
00316 } xcb_xvmc_list_subpicture_types_request_t;
00317
00321 typedef struct xcb_xvmc_list_subpicture_types_reply_t {
00322 uint8_t response_type;
00323 uint8_t pad0;
00324 uint16_t sequence;
00325 uint32_t length;
00326 uint32_t num;
00327 uint8_t pad1[20];
00328 } xcb_xvmc_list_subpicture_types_reply_t;
00329
00338 void
00339 xcb_xvmc_context_next (xcb_xvmc_context_iterator_t *i);
00340
00350 xcb_generic_iterator_t
00351 xcb_xvmc_context_end (xcb_xvmc_context_iterator_t i);
00352
00361 void
00362 xcb_xvmc_surface_next (xcb_xvmc_surface_iterator_t *i);
00363
00373 xcb_generic_iterator_t
00374 xcb_xvmc_surface_end (xcb_xvmc_surface_iterator_t i);
00375
00384 void
00385 xcb_xvmc_subpicture_next (xcb_xvmc_subpicture_iterator_t *i);
00386
00396 xcb_generic_iterator_t
00397 xcb_xvmc_subpicture_end (xcb_xvmc_subpicture_iterator_t i);
00398
00407 void
00408 xcb_xvmc_surface_info_next (xcb_xvmc_surface_info_iterator_t *i);
00409
00419 xcb_generic_iterator_t
00420 xcb_xvmc_surface_info_end (xcb_xvmc_surface_info_iterator_t i);
00421
00430 xcb_xvmc_query_version_cookie_t
00431 xcb_xvmc_query_version (xcb_connection_t *c);
00432
00444 xcb_xvmc_query_version_cookie_t
00445 xcb_xvmc_query_version_unchecked (xcb_connection_t *c);
00446
00461 xcb_xvmc_query_version_reply_t *
00462 xcb_xvmc_query_version_reply (xcb_connection_t *c,
00463 xcb_xvmc_query_version_cookie_t cookie ,
00464 xcb_generic_error_t **e);
00465
00466 int
00467 xcb_xvmc_list_surface_types_sizeof (const void *_buffer);
00468
00477 xcb_xvmc_list_surface_types_cookie_t
00478 xcb_xvmc_list_surface_types (xcb_connection_t *c,
00479 xcb_xv_port_t port_id);
00480
00492 xcb_xvmc_list_surface_types_cookie_t
00493 xcb_xvmc_list_surface_types_unchecked (xcb_connection_t *c,
00494 xcb_xv_port_t port_id);
00495
00496 xcb_xvmc_surface_info_t *
00497 xcb_xvmc_list_surface_types_surfaces (const xcb_xvmc_list_surface_types_reply_t *R);
00498
00499 int
00500 xcb_xvmc_list_surface_types_surfaces_length (const xcb_xvmc_list_surface_types_reply_t *R);
00501
00502 xcb_xvmc_surface_info_iterator_t
00503 xcb_xvmc_list_surface_types_surfaces_iterator (const xcb_xvmc_list_surface_types_reply_t *R);
00504
00519 xcb_xvmc_list_surface_types_reply_t *
00520 xcb_xvmc_list_surface_types_reply (xcb_connection_t *c,
00521 xcb_xvmc_list_surface_types_cookie_t cookie ,
00522 xcb_generic_error_t **e);
00523
00524 int
00525 xcb_xvmc_create_context_sizeof (const void *_buffer);
00526
00535 xcb_xvmc_create_context_cookie_t
00536 xcb_xvmc_create_context (xcb_connection_t *c,
00537 xcb_xvmc_context_t context_id,
00538 xcb_xv_port_t port_id,
00539 xcb_xvmc_surface_t surface_id,
00540 uint16_t width,
00541 uint16_t height,
00542 uint32_t flags);
00543
00555 xcb_xvmc_create_context_cookie_t
00556 xcb_xvmc_create_context_unchecked (xcb_connection_t *c,
00557 xcb_xvmc_context_t context_id,
00558 xcb_xv_port_t port_id,
00559 xcb_xvmc_surface_t surface_id,
00560 uint16_t width,
00561 uint16_t height,
00562 uint32_t flags);
00563
00564 uint32_t *
00565 xcb_xvmc_create_context_priv_data (const xcb_xvmc_create_context_reply_t *R);
00566
00567 int
00568 xcb_xvmc_create_context_priv_data_length (const xcb_xvmc_create_context_reply_t *R);
00569
00570 xcb_generic_iterator_t
00571 xcb_xvmc_create_context_priv_data_end (const xcb_xvmc_create_context_reply_t *R);
00572
00587 xcb_xvmc_create_context_reply_t *
00588 xcb_xvmc_create_context_reply (xcb_connection_t *c,
00589 xcb_xvmc_create_context_cookie_t cookie ,
00590 xcb_generic_error_t **e);
00591
00603 xcb_void_cookie_t
00604 xcb_xvmc_destroy_context_checked (xcb_connection_t *c,
00605 xcb_xvmc_context_t context_id);
00606
00615 xcb_void_cookie_t
00616 xcb_xvmc_destroy_context (xcb_connection_t *c,
00617 xcb_xvmc_context_t context_id);
00618
00619 int
00620 xcb_xvmc_create_surface_sizeof (const void *_buffer);
00621
00630 xcb_xvmc_create_surface_cookie_t
00631 xcb_xvmc_create_surface (xcb_connection_t *c,
00632 xcb_xvmc_surface_t surface_id,
00633 xcb_xvmc_context_t context_id);
00634
00646 xcb_xvmc_create_surface_cookie_t
00647 xcb_xvmc_create_surface_unchecked (xcb_connection_t *c,
00648 xcb_xvmc_surface_t surface_id,
00649 xcb_xvmc_context_t context_id);
00650
00651 uint32_t *
00652 xcb_xvmc_create_surface_priv_data (const xcb_xvmc_create_surface_reply_t *R);
00653
00654 int
00655 xcb_xvmc_create_surface_priv_data_length (const xcb_xvmc_create_surface_reply_t *R);
00656
00657 xcb_generic_iterator_t
00658 xcb_xvmc_create_surface_priv_data_end (const xcb_xvmc_create_surface_reply_t *R);
00659
00674 xcb_xvmc_create_surface_reply_t *
00675 xcb_xvmc_create_surface_reply (xcb_connection_t *c,
00676 xcb_xvmc_create_surface_cookie_t cookie ,
00677 xcb_generic_error_t **e);
00678
00690 xcb_void_cookie_t
00691 xcb_xvmc_destroy_surface_checked (xcb_connection_t *c,
00692 xcb_xvmc_surface_t surface_id);
00693
00702 xcb_void_cookie_t
00703 xcb_xvmc_destroy_surface (xcb_connection_t *c,
00704 xcb_xvmc_surface_t surface_id);
00705
00706 int
00707 xcb_xvmc_create_subpicture_sizeof (const void *_buffer);
00708
00717 xcb_xvmc_create_subpicture_cookie_t
00718 xcb_xvmc_create_subpicture (xcb_connection_t *c,
00719 xcb_xvmc_subpicture_t subpicture_id,
00720 xcb_xvmc_context_t context,
00721 uint32_t xvimage_id,
00722 uint16_t width,
00723 uint16_t height);
00724
00736 xcb_xvmc_create_subpicture_cookie_t
00737 xcb_xvmc_create_subpicture_unchecked (xcb_connection_t *c,
00738 xcb_xvmc_subpicture_t subpicture_id,
00739 xcb_xvmc_context_t context,
00740 uint32_t xvimage_id,
00741 uint16_t width,
00742 uint16_t height);
00743
00744 uint32_t *
00745 xcb_xvmc_create_subpicture_priv_data (const xcb_xvmc_create_subpicture_reply_t *R);
00746
00747 int
00748 xcb_xvmc_create_subpicture_priv_data_length (const xcb_xvmc_create_subpicture_reply_t *R);
00749
00750 xcb_generic_iterator_t
00751 xcb_xvmc_create_subpicture_priv_data_end (const xcb_xvmc_create_subpicture_reply_t *R);
00752
00767 xcb_xvmc_create_subpicture_reply_t *
00768 xcb_xvmc_create_subpicture_reply (xcb_connection_t *c,
00769 xcb_xvmc_create_subpicture_cookie_t cookie ,
00770 xcb_generic_error_t **e);
00771
00783 xcb_void_cookie_t
00784 xcb_xvmc_destroy_subpicture_checked (xcb_connection_t *c,
00785 xcb_xvmc_subpicture_t subpicture_id);
00786
00795 xcb_void_cookie_t
00796 xcb_xvmc_destroy_subpicture (xcb_connection_t *c,
00797 xcb_xvmc_subpicture_t subpicture_id);
00798
00799 int
00800 xcb_xvmc_list_subpicture_types_sizeof (const void *_buffer);
00801
00810 xcb_xvmc_list_subpicture_types_cookie_t
00811 xcb_xvmc_list_subpicture_types (xcb_connection_t *c,
00812 xcb_xv_port_t port_id,
00813 xcb_xvmc_surface_t surface_id);
00814
00826 xcb_xvmc_list_subpicture_types_cookie_t
00827 xcb_xvmc_list_subpicture_types_unchecked (xcb_connection_t *c,
00828 xcb_xv_port_t port_id,
00829 xcb_xvmc_surface_t surface_id);
00830
00831 xcb_xv_image_format_info_t *
00832 xcb_xvmc_list_subpicture_types_types (const xcb_xvmc_list_subpicture_types_reply_t *R);
00833
00834 int
00835 xcb_xvmc_list_subpicture_types_types_length (const xcb_xvmc_list_subpicture_types_reply_t *R);
00836
00837 xcb_xv_image_format_info_iterator_t
00838 xcb_xvmc_list_subpicture_types_types_iterator (const xcb_xvmc_list_subpicture_types_reply_t *R);
00839
00854 xcb_xvmc_list_subpicture_types_reply_t *
00855 xcb_xvmc_list_subpicture_types_reply (xcb_connection_t *c,
00856 xcb_xvmc_list_subpicture_types_cookie_t cookie ,
00857 xcb_generic_error_t **e);
00858
00859
00860 #ifdef __cplusplus
00861 }
00862 #endif
00863
00864 #endif
00865