00001
00002
00003
00004
00005
00012 #ifndef __XVMC_H
00013 #define __XVMC_H
00014
00015 #include "xcb.h"
00016 #include "xv.h"
00017
00018 #define XCB_XVMC_MAJOR_VERSION 1
00019 #define XCB_XVMC_MINOR_VERSION 1
00020
00021 extern xcb_extension_t xcb_xvmc_id;
00022
00023 typedef uint32_t xcb_xvmc_context_t;
00024
00028 typedef struct xcb_xvmc_context_iterator_t {
00029 xcb_xvmc_context_t *data;
00030 int rem;
00031 int index;
00032 } xcb_xvmc_context_iterator_t;
00033
00034 typedef uint32_t xcb_xvmc_surface_t;
00035
00039 typedef struct xcb_xvmc_surface_iterator_t {
00040 xcb_xvmc_surface_t *data;
00041 int rem;
00042 int index;
00043 } xcb_xvmc_surface_iterator_t;
00044
00045 typedef uint32_t xcb_xvmc_subpicture_t;
00046
00050 typedef struct xcb_xvmc_subpicture_iterator_t {
00051 xcb_xvmc_subpicture_t *data;
00052 int rem;
00053 int index;
00054 } xcb_xvmc_subpicture_iterator_t;
00055
00059 typedef struct xcb_xvmc_surface_info_t {
00060 xcb_xvmc_surface_t id;
00061 uint16_t chroma_format;
00062 uint16_t pad0;
00063 uint16_t max_width;
00064 uint16_t max_height;
00065 uint16_t subpicture_max_width;
00066 uint16_t subpicture_max_height;
00067 uint32_t mc_type;
00068 uint32_t flags;
00069 } xcb_xvmc_surface_info_t;
00070
00074 typedef struct xcb_xvmc_surface_info_iterator_t {
00075 xcb_xvmc_surface_info_t *data;
00076 int rem;
00077 int index;
00078 } xcb_xvmc_surface_info_iterator_t;
00079
00083 typedef struct xcb_xvmc_query_version_cookie_t {
00084 unsigned int sequence;
00085 } xcb_xvmc_query_version_cookie_t;
00086
00088 #define XCB_XVMC_QUERY_VERSION 0
00089
00093 typedef struct xcb_xvmc_query_version_request_t {
00094 uint8_t major_opcode;
00095 uint8_t minor_opcode;
00096 uint16_t length;
00097 } xcb_xvmc_query_version_request_t;
00098
00102 typedef struct xcb_xvmc_query_version_reply_t {
00103 uint8_t response_type;
00104 uint8_t pad0;
00105 uint16_t sequence;
00106 uint32_t length;
00107 uint32_t major;
00108 uint32_t minor;
00109 } xcb_xvmc_query_version_reply_t;
00110
00114 typedef struct xcb_xvmc_list_surface_types_cookie_t {
00115 unsigned int sequence;
00116 } xcb_xvmc_list_surface_types_cookie_t;
00117
00119 #define XCB_XVMC_LIST_SURFACE_TYPES 1
00120
00124 typedef struct xcb_xvmc_list_surface_types_request_t {
00125 uint8_t major_opcode;
00126 uint8_t minor_opcode;
00127 uint16_t length;
00128 xcb_xv_port_t port_id;
00129 } xcb_xvmc_list_surface_types_request_t;
00130
00134 typedef struct xcb_xvmc_list_surface_types_reply_t {
00135 uint8_t response_type;
00136 uint8_t pad0;
00137 uint16_t sequence;
00138 uint32_t length;
00139 uint32_t num;
00140 uint8_t pad1[20];
00141 } xcb_xvmc_list_surface_types_reply_t;
00142
00146 typedef struct xcb_xvmc_create_context_cookie_t {
00147 unsigned int sequence;
00148 } xcb_xvmc_create_context_cookie_t;
00149
00151 #define XCB_XVMC_CREATE_CONTEXT 2
00152
00156 typedef struct xcb_xvmc_create_context_request_t {
00157 uint8_t major_opcode;
00158 uint8_t minor_opcode;
00159 uint16_t length;
00160 xcb_xvmc_context_t context_id;
00161 xcb_xv_port_t port_id;
00162 xcb_xvmc_surface_t surface_id;
00163 uint16_t width;
00164 uint16_t height;
00165 uint32_t flags;
00166 } xcb_xvmc_create_context_request_t;
00167
00171 typedef struct xcb_xvmc_create_context_reply_t {
00172 uint8_t response_type;
00173 uint8_t pad0;
00174 uint16_t sequence;
00175 uint32_t length;
00176 uint16_t width_actual;
00177 uint16_t height_actual;
00178 uint32_t flags_return;
00179 uint8_t pad1[20];
00180 } xcb_xvmc_create_context_reply_t;
00181
00183 #define XCB_XVMC_DESTROY_CONTEXT 3
00184
00188 typedef struct xcb_xvmc_destroy_context_request_t {
00189 uint8_t major_opcode;
00190 uint8_t minor_opcode;
00191 uint16_t length;
00192 xcb_xvmc_context_t context_id;
00193 } xcb_xvmc_destroy_context_request_t;
00194
00198 typedef struct xcb_xvmc_create_surface_cookie_t {
00199 unsigned int sequence;
00200 } xcb_xvmc_create_surface_cookie_t;
00201
00203 #define XCB_XVMC_CREATE_SURFACE 4
00204
00208 typedef struct xcb_xvmc_create_surface_request_t {
00209 uint8_t major_opcode;
00210 uint8_t minor_opcode;
00211 uint16_t length;
00212 xcb_xvmc_surface_t surface_id;
00213 xcb_xvmc_context_t context_id;
00214 } xcb_xvmc_create_surface_request_t;
00215
00219 typedef struct xcb_xvmc_create_surface_reply_t {
00220 uint8_t response_type;
00221 uint8_t pad0;
00222 uint16_t sequence;
00223 uint32_t length;
00224 uint8_t pad1[24];
00225 } xcb_xvmc_create_surface_reply_t;
00226
00228 #define XCB_XVMC_DESTROY_SURFACE 5
00229
00233 typedef struct xcb_xvmc_destroy_surface_request_t {
00234 uint8_t major_opcode;
00235 uint8_t minor_opcode;
00236 uint16_t length;
00237 xcb_xvmc_surface_t surface_id;
00238 } xcb_xvmc_destroy_surface_request_t;
00239
00243 typedef struct xcb_xvmc_create_subpicture_cookie_t {
00244 unsigned int sequence;
00245 } xcb_xvmc_create_subpicture_cookie_t;
00246
00248 #define XCB_XVMC_CREATE_SUBPICTURE 6
00249
00253 typedef struct xcb_xvmc_create_subpicture_request_t {
00254 uint8_t major_opcode;
00255 uint8_t minor_opcode;
00256 uint16_t length;
00257 xcb_xvmc_subpicture_t subpicture_id;
00258 xcb_xvmc_context_t context;
00259 uint32_t xvimage_id;
00260 uint16_t width;
00261 uint16_t height;
00262 } xcb_xvmc_create_subpicture_request_t;
00263
00267 typedef struct xcb_xvmc_create_subpicture_reply_t {
00268 uint8_t response_type;
00269 uint8_t pad0;
00270 uint16_t sequence;
00271 uint32_t length;
00272 uint16_t width_actual;
00273 uint16_t height_actual;
00274 uint16_t num_palette_entries;
00275 uint16_t entry_bytes;
00276 uint8_t component_order[4];
00277 uint8_t pad1[12];
00278 } xcb_xvmc_create_subpicture_reply_t;
00279
00281 #define XCB_XVMC_DESTROY_SUBPICTURE 7
00282
00286 typedef struct xcb_xvmc_destroy_subpicture_request_t {
00287 uint8_t major_opcode;
00288 uint8_t minor_opcode;
00289 uint16_t length;
00290 xcb_xvmc_subpicture_t subpicture_id;
00291 } xcb_xvmc_destroy_subpicture_request_t;
00292
00296 typedef struct xcb_xvmc_list_subpicture_types_cookie_t {
00297 unsigned int sequence;
00298 } xcb_xvmc_list_subpicture_types_cookie_t;
00299
00301 #define XCB_XVMC_LIST_SUBPICTURE_TYPES 8
00302
00306 typedef struct xcb_xvmc_list_subpicture_types_request_t {
00307 uint8_t major_opcode;
00308 uint8_t minor_opcode;
00309 uint16_t length;
00310 xcb_xv_port_t port_id;
00311 xcb_xvmc_surface_t surface_id;
00312 } xcb_xvmc_list_subpicture_types_request_t;
00313
00317 typedef struct xcb_xvmc_list_subpicture_types_reply_t {
00318 uint8_t response_type;
00319 uint8_t pad0;
00320 uint16_t sequence;
00321 uint32_t length;
00322 uint32_t num;
00323 uint8_t pad1[20];
00324 } xcb_xvmc_list_subpicture_types_reply_t;
00325
00335
00336
00337
00338
00339
00340
00341
00342
00343
00344 void
00345 xcb_xvmc_context_next (xcb_xvmc_context_iterator_t *i );
00346
00357
00358
00359
00360
00361
00362
00363
00364
00365
00366 xcb_generic_iterator_t
00367 xcb_xvmc_context_end (xcb_xvmc_context_iterator_t i );
00368
00378
00379
00380
00381
00382
00383
00384
00385
00386
00387 void
00388 xcb_xvmc_surface_next (xcb_xvmc_surface_iterator_t *i );
00389
00400
00401
00402
00403
00404
00405
00406
00407
00408
00409 xcb_generic_iterator_t
00410 xcb_xvmc_surface_end (xcb_xvmc_surface_iterator_t i );
00411
00421
00422
00423
00424
00425
00426
00427
00428
00429
00430 void
00431 xcb_xvmc_subpicture_next (xcb_xvmc_subpicture_iterator_t *i );
00432
00443
00444
00445
00446
00447
00448
00449
00450
00451
00452 xcb_generic_iterator_t
00453 xcb_xvmc_subpicture_end (xcb_xvmc_subpicture_iterator_t i );
00454
00464
00465
00466
00467
00468
00469
00470
00471
00472
00473 void
00474 xcb_xvmc_surface_info_next (xcb_xvmc_surface_info_iterator_t *i );
00475
00486
00487
00488
00489
00490
00491
00492
00493
00494
00495 xcb_generic_iterator_t
00496 xcb_xvmc_surface_info_end (xcb_xvmc_surface_info_iterator_t i );
00497
00507
00508
00509
00510
00511
00512
00513
00514
00515
00516 xcb_xvmc_query_version_cookie_t
00517 xcb_xvmc_query_version (xcb_connection_t *c );
00518
00531
00532
00533
00534
00535
00536
00537
00538
00539
00540 xcb_xvmc_query_version_cookie_t
00541 xcb_xvmc_query_version_unchecked (xcb_connection_t *c );
00542
00556
00557
00558
00559
00560
00561
00562
00563
00564
00565
00566
00567 xcb_xvmc_query_version_reply_t *
00568 xcb_xvmc_query_version_reply (xcb_connection_t *c ,
00569 xcb_xvmc_query_version_cookie_t cookie ,
00570 xcb_generic_error_t **e );
00571
00581
00582
00583
00584
00585
00586
00587
00588
00589
00590
00591 xcb_xvmc_list_surface_types_cookie_t
00592 xcb_xvmc_list_surface_types (xcb_connection_t *c ,
00593 xcb_xv_port_t port_id );
00594
00607
00608
00609
00610
00611
00612
00613
00614
00615
00616
00617 xcb_xvmc_list_surface_types_cookie_t
00618 xcb_xvmc_list_surface_types_unchecked (xcb_connection_t *c ,
00619 xcb_xv_port_t port_id );
00620
00621
00622
00623
00624
00625
00626
00627
00628
00629
00630
00631 xcb_xvmc_surface_info_t *
00632 xcb_xvmc_list_surface_types_surfaces (const xcb_xvmc_list_surface_types_reply_t *R );
00633
00634
00635
00636
00637
00638
00639
00640
00641
00642
00643
00644 int
00645 xcb_xvmc_list_surface_types_surfaces_length (const xcb_xvmc_list_surface_types_reply_t *R );
00646
00647
00648
00649
00650
00651
00652
00653
00654
00655
00656
00657 xcb_xvmc_surface_info_iterator_t
00658 xcb_xvmc_list_surface_types_surfaces_iterator (const xcb_xvmc_list_surface_types_reply_t *R );
00659
00673
00674
00675
00676
00677
00678
00679
00680
00681
00682
00683
00684 xcb_xvmc_list_surface_types_reply_t *
00685 xcb_xvmc_list_surface_types_reply (xcb_connection_t *c ,
00686 xcb_xvmc_list_surface_types_cookie_t cookie ,
00687 xcb_generic_error_t **e );
00688
00698
00699
00700
00701
00702
00703
00704
00705
00706
00707
00708
00709
00710
00711
00712
00713 xcb_xvmc_create_context_cookie_t
00714 xcb_xvmc_create_context (xcb_connection_t *c ,
00715 xcb_xvmc_context_t context_id ,
00716 xcb_xv_port_t port_id ,
00717 xcb_xvmc_surface_t surface_id ,
00718 uint16_t width ,
00719 uint16_t height ,
00720 uint32_t flags );
00721
00734
00735
00736
00737
00738
00739
00740
00741
00742
00743
00744
00745
00746
00747
00748
00749 xcb_xvmc_create_context_cookie_t
00750 xcb_xvmc_create_context_unchecked (xcb_connection_t *c ,
00751 xcb_xvmc_context_t context_id ,
00752 xcb_xv_port_t port_id ,
00753 xcb_xvmc_surface_t surface_id ,
00754 uint16_t width ,
00755 uint16_t height ,
00756 uint32_t flags );
00757
00758
00759
00760
00761
00762
00763
00764
00765
00766
00767
00768 uint32_t *
00769 xcb_xvmc_create_context_priv_data (const xcb_xvmc_create_context_reply_t *R );
00770
00771
00772
00773
00774
00775
00776
00777
00778
00779
00780
00781 int
00782 xcb_xvmc_create_context_priv_data_length (const xcb_xvmc_create_context_reply_t *R );
00783
00784
00785
00786
00787
00788
00789
00790
00791
00792
00793
00794 xcb_generic_iterator_t
00795 xcb_xvmc_create_context_priv_data_end (const xcb_xvmc_create_context_reply_t *R );
00796
00810
00811
00812
00813
00814
00815
00816
00817
00818
00819
00820
00821 xcb_xvmc_create_context_reply_t *
00822 xcb_xvmc_create_context_reply (xcb_connection_t *c ,
00823 xcb_xvmc_create_context_cookie_t cookie ,
00824 xcb_generic_error_t **e );
00825
00838
00839
00840
00841
00842
00843
00844
00845
00846
00847
00848 xcb_void_cookie_t
00849 xcb_xvmc_destroy_context_checked (xcb_connection_t *c ,
00850 xcb_xvmc_context_t context_id );
00851
00861
00862
00863
00864
00865
00866
00867
00868
00869
00870
00871 xcb_void_cookie_t
00872 xcb_xvmc_destroy_context (xcb_connection_t *c ,
00873 xcb_xvmc_context_t context_id );
00874
00884
00885
00886
00887
00888
00889
00890
00891
00892
00893
00894
00895 xcb_xvmc_create_surface_cookie_t
00896 xcb_xvmc_create_surface (xcb_connection_t *c ,
00897 xcb_xvmc_surface_t surface_id ,
00898 xcb_xvmc_context_t context_id );
00899
00912
00913
00914
00915
00916
00917
00918
00919
00920
00921
00922
00923 xcb_xvmc_create_surface_cookie_t
00924 xcb_xvmc_create_surface_unchecked (xcb_connection_t *c ,
00925 xcb_xvmc_surface_t surface_id ,
00926 xcb_xvmc_context_t context_id );
00927
00928
00929
00930
00931
00932
00933
00934
00935
00936
00937
00938 uint32_t *
00939 xcb_xvmc_create_surface_priv_data (const xcb_xvmc_create_surface_reply_t *R );
00940
00941
00942
00943
00944
00945
00946
00947
00948
00949
00950
00951 int
00952 xcb_xvmc_create_surface_priv_data_length (const xcb_xvmc_create_surface_reply_t *R );
00953
00954
00955
00956
00957
00958
00959
00960
00961
00962
00963
00964 xcb_generic_iterator_t
00965 xcb_xvmc_create_surface_priv_data_end (const xcb_xvmc_create_surface_reply_t *R );
00966
00980
00981
00982
00983
00984
00985
00986
00987
00988
00989
00990
00991 xcb_xvmc_create_surface_reply_t *
00992 xcb_xvmc_create_surface_reply (xcb_connection_t *c ,
00993 xcb_xvmc_create_surface_cookie_t cookie ,
00994 xcb_generic_error_t **e );
00995
01008
01009
01010
01011
01012
01013
01014
01015
01016
01017
01018 xcb_void_cookie_t
01019 xcb_xvmc_destroy_surface_checked (xcb_connection_t *c ,
01020 xcb_xvmc_surface_t surface_id );
01021
01031
01032
01033
01034
01035
01036
01037
01038
01039
01040
01041 xcb_void_cookie_t
01042 xcb_xvmc_destroy_surface (xcb_connection_t *c ,
01043 xcb_xvmc_surface_t surface_id );
01044
01054
01055
01056
01057
01058
01059
01060
01061
01062
01063
01064
01065
01066
01067
01068 xcb_xvmc_create_subpicture_cookie_t
01069 xcb_xvmc_create_subpicture (xcb_connection_t *c ,
01070 xcb_xvmc_subpicture_t subpicture_id ,
01071 xcb_xvmc_context_t context ,
01072 uint32_t xvimage_id ,
01073 uint16_t width ,
01074 uint16_t height );
01075
01088
01089
01090
01091
01092
01093
01094
01095
01096
01097
01098
01099
01100
01101
01102 xcb_xvmc_create_subpicture_cookie_t
01103 xcb_xvmc_create_subpicture_unchecked (xcb_connection_t *c ,
01104 xcb_xvmc_subpicture_t subpicture_id ,
01105 xcb_xvmc_context_t context ,
01106 uint32_t xvimage_id ,
01107 uint16_t width ,
01108 uint16_t height );
01109
01110
01111
01112
01113
01114
01115
01116
01117
01118
01119
01120 uint32_t *
01121 xcb_xvmc_create_subpicture_priv_data (const xcb_xvmc_create_subpicture_reply_t *R );
01122
01123
01124
01125
01126
01127
01128
01129
01130
01131
01132
01133 int
01134 xcb_xvmc_create_subpicture_priv_data_length (const xcb_xvmc_create_subpicture_reply_t *R );
01135
01136
01137
01138
01139
01140
01141
01142
01143
01144
01145
01146 xcb_generic_iterator_t
01147 xcb_xvmc_create_subpicture_priv_data_end (const xcb_xvmc_create_subpicture_reply_t *R );
01148
01162
01163
01164
01165
01166
01167
01168
01169
01170
01171
01172
01173 xcb_xvmc_create_subpicture_reply_t *
01174 xcb_xvmc_create_subpicture_reply (xcb_connection_t *c ,
01175 xcb_xvmc_create_subpicture_cookie_t cookie ,
01176 xcb_generic_error_t **e );
01177
01190
01191
01192
01193
01194
01195
01196
01197
01198
01199
01200 xcb_void_cookie_t
01201 xcb_xvmc_destroy_subpicture_checked (xcb_connection_t *c ,
01202 xcb_xvmc_subpicture_t subpicture_id );
01203
01213
01214
01215
01216
01217
01218
01219
01220
01221
01222
01223 xcb_void_cookie_t
01224 xcb_xvmc_destroy_subpicture (xcb_connection_t *c ,
01225 xcb_xvmc_subpicture_t subpicture_id );
01226
01236
01237
01238
01239
01240
01241
01242
01243
01244
01245
01246
01247 xcb_xvmc_list_subpicture_types_cookie_t
01248 xcb_xvmc_list_subpicture_types (xcb_connection_t *c ,
01249 xcb_xv_port_t port_id ,
01250 xcb_xvmc_surface_t surface_id );
01251
01264
01265
01266
01267
01268
01269
01270
01271
01272
01273
01274
01275 xcb_xvmc_list_subpicture_types_cookie_t
01276 xcb_xvmc_list_subpicture_types_unchecked (xcb_connection_t *c ,
01277 xcb_xv_port_t port_id ,
01278 xcb_xvmc_surface_t surface_id );
01279
01280
01281
01282
01283
01284
01285
01286
01287
01288
01289
01290 xcb_xv_image_format_info_t *
01291 xcb_xvmc_list_subpicture_types_types (const xcb_xvmc_list_subpicture_types_reply_t *R );
01292
01293
01294
01295
01296
01297
01298
01299
01300
01301
01302
01303 int
01304 xcb_xvmc_list_subpicture_types_types_length (const xcb_xvmc_list_subpicture_types_reply_t *R );
01305
01306
01307
01308
01309
01310
01311
01312
01313
01314
01315
01316 xcb_xv_image_format_info_iterator_t
01317 xcb_xvmc_list_subpicture_types_types_iterator (const xcb_xvmc_list_subpicture_types_reply_t *R );
01318
01332
01333
01334
01335
01336
01337
01338
01339
01340
01341
01342
01343 xcb_xvmc_list_subpicture_types_reply_t *
01344 xcb_xvmc_list_subpicture_types_reply (xcb_connection_t *c ,
01345 xcb_xvmc_list_subpicture_types_cookie_t cookie ,
01346 xcb_generic_error_t **e );
01347
01348
01349 #endif
01350