github.com/rajveermalviya/gamen@v0.1.2-0.20220930195403-9be15877c1aa/internal/xcb/include/X11/extensions/Xvproto.h (about) 1 /*********************************************************** 2 Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts, 3 and the Massachusetts Institute of Technology, Cambridge, Massachusetts. 4 5 All Rights Reserved 6 7 Permission to use, copy, modify, and distribute this software and its 8 documentation for any purpose and without fee is hereby granted, 9 provided that the above copyright notice appear in all copies and that 10 both that copyright notice and this permission notice appear in 11 supporting documentation, and that the names of Digital or MIT not be 12 used in advertising or publicity pertaining to distribution of the 13 software without specific, written prior permission. 14 15 DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 16 ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL 17 DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR 18 ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 19 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 20 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 21 SOFTWARE. 22 23 ******************************************************************/ 24 25 #ifndef XVPROTO_H 26 #define XVPROTO_H 27 /* 28 ** File: 29 ** 30 ** Xvproto.h --- Xv protocol header file 31 ** 32 ** Author: 33 ** 34 ** David Carver (Digital Workstation Engineering/Project Athena) 35 ** 36 ** Revisions: 37 ** 38 ** 11.06.91 Carver 39 ** - changed SetPortControl to SetPortAttribute 40 ** - changed GetPortControl to GetPortAttribute 41 ** - changed QueryBestSize 42 ** 43 ** 15.05.91 Carver 44 ** - version 2.0 upgrade 45 ** 46 ** 24.01.91 Carver 47 ** - version 1.4 upgrade 48 ** 49 */ 50 51 #include <X11/Xmd.h> 52 53 /* Symbols: These are undefined at the end of this file to restore the 54 values they have in Xv.h */ 55 56 #define XvPortID CARD32 57 #define XvEncodingID CARD32 58 #define ShmSeg CARD32 59 #define VisualID CARD32 60 #define Drawable CARD32 61 #define GContext CARD32 62 #define Time CARD32 63 #define Atom CARD32 64 65 /* Structures */ 66 67 typedef struct { 68 INT32 numerator; 69 INT32 denominator; 70 } xvRational; 71 #define sz_xvRational 8 72 73 typedef struct { 74 XvPortID base_id; 75 CARD16 name_size; 76 CARD16 num_ports; 77 CARD16 num_formats; 78 CARD8 type; 79 CARD8 pad; 80 } xvAdaptorInfo; 81 #define sz_xvAdaptorInfo 12 82 83 typedef struct { 84 XvEncodingID encoding; 85 CARD16 name_size; 86 CARD16 width, height; 87 CARD16 pad; 88 xvRational rate; 89 } xvEncodingInfo; 90 #define sz_xvEncodingInfo (12 + sz_xvRational) 91 92 typedef struct { 93 VisualID visual; 94 CARD8 depth; 95 CARD8 pad1; 96 CARD16 pad2; 97 } xvFormat; 98 #define sz_xvFormat 8 99 100 typedef struct { 101 CARD32 flags; 102 INT32 min; 103 INT32 max; 104 CARD32 size; 105 } xvAttributeInfo; 106 #define sz_xvAttributeInfo 16 107 108 typedef struct { 109 CARD32 id; 110 CARD8 type; 111 CARD8 byte_order; 112 CARD16 pad1; 113 CARD8 guid[16]; 114 CARD8 bpp; 115 CARD8 num_planes; 116 CARD16 pad2; 117 CARD8 depth; 118 CARD8 pad3; 119 CARD16 pad4; 120 CARD32 red_mask; 121 CARD32 green_mask; 122 CARD32 blue_mask; 123 CARD8 format; 124 CARD8 pad5; 125 CARD16 pad6; 126 CARD32 y_sample_bits; 127 CARD32 u_sample_bits; 128 CARD32 v_sample_bits; 129 CARD32 horz_y_period; 130 CARD32 horz_u_period; 131 CARD32 horz_v_period; 132 CARD32 vert_y_period; 133 CARD32 vert_u_period; 134 CARD32 vert_v_period; 135 CARD8 comp_order[32]; 136 CARD8 scanline_order; 137 CARD8 pad7; 138 CARD16 pad8; 139 CARD32 pad9; 140 CARD32 pad10; 141 } xvImageFormatInfo; 142 #define sz_xvImageFormatInfo 128 143 144 145 /* Requests */ 146 147 #define xv_QueryExtension 0 148 #define xv_QueryAdaptors 1 149 #define xv_QueryEncodings 2 150 #define xv_GrabPort 3 151 #define xv_UngrabPort 4 152 #define xv_PutVideo 5 153 #define xv_PutStill 6 154 #define xv_GetVideo 7 155 #define xv_GetStill 8 156 #define xv_StopVideo 9 157 #define xv_SelectVideoNotify 10 158 #define xv_SelectPortNotify 11 159 #define xv_QueryBestSize 12 160 #define xv_SetPortAttribute 13 161 #define xv_GetPortAttribute 14 162 #define xv_QueryPortAttributes 15 163 #define xv_ListImageFormats 16 164 #define xv_QueryImageAttributes 17 165 #define xv_PutImage 18 166 #define xv_ShmPutImage 19 167 #define xv_LastRequest xv_ShmPutImage 168 169 #define xvNumRequests (xv_LastRequest + 1) 170 171 typedef struct { 172 CARD8 reqType; 173 CARD8 xvReqType; 174 CARD16 length; 175 } xvQueryExtensionReq; 176 #define sz_xvQueryExtensionReq 4 177 178 typedef struct { 179 CARD8 reqType; 180 CARD8 xvReqType; 181 CARD16 length; 182 CARD32 window; 183 } xvQueryAdaptorsReq; 184 #define sz_xvQueryAdaptorsReq 8 185 186 typedef struct { 187 CARD8 reqType; 188 CARD8 xvReqType; 189 CARD16 length; 190 CARD32 port; 191 } xvQueryEncodingsReq; 192 #define sz_xvQueryEncodingsReq 8 193 194 typedef struct { 195 CARD8 reqType; 196 CARD8 xvReqType; 197 CARD16 length; 198 XvPortID port; 199 Drawable drawable; 200 GContext gc; 201 INT16 vid_x; 202 INT16 vid_y; 203 CARD16 vid_w; 204 CARD16 vid_h; 205 INT16 drw_x; 206 INT16 drw_y; 207 CARD16 drw_w; 208 CARD16 drw_h; 209 } xvPutVideoReq; 210 #define sz_xvPutVideoReq 32 211 212 typedef struct { 213 CARD8 reqType; 214 CARD8 xvReqType; 215 CARD16 length; 216 XvPortID port; 217 Drawable drawable; 218 GContext gc; 219 INT16 vid_x; 220 INT16 vid_y; 221 CARD16 vid_w; 222 CARD16 vid_h; 223 INT16 drw_x; 224 INT16 drw_y; 225 CARD16 drw_w; 226 CARD16 drw_h; 227 } xvPutStillReq; 228 #define sz_xvPutStillReq 32 229 230 typedef struct { 231 CARD8 reqType; 232 CARD8 xvReqType; 233 CARD16 length; 234 XvPortID port; 235 Drawable drawable; 236 GContext gc; 237 INT16 vid_x; 238 INT16 vid_y; 239 CARD16 vid_w; 240 CARD16 vid_h; 241 INT16 drw_x; 242 INT16 drw_y; 243 CARD16 drw_w; 244 CARD16 drw_h; 245 } xvGetVideoReq; 246 #define sz_xvGetVideoReq 32 247 248 typedef struct { 249 CARD8 reqType; 250 CARD8 xvReqType; 251 CARD16 length; 252 XvPortID port; 253 Drawable drawable; 254 GContext gc; 255 INT16 vid_x; 256 INT16 vid_y; 257 CARD16 vid_w; 258 CARD16 vid_h; 259 INT16 drw_x; 260 INT16 drw_y; 261 CARD16 drw_w; 262 CARD16 drw_h; 263 } xvGetStillReq; 264 #define sz_xvGetStillReq 32 265 266 typedef struct { 267 CARD8 reqType; 268 CARD8 xvReqType; 269 CARD16 length; 270 XvPortID port; 271 Time time; 272 } xvGrabPortReq; 273 #define sz_xvGrabPortReq 12 274 275 typedef struct { 276 CARD8 reqType; 277 CARD8 xvReqType; 278 CARD16 length; 279 XvPortID port; 280 Time time; 281 } xvUngrabPortReq; 282 #define sz_xvUngrabPortReq 12 283 284 typedef struct { 285 CARD8 reqType; 286 CARD8 xvReqType; 287 CARD16 length; 288 Drawable drawable; 289 BOOL onoff; 290 CARD8 pad1; 291 CARD16 pad2; 292 } xvSelectVideoNotifyReq; 293 #define sz_xvSelectVideoNotifyReq 12 294 295 typedef struct { 296 CARD8 reqType; 297 CARD8 xvReqType; 298 CARD16 length; 299 XvPortID port; 300 BOOL onoff; 301 CARD8 pad1; 302 CARD16 pad2; 303 } xvSelectPortNotifyReq; 304 #define sz_xvSelectPortNotifyReq 12 305 306 typedef struct { 307 CARD8 reqType; 308 CARD8 xvReqType; 309 CARD16 length; 310 XvPortID port; 311 Drawable drawable; 312 } xvStopVideoReq; 313 #define sz_xvStopVideoReq 12 314 315 typedef struct { 316 CARD8 reqType; 317 CARD8 xvReqType; 318 CARD16 length; 319 XvPortID port; 320 Atom attribute; 321 INT32 value; 322 } xvSetPortAttributeReq; 323 #define sz_xvSetPortAttributeReq 16 324 325 typedef struct { 326 CARD8 reqType; 327 CARD8 xvReqType; 328 CARD16 length; 329 XvPortID port; 330 Atom attribute; 331 } xvGetPortAttributeReq; 332 #define sz_xvGetPortAttributeReq 12 333 334 typedef struct { 335 CARD8 reqType; 336 CARD8 xvReqType; 337 CARD16 length; 338 XvPortID port; 339 CARD16 vid_w; 340 CARD16 vid_h; 341 CARD16 drw_w; 342 CARD16 drw_h; 343 CARD8 motion; 344 CARD8 pad1; 345 CARD16 pad2; 346 } xvQueryBestSizeReq; 347 #define sz_xvQueryBestSizeReq 20 348 349 typedef struct { 350 CARD8 reqType; 351 CARD8 xvReqType; 352 CARD16 length; 353 XvPortID port; 354 } xvQueryPortAttributesReq; 355 #define sz_xvQueryPortAttributesReq 8 356 357 typedef struct { 358 CARD8 reqType; 359 CARD8 xvReqType; 360 CARD16 length; 361 XvPortID port; 362 Drawable drawable; 363 GContext gc; 364 CARD32 id; 365 INT16 src_x; 366 INT16 src_y; 367 CARD16 src_w; 368 CARD16 src_h; 369 INT16 drw_x; 370 INT16 drw_y; 371 CARD16 drw_w; 372 CARD16 drw_h; 373 CARD16 width; 374 CARD16 height; 375 } xvPutImageReq; 376 #define sz_xvPutImageReq 40 377 378 typedef struct { 379 CARD8 reqType; 380 CARD8 xvReqType; 381 CARD16 length; 382 XvPortID port; 383 Drawable drawable; 384 GContext gc; 385 ShmSeg shmseg; 386 CARD32 id; 387 CARD32 offset; 388 INT16 src_x; 389 INT16 src_y; 390 CARD16 src_w; 391 CARD16 src_h; 392 INT16 drw_x; 393 INT16 drw_y; 394 CARD16 drw_w; 395 CARD16 drw_h; 396 CARD16 width; 397 CARD16 height; 398 CARD8 send_event; 399 CARD8 pad1; 400 CARD16 pad2; 401 } xvShmPutImageReq; 402 #define sz_xvShmPutImageReq 52 403 404 typedef struct { 405 CARD8 reqType; 406 CARD8 xvReqType; 407 CARD16 length; 408 XvPortID port; 409 } xvListImageFormatsReq; 410 #define sz_xvListImageFormatsReq 8 411 412 typedef struct { 413 CARD8 reqType; 414 CARD8 xvReqType; 415 CARD16 length; 416 CARD32 port; 417 CARD32 id; 418 CARD16 width; 419 CARD16 height; 420 } xvQueryImageAttributesReq; 421 #define sz_xvQueryImageAttributesReq 16 422 423 424 /* Replies */ 425 426 typedef struct _QueryExtensionReply { 427 BYTE type; /* X_Reply */ 428 CARD8 padb1; 429 CARD16 sequenceNumber; 430 CARD32 length; 431 CARD16 version; 432 CARD16 revision; 433 CARD32 padl4; 434 CARD32 padl5; 435 CARD32 padl6; 436 CARD32 padl7; 437 CARD32 padl8; 438 } xvQueryExtensionReply; 439 #define sz_xvQueryExtensionReply 32 440 441 typedef struct _QueryAdaptorsReply { 442 BYTE type; /* X_Reply */ 443 CARD8 padb1; 444 CARD16 sequenceNumber; 445 CARD32 length; 446 CARD16 num_adaptors; 447 CARD16 pads3; 448 CARD32 padl4; 449 CARD32 padl5; 450 CARD32 padl6; 451 CARD32 padl7; 452 CARD32 padl8; 453 } xvQueryAdaptorsReply; 454 #define sz_xvQueryAdaptorsReply 32 455 456 typedef struct _QueryEncodingsReply { 457 BYTE type; /* X_Reply */ 458 CARD8 padb1; 459 CARD16 sequenceNumber; 460 CARD32 length; 461 CARD16 num_encodings; 462 CARD16 padl3; 463 CARD32 padl4; 464 CARD32 padl5; 465 CARD32 padl6; 466 CARD32 padl7; 467 CARD32 padl8; 468 } xvQueryEncodingsReply; 469 #define sz_xvQueryEncodingsReply 32 470 471 typedef struct { 472 BYTE type; /* X_Reply */ 473 BYTE result; 474 CARD16 sequenceNumber; 475 CARD32 length; /* 0 */ 476 CARD32 padl3; 477 CARD32 padl4; 478 CARD32 padl5; 479 CARD32 padl6; 480 CARD32 padl7; 481 CARD32 padl8; 482 } xvGrabPortReply; 483 #define sz_xvGrabPortReply 32 484 485 typedef struct { 486 BYTE type; /* X_Reply */ 487 BYTE padb1; 488 CARD16 sequenceNumber; 489 CARD32 length; /* 0 */ 490 INT32 value; 491 CARD32 padl4; 492 CARD32 padl5; 493 CARD32 padl6; 494 CARD32 padl7; 495 CARD32 padl8; 496 } xvGetPortAttributeReply; 497 #define sz_xvGetPortAttributeReply 32 498 499 typedef struct { 500 BYTE type; /* X_Reply */ 501 BYTE padb1; 502 CARD16 sequenceNumber; 503 CARD32 length; /* 0 */ 504 CARD16 actual_width; 505 CARD16 actual_height; 506 CARD32 padl4; 507 CARD32 padl5; 508 CARD32 padl6; 509 CARD32 padl7; 510 CARD32 padl8; 511 } xvQueryBestSizeReply; 512 #define sz_xvQueryBestSizeReply 32 513 514 typedef struct { 515 BYTE type; /* X_Reply */ 516 BYTE padb1; 517 CARD16 sequenceNumber; 518 CARD32 length; /* 0 */ 519 CARD32 num_attributes; 520 CARD32 text_size; 521 CARD32 padl5; 522 CARD32 padl6; 523 CARD32 padl7; 524 CARD32 padl8; 525 } xvQueryPortAttributesReply; 526 #define sz_xvQueryPortAttributesReply 32 527 528 typedef struct { 529 BYTE type; /* X_Reply */ 530 BYTE padb1; 531 CARD16 sequenceNumber; 532 CARD32 length; 533 CARD32 num_formats; 534 CARD32 padl4; 535 CARD32 padl5; 536 CARD32 padl6; 537 CARD32 padl7; 538 CARD32 padl8; 539 } xvListImageFormatsReply; 540 #define sz_xvListImageFormatsReply 32 541 542 typedef struct { 543 BYTE type; /* X_Reply */ 544 BYTE padb1; 545 CARD16 sequenceNumber; 546 CARD32 length; 547 CARD32 num_planes; 548 CARD32 data_size; 549 CARD16 width; 550 CARD16 height; 551 CARD32 padl6; 552 CARD32 padl7; 553 CARD32 padl8; 554 } xvQueryImageAttributesReply; 555 #define sz_xvQueryImageAttributesReply 32 556 557 /* DEFINE EVENT STRUCTURE */ 558 559 typedef struct { 560 union { 561 struct { 562 BYTE type; 563 BYTE detail; 564 CARD16 sequenceNumber; 565 } u; 566 struct { 567 BYTE type; 568 BYTE reason; 569 CARD16 sequenceNumber; 570 Time time; 571 Drawable drawable; 572 XvPortID port; 573 CARD32 padl5; 574 CARD32 padl6; 575 CARD32 padl7; 576 CARD32 padl8; 577 } videoNotify; 578 struct { 579 BYTE type; 580 BYTE padb1; 581 CARD16 sequenceNumber; 582 Time time; 583 XvPortID port; 584 Atom attribute; 585 INT32 value; 586 CARD32 padl6; 587 CARD32 padl7; 588 CARD32 padl8; 589 } portNotify; 590 } u; 591 } xvEvent; 592 593 #undef XvPortID 594 #undef XvEncodingID 595 #undef ShmSeg 596 #undef VisualID 597 #undef Drawable 598 #undef GContext 599 #undef Time 600 #undef Atom 601 602 #endif /* XVPROTO_H */ 603