1 /* 2 * This file is part of gtkD. 3 * 4 * gtkD is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU Lesser General Public License 6 * as published by the Free Software Foundation; either version 3 7 * of the License, or (at your option) any later version, with 8 * some exceptions, please read the COPYING file. 9 * 10 * gtkD is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public License 16 * along with gtkD; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA 18 */ 19 20 // generated automatically - do not change 21 // find conversion definition on APILookup.txt 22 // implement new conversion functionalities on the wrap.utils pakage 23 24 25 module gstinterfaces.c.types; 26 27 public import gobject.c.types; 28 29 30 /** 31 * Enumeration of the different standards that may apply to AFD data: 32 * 33 * 0) ETSI/DVB: 34 * https://www.etsi.org/deliver/etsi_ts/101100_101199/101154/02.01.01_60/ts_101154v020101p.pdf 35 * 36 * 1) ATSC A/53: 37 * https://www.atsc.org/wp-content/uploads/2015/03/a_53-Part-4-2009.pdf 38 * 39 * 2) SMPTE ST2016-1: 40 * 41 * Since: 1.18 42 */ 43 public enum GstVideoAFDSpec 44 { 45 /** 46 * AFD value is from DVB/ETSI standard 47 */ 48 DVB_ETSI = 0, 49 /** 50 * AFD value is from ATSC A/53 standard 51 */ 52 ATSC_A53 = 1, 53 SMPTE_ST2016_1 = 2, 54 } 55 alias GstVideoAFDSpec VideoAFDSpec; 56 57 /** 58 * Enumeration of the various values for Active Format Description (AFD) 59 * 60 * AFD should be included in video user data whenever the rectangular 61 * picture area containing useful information does not extend to the full height or width of the coded 62 * frame. AFD data may also be included in user data when the rectangular picture area containing 63 * useful information extends to the full height and width of the coded frame. 64 * 65 * For details, see Table 6.14 Active Format in: 66 * 67 * ATSC Digital Television Standard: 68 * Part 4 – MPEG-2 Video System Characteristics 69 * 70 * https://www.atsc.org/wp-content/uploads/2015/03/a_53-Part-4-2009.pdf 71 * 72 * and Active Format Description in Complete list of AFD codes 73 * 74 * https://en.wikipedia.org/wiki/Active_Format_Description#Complete_list_of_AFD_codes 75 * 76 * and SMPTE ST2016-1 77 * 78 * Notes: 79 * 80 * 1) AFD 0 is undefined for ATSC and SMPTE ST2016-1, indicating that AFD data is not available: 81 * If Bar Data is not present, AFD '0000' indicates that exact information 82 * is not available and the active image should be assumed to be the same as the coded frame. AFD '0000'. 83 * AFD '0000' accompanied by Bar Data signals that the active image’s aspect ratio is narrower than 16:9, 84 * but is not 4:3 or 14:9. As the exact aspect ratio cannot be conveyed by AFD alone, wherever possible, 85 * AFD ‘0000’ should be accompanied by Bar Data to define the exact vertical or horizontal extent 86 * of the active image. 87 * 2) AFD 0 is reserved for DVB/ETSI 88 * 3) values 1, 5, 6, 7, and 12 are reserved for both ATSC and DVB/ETSI 89 * 4) values 2 and 3 are not recommended for ATSC, but are valid for DVB/ETSI 90 * 91 * Since: 1.18 92 */ 93 public enum GstVideoAFDValue 94 { 95 /** 96 * Unavailable (see note 0 below). 97 */ 98 UNAVAILABLE = 0, 99 /** 100 * For 4:3 coded frame, letterbox 16:9 image, 101 * at top of the coded frame. For 16:9 coded frame, full frame 16:9 image, 102 * the same as the coded frame. 103 */ 104 _16_9_TOP_ALIGNED = 2, 105 /** 106 * For 4:3 coded frame, letterbox 14:9 image, 107 * at top of the coded frame. For 16:9 coded frame, pillarbox 14:9 image, 108 * horizontally centered in the coded frame. 109 */ 110 _14_9_TOP_ALIGNED = 3, 111 /** 112 * For 4:3 coded frame, letterbox image with an aspect ratio 113 * greater than 16:9, vertically centered in the coded frame. For 16:9 coded frame, 114 * letterbox image with an aspect ratio greater than 16:9. 115 */ 116 GREATER_THAN_16_9 = 4, 117 /** 118 * For 4:3 coded frame, full frame 4:3 image, 119 * the same as the coded frame. For 16:9 coded frame, full frame 16:9 image, the same as 120 * the coded frame. 121 */ 122 _4_3_FULL_16_9_FULL = 8, 123 /** 124 * For 4:3 coded frame, full frame 4:3 image, the same as 125 * the coded frame. For 16:9 coded frame, pillarbox 4:3 image, horizontally centered in the 126 * coded frame. 127 */ 128 _4_3_FULL_4_3_PILLAR = 9, 129 /** 130 * For 4:3 coded frame, letterbox 16:9 image, vertically centered in 131 * the coded frame with all image areas protected. For 16:9 coded frame, full frame 16:9 image, 132 * with all image areas protected. 133 */ 134 _16_9_LETTER_16_9_FULL = 10, 135 /** 136 * For 4:3 coded frame, letterbox 14:9 image, vertically centered in 137 * the coded frame. For 16:9 coded frame, pillarbox 14:9 image, horizontally centered in the 138 * coded frame. 139 */ 140 _14_9_LETTER_14_9_PILLAR = 11, 141 /** 142 * For 4:3 coded frame, full frame 4:3 image, with alternative 14:9 143 * center. For 16:9 coded frame, pillarbox 4:3 image, with alternative 14:9 center. 144 */ 145 _4_3_FULL_14_9_CENTER = 13, 146 /** 147 * For 4:3 coded frame, letterbox 16:9 image, with alternative 14:9 148 * center. For 16:9 coded frame, full frame 16:9 image, with alternative 14:9 center. 149 */ 150 _16_9_LETTER_14_9_CENTER = 14, 151 /** 152 * For 4:3 coded frame, letterbox 16:9 image, with alternative 4:3 153 * center. For 16:9 coded frame, full frame 16:9 image, with alternative 4:3 center. 154 */ 155 _16_9_LETTER_4_3_CENTER = 15, 156 } 157 alias GstVideoAFDValue VideoAFDValue; 158 159 /** 160 * The different video orientation methods. 161 * 162 * Since: 1.10 163 */ 164 public enum GstVideoOrientationMethod 165 { 166 /** 167 * Identity (no rotation) 168 */ 169 IDENTITY = 0, 170 /** 171 * Rotate clockwise 90 degrees 172 */ 173 _90R = 1, 174 /** 175 * Rotate 180 degrees 176 */ 177 _180 = 2, 178 /** 179 * Rotate counter-clockwise 90 degrees 180 */ 181 _90L = 3, 182 /** 183 * Flip horizontally 184 */ 185 HORIZ = 4, 186 /** 187 * Flip vertically 188 */ 189 VERT = 5, 190 /** 191 * Flip across upper left/lower right diagonal 192 */ 193 UL_LR = 6, 194 /** 195 * Flip across upper right/lower left diagonal 196 */ 197 UR_LL = 7, 198 /** 199 * Select flip method based on image-orientation tag 200 */ 201 AUTO = 8, 202 /** 203 * Current status depends on plugin internal setup 204 */ 205 CUSTOM = 9, 206 } 207 alias GstVideoOrientationMethod VideoOrientationMethod; 208 209 /** 210 * Flags related to the time code information. 211 * For drop frame, only 30000/1001 and 60000/1001 frame rates are supported. 212 * 213 * Since: 1.10 214 */ 215 public enum GstVideoTimeCodeFlags 216 { 217 /** 218 * No flags 219 */ 220 NONE = 0, 221 /** 222 * Whether we have drop frame rate 223 */ 224 DROP_FRAME = 1, 225 /** 226 * Whether we have interlaced video 227 */ 228 INTERLACED = 2, 229 } 230 alias GstVideoTimeCodeFlags VideoTimeCodeFlags; 231 232 /** 233 * #GstVideoDirectionInterface interface. 234 * 235 * Since: 1.10 236 */ 237 struct GstVideoDirectionInterface 238 { 239 /** 240 * parent interface type. 241 */ 242 GTypeInterface iface; 243 } 244 245 /** 246 * Used to represent display_primaries and white_point of 247 * #GstVideoMasteringDisplayInfo struct. See #GstVideoMasteringDisplayInfo 248 * 249 * Since: 1.18 250 */ 251 struct GstVideoMasteringDisplayInfoCoordinates 252 { 253 /** 254 * the x coordinate of CIE 1931 color space in unit of 0.00002. 255 */ 256 ushort x; 257 /** 258 * the y coordinate of CIE 1931 color space in unit of 0.00002. 259 */ 260 ushort y; 261 } 262 263 struct GstVideoOverlay; 264 265 /** 266 * #GstVideoOverlay interface 267 */ 268 struct GstVideoOverlayInterface 269 { 270 /** 271 * parent interface type. 272 */ 273 GTypeInterface iface; 274 /** */ 275 extern(C) void function(GstVideoOverlay* overlay) expose; 276 /** */ 277 extern(C) void function(GstVideoOverlay* overlay, int handleEvents) handleEvents; 278 /** */ 279 extern(C) void function(GstVideoOverlay* overlay, int x, int y, int width, int height) setRenderRectangle; 280 /** */ 281 extern(C) void function(GstVideoOverlay* overlay, size_t handle) setWindowHandle; 282 } 283 284 /** 285 * Supported frame rates: 30000/1001, 60000/1001 (both with and without drop 286 * frame), and integer frame rates e.g. 25/1, 30/1, 50/1, 60/1. 287 * 288 * The configuration of the time code. 289 * 290 * Since: 1.10 291 */ 292 struct GstVideoTimeCodeConfig 293 { 294 /** 295 * Numerator of the frame rate 296 */ 297 uint fpsN; 298 /** 299 * Denominator of the frame rate 300 */ 301 uint fpsD; 302 /** 303 * the corresponding #GstVideoTimeCodeFlags 304 */ 305 GstVideoTimeCodeFlags flags; 306 /** 307 * The latest daily jam information, if present, or NULL 308 */ 309 GDateTime* latestDailyJam; 310 } 311 312 enum BUFFER_POOL_OPTION_VIDEO_AFFINE_TRANSFORMATION_META = "GstBufferPoolOptionVideoAffineTransformation"; 313 alias GST_BUFFER_POOL_OPTION_VIDEO_AFFINE_TRANSFORMATION_META = BUFFER_POOL_OPTION_VIDEO_AFFINE_TRANSFORMATION_META; 314 315 /** 316 * A bufferpool option to enable extra padding. When a bufferpool supports this 317 * option, gst_buffer_pool_config_set_video_alignment() can be called. 318 * 319 * When this option is enabled on the bufferpool, 320 * #GST_BUFFER_POOL_OPTION_VIDEO_META should also be enabled. 321 */ 322 enum BUFFER_POOL_OPTION_VIDEO_ALIGNMENT = "GstBufferPoolOptionVideoAlignment"; 323 alias GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT = BUFFER_POOL_OPTION_VIDEO_ALIGNMENT; 324 325 /** 326 * An option that can be activated on a bufferpool to request gl texture upload 327 * meta on buffers from the pool. 328 * 329 * When this option is enabled on the bufferpool, 330 * @GST_BUFFER_POOL_OPTION_VIDEO_META should also be enabled. 331 */ 332 enum BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META = "GstBufferPoolOptionVideoGLTextureUploadMeta"; 333 alias GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META = BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META; 334 335 /** 336 * An option that can be activated on bufferpool to request video metadata 337 * on buffers from the pool. 338 */ 339 enum BUFFER_POOL_OPTION_VIDEO_META = "GstBufferPoolOptionVideoMeta"; 340 alias GST_BUFFER_POOL_OPTION_VIDEO_META = BUFFER_POOL_OPTION_VIDEO_META; 341 342 /** 343 * Name of the caps feature indicating that the stream is interlaced. 344 * 345 * Currently it is only used for video with 'interlace-mode=alternate' 346 * to ensure backwards compatibility for this new mode. 347 * In this mode each buffer carries a single field of interlaced video. 348 * @GST_VIDEO_BUFFER_FLAG_TOP_FIELD and @GST_VIDEO_BUFFER_FLAG_BOTTOM_FIELD 349 * indicate whether the buffer carries a top or bottom field. The order of 350 * buffers/fields in the stream and the timestamps on the buffers indicate the 351 * temporal order of the fields. 352 * Top and bottom fields are expected to alternate in this mode. 353 * The frame rate in the caps still signals the frame rate, so the notional field 354 * rate will be twice the frame rate from the caps 355 * (see @GST_VIDEO_INFO_FIELD_RATE_N). 356 */ 357 enum CAPS_FEATURE_FORMAT_INTERLACED = "format:Interlaced"; 358 alias GST_CAPS_FEATURE_FORMAT_INTERLACED = CAPS_FEATURE_FORMAT_INTERLACED; 359 360 enum CAPS_FEATURE_META_GST_VIDEO_AFFINE_TRANSFORMATION_META = "meta:GstVideoAffineTransformation"; 361 alias GST_CAPS_FEATURE_META_GST_VIDEO_AFFINE_TRANSFORMATION_META = CAPS_FEATURE_META_GST_VIDEO_AFFINE_TRANSFORMATION_META; 362 363 enum CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META = "meta:GstVideoGLTextureUploadMeta"; 364 alias GST_CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META = CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META; 365 366 enum CAPS_FEATURE_META_GST_VIDEO_META = "meta:GstVideoMeta"; 367 alias GST_CAPS_FEATURE_META_GST_VIDEO_META = CAPS_FEATURE_META_GST_VIDEO_META; 368 369 enum CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION = "meta:GstVideoOverlayComposition"; 370 alias GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION = CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION; 371 372 /** 373 * This metadata stays relevant as long as video colorspace is unchanged. 374 */ 375 enum META_TAG_VIDEO_COLORSPACE_STR = "colorspace"; 376 alias GST_META_TAG_VIDEO_COLORSPACE_STR = META_TAG_VIDEO_COLORSPACE_STR; 377 378 /** 379 * This metadata stays relevant as long as video orientation is unchanged. 380 */ 381 enum META_TAG_VIDEO_ORIENTATION_STR = "orientation"; 382 alias GST_META_TAG_VIDEO_ORIENTATION_STR = META_TAG_VIDEO_ORIENTATION_STR; 383 384 /** 385 * This metadata stays relevant as long as video size is unchanged. 386 */ 387 enum META_TAG_VIDEO_SIZE_STR = "size"; 388 alias GST_META_TAG_VIDEO_SIZE_STR = META_TAG_VIDEO_SIZE_STR; 389 390 /** 391 * This metadata is relevant for video streams. 392 */ 393 enum META_TAG_VIDEO_STR = "video"; 394 alias GST_META_TAG_VIDEO_STR = META_TAG_VIDEO_STR; 395 396 enum VIDEO_COLORIMETRY_BT2020 = "bt2020"; 397 alias GST_VIDEO_COLORIMETRY_BT2020 = VIDEO_COLORIMETRY_BT2020; 398 399 enum VIDEO_COLORIMETRY_BT2020_10 = "bt2020-10"; 400 alias GST_VIDEO_COLORIMETRY_BT2020_10 = VIDEO_COLORIMETRY_BT2020_10; 401 402 enum VIDEO_COLORIMETRY_BT2100_HLG = "bt2100-hlg"; 403 alias GST_VIDEO_COLORIMETRY_BT2100_HLG = VIDEO_COLORIMETRY_BT2100_HLG; 404 405 enum VIDEO_COLORIMETRY_BT2100_PQ = "bt2100-pq"; 406 alias GST_VIDEO_COLORIMETRY_BT2100_PQ = VIDEO_COLORIMETRY_BT2100_PQ; 407 408 enum VIDEO_COLORIMETRY_BT601 = "bt601"; 409 alias GST_VIDEO_COLORIMETRY_BT601 = VIDEO_COLORIMETRY_BT601; 410 411 enum VIDEO_COLORIMETRY_BT709 = "bt709"; 412 alias GST_VIDEO_COLORIMETRY_BT709 = VIDEO_COLORIMETRY_BT709; 413 414 enum VIDEO_COLORIMETRY_SMPTE240M = "smpte240m"; 415 alias GST_VIDEO_COLORIMETRY_SMPTE240M = VIDEO_COLORIMETRY_SMPTE240M; 416 417 enum VIDEO_COLORIMETRY_SRGB = "sRGB"; 418 alias GST_VIDEO_COLORIMETRY_SRGB = VIDEO_COLORIMETRY_SRGB; 419 420 enum VIDEO_COMP_A = 3; 421 alias GST_VIDEO_COMP_A = VIDEO_COMP_A; 422 423 enum VIDEO_COMP_B = 2; 424 alias GST_VIDEO_COMP_B = VIDEO_COMP_B; 425 426 enum VIDEO_COMP_G = 1; 427 alias GST_VIDEO_COMP_G = VIDEO_COMP_G; 428 429 enum VIDEO_COMP_INDEX = 0; 430 alias GST_VIDEO_COMP_INDEX = VIDEO_COMP_INDEX; 431 432 enum VIDEO_COMP_PALETTE = 1; 433 alias GST_VIDEO_COMP_PALETTE = VIDEO_COMP_PALETTE; 434 435 enum VIDEO_COMP_R = 0; 436 alias GST_VIDEO_COMP_R = VIDEO_COMP_R; 437 438 enum VIDEO_COMP_U = 1; 439 alias GST_VIDEO_COMP_U = VIDEO_COMP_U; 440 441 enum VIDEO_COMP_V = 2; 442 alias GST_VIDEO_COMP_V = VIDEO_COMP_V; 443 444 enum VIDEO_COMP_Y = 0; 445 alias GST_VIDEO_COMP_Y = VIDEO_COMP_Y; 446 447 /** 448 * #GstVideoAlphaMode, the alpha mode to use. 449 * Default is #GST_VIDEO_ALPHA_MODE_COPY. 450 */ 451 enum VIDEO_CONVERTER_OPT_ALPHA_MODE = "GstVideoConverter.alpha-mode"; 452 alias GST_VIDEO_CONVERTER_OPT_ALPHA_MODE = VIDEO_CONVERTER_OPT_ALPHA_MODE; 453 454 /** 455 * #G_TYPE_DOUBLE, the alpha color value to use. 456 * Default to 1.0 457 */ 458 enum VIDEO_CONVERTER_OPT_ALPHA_VALUE = "GstVideoConverter.alpha-value"; 459 alias GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE = VIDEO_CONVERTER_OPT_ALPHA_VALUE; 460 461 /** 462 * #G_TYPE_UINT, the border color to use if #GST_VIDEO_CONVERTER_OPT_FILL_BORDER 463 * is set to %TRUE. The color is in ARGB format. 464 * Default 0xff000000 465 */ 466 enum VIDEO_CONVERTER_OPT_BORDER_ARGB = "GstVideoConverter.border-argb"; 467 alias GST_VIDEO_CONVERTER_OPT_BORDER_ARGB = VIDEO_CONVERTER_OPT_BORDER_ARGB; 468 469 /** 470 * #GstVideoChromaMode, set the chroma resample mode subsampled 471 * formats. Default is #GST_VIDEO_CHROMA_MODE_FULL. 472 */ 473 enum VIDEO_CONVERTER_OPT_CHROMA_MODE = "GstVideoConverter.chroma-mode"; 474 alias GST_VIDEO_CONVERTER_OPT_CHROMA_MODE = VIDEO_CONVERTER_OPT_CHROMA_MODE; 475 476 /** 477 * #GstVideoChromaMethod, The resampler method to use for 478 * chroma resampling. Other options for the resampler can be used, see 479 * the #GstVideoResampler. Default is #GST_VIDEO_RESAMPLER_METHOD_LINEAR 480 */ 481 enum VIDEO_CONVERTER_OPT_CHROMA_RESAMPLER_METHOD = "GstVideoConverter.chroma-resampler-method"; 482 alias GST_VIDEO_CONVERTER_OPT_CHROMA_RESAMPLER_METHOD = VIDEO_CONVERTER_OPT_CHROMA_RESAMPLER_METHOD; 483 484 /** 485 * #G_TYPE_INT, height in the destination frame, default destination height 486 */ 487 enum VIDEO_CONVERTER_OPT_DEST_HEIGHT = "GstVideoConverter.dest-height"; 488 alias GST_VIDEO_CONVERTER_OPT_DEST_HEIGHT = VIDEO_CONVERTER_OPT_DEST_HEIGHT; 489 490 /** 491 * #G_TYPE_INT, width in the destination frame, default destination width 492 */ 493 enum VIDEO_CONVERTER_OPT_DEST_WIDTH = "GstVideoConverter.dest-width"; 494 alias GST_VIDEO_CONVERTER_OPT_DEST_WIDTH = VIDEO_CONVERTER_OPT_DEST_WIDTH; 495 496 /** 497 * #G_TYPE_INT, x position in the destination frame, default 0 498 */ 499 enum VIDEO_CONVERTER_OPT_DEST_X = "GstVideoConverter.dest-x"; 500 alias GST_VIDEO_CONVERTER_OPT_DEST_X = VIDEO_CONVERTER_OPT_DEST_X; 501 502 /** 503 * #G_TYPE_INT, y position in the destination frame, default 0 504 */ 505 enum VIDEO_CONVERTER_OPT_DEST_Y = "GstVideoConverter.dest-y"; 506 alias GST_VIDEO_CONVERTER_OPT_DEST_Y = VIDEO_CONVERTER_OPT_DEST_Y; 507 508 /** 509 * #GstVideoDitherMethod, The dither method to use when 510 * changing bit depth. 511 * Default is #GST_VIDEO_DITHER_BAYER. 512 */ 513 enum VIDEO_CONVERTER_OPT_DITHER_METHOD = "GstVideoConverter.dither-method"; 514 alias GST_VIDEO_CONVERTER_OPT_DITHER_METHOD = VIDEO_CONVERTER_OPT_DITHER_METHOD; 515 516 /** 517 * #G_TYPE_UINT, The quantization amount to dither to. Components will be 518 * quantized to multiples of this value. 519 * Default is 1 520 */ 521 enum VIDEO_CONVERTER_OPT_DITHER_QUANTIZATION = "GstVideoConverter.dither-quantization"; 522 alias GST_VIDEO_CONVERTER_OPT_DITHER_QUANTIZATION = VIDEO_CONVERTER_OPT_DITHER_QUANTIZATION; 523 524 /** 525 * #G_TYPE_BOOLEAN, if the destination rectangle does not fill the complete 526 * destination image, render a border with 527 * #GST_VIDEO_CONVERTER_OPT_BORDER_ARGB. Otherwise the unusded pixels in the 528 * destination are untouched. Default %TRUE. 529 */ 530 enum VIDEO_CONVERTER_OPT_FILL_BORDER = "GstVideoConverter.fill-border"; 531 alias GST_VIDEO_CONVERTER_OPT_FILL_BORDER = VIDEO_CONVERTER_OPT_FILL_BORDER; 532 533 /** 534 * #GstVideoGammaMode, set the gamma mode. 535 * Default is #GST_VIDEO_GAMMA_MODE_NONE. 536 */ 537 enum VIDEO_CONVERTER_OPT_GAMMA_MODE = "GstVideoConverter.gamma-mode"; 538 alias GST_VIDEO_CONVERTER_OPT_GAMMA_MODE = VIDEO_CONVERTER_OPT_GAMMA_MODE; 539 540 /** 541 * #GstVideoMatrixMode, set the color matrix conversion mode for 542 * converting between Y'PbPr and non-linear RGB (R'G'B'). 543 * Default is #GST_VIDEO_MATRIX_MODE_FULL. 544 */ 545 enum VIDEO_CONVERTER_OPT_MATRIX_MODE = "GstVideoConverter.matrix-mode"; 546 alias GST_VIDEO_CONVERTER_OPT_MATRIX_MODE = VIDEO_CONVERTER_OPT_MATRIX_MODE; 547 548 /** 549 * #GstVideoPrimariesMode, set the primaries conversion mode. 550 * Default is #GST_VIDEO_PRIMARIES_MODE_NONE. 551 */ 552 enum VIDEO_CONVERTER_OPT_PRIMARIES_MODE = "GstVideoConverter.primaries-mode"; 553 alias GST_VIDEO_CONVERTER_OPT_PRIMARIES_MODE = VIDEO_CONVERTER_OPT_PRIMARIES_MODE; 554 555 /** 556 * #GstVideoResamplerMethod, The resampler method to use for 557 * resampling. Other options for the resampler can be used, see 558 * the #GstVideoResampler. Default is #GST_VIDEO_RESAMPLER_METHOD_CUBIC 559 */ 560 enum VIDEO_CONVERTER_OPT_RESAMPLER_METHOD = "GstVideoConverter.resampler-method"; 561 alias GST_VIDEO_CONVERTER_OPT_RESAMPLER_METHOD = VIDEO_CONVERTER_OPT_RESAMPLER_METHOD; 562 563 /** 564 * #G_TYPE_UINT, The number of taps for the resampler. 565 * Default is 0: let the resampler choose a good value. 566 */ 567 enum VIDEO_CONVERTER_OPT_RESAMPLER_TAPS = "GstVideoConverter.resampler-taps"; 568 alias GST_VIDEO_CONVERTER_OPT_RESAMPLER_TAPS = VIDEO_CONVERTER_OPT_RESAMPLER_TAPS; 569 570 /** 571 * #G_TYPE_INT, source height to convert, default source height 572 */ 573 enum VIDEO_CONVERTER_OPT_SRC_HEIGHT = "GstVideoConverter.src-height"; 574 alias GST_VIDEO_CONVERTER_OPT_SRC_HEIGHT = VIDEO_CONVERTER_OPT_SRC_HEIGHT; 575 576 /** 577 * #G_TYPE_INT, source width to convert, default source width 578 */ 579 enum VIDEO_CONVERTER_OPT_SRC_WIDTH = "GstVideoConverter.src-width"; 580 alias GST_VIDEO_CONVERTER_OPT_SRC_WIDTH = VIDEO_CONVERTER_OPT_SRC_WIDTH; 581 582 /** 583 * #G_TYPE_INT, source x position to start conversion, default 0 584 */ 585 enum VIDEO_CONVERTER_OPT_SRC_X = "GstVideoConverter.src-x"; 586 alias GST_VIDEO_CONVERTER_OPT_SRC_X = VIDEO_CONVERTER_OPT_SRC_X; 587 588 /** 589 * #G_TYPE_INT, source y position to start conversion, default 0 590 */ 591 enum VIDEO_CONVERTER_OPT_SRC_Y = "GstVideoConverter.src-y"; 592 alias GST_VIDEO_CONVERTER_OPT_SRC_Y = VIDEO_CONVERTER_OPT_SRC_Y; 593 594 /** 595 * #G_TYPE_UINT, maximum number of threads to use. Default 1, 0 for the number 596 * of cores. 597 */ 598 enum VIDEO_CONVERTER_OPT_THREADS = "GstVideoConverter.threads"; 599 alias GST_VIDEO_CONVERTER_OPT_THREADS = VIDEO_CONVERTER_OPT_THREADS; 600 601 /** 602 * Default maximum number of errors tolerated before signaling error. 603 */ 604 enum VIDEO_DECODER_MAX_ERRORS = 10; 605 alias GST_VIDEO_DECODER_MAX_ERRORS = VIDEO_DECODER_MAX_ERRORS; 606 607 /** 608 * The name of the templates for the sink pad. 609 */ 610 enum VIDEO_DECODER_SINK_NAME = "sink"; 611 alias GST_VIDEO_DECODER_SINK_NAME = VIDEO_DECODER_SINK_NAME; 612 613 /** 614 * The name of the templates for the source pad. 615 */ 616 enum VIDEO_DECODER_SRC_NAME = "src"; 617 alias GST_VIDEO_DECODER_SRC_NAME = VIDEO_DECODER_SRC_NAME; 618 619 /** 620 * The name of the templates for the sink pad. 621 */ 622 enum VIDEO_ENCODER_SINK_NAME = "sink"; 623 alias GST_VIDEO_ENCODER_SINK_NAME = VIDEO_ENCODER_SINK_NAME; 624 625 /** 626 * The name of the templates for the source pad. 627 */ 628 enum VIDEO_ENCODER_SRC_NAME = "src"; 629 alias GST_VIDEO_ENCODER_SRC_NAME = VIDEO_ENCODER_SRC_NAME; 630 631 /** 632 * List of all video formats, for use in template caps strings. 633 * 634 * Formats are sorted by decreasing "quality", using these criteria by priority: 635 * - number of components 636 * - depth 637 * - subsampling factor of the width 638 * - subsampling factor of the height 639 * - number of planes 640 * - native endianness preferred 641 * - pixel stride 642 * - poffset 643 * - prefer non-complex formats 644 * - prefer YUV formats over RGB ones 645 * - prefer I420 over YV12 646 * - format name 647 */ 648 enum VIDEO_FORMATS_ALL = "{ AYUV64, ARGB64, GBRA_12BE, GBRA_12LE, Y412_BE, Y412_LE, A444_10BE, GBRA_10BE, A444_10LE, GBRA_10LE, A422_10BE, A422_10LE, A420_10BE, A420_10LE, Y410, RGB10A2_LE, BGR10A2_LE, GBRA, ABGR, VUYA, BGRA, AYUV, ARGB, RGBA, A420, Y444_16BE, Y444_16LE, v216, P016_BE, P016_LE, Y444_12BE, GBR_12BE, Y444_12LE, GBR_12LE, I422_12BE, I422_12LE, Y212_BE, Y212_LE, I420_12BE, I420_12LE, P012_BE, P012_LE, Y444_10BE, GBR_10BE, Y444_10LE, GBR_10LE, r210, I422_10BE, I422_10LE, NV16_10LE32, Y210, v210, UYVP, I420_10BE, I420_10LE, P010_10BE, P010_10LE, NV12_10LE32, NV12_10LE40, Y444, GBR, NV24, xBGR, BGRx, xRGB, RGBx, BGR, IYU2, v308, RGB, Y42B, NV61, NV16, VYUY, UYVY, YVYU, YUY2, I420, YV12, NV21, NV12, NV12_64Z32, NV12_4L4, NV12_32L32, Y41B, IYU1, YVU9, YUV9, RGB16, BGR16, RGB15, BGR15, RGB8P, GRAY16_BE, GRAY16_LE, GRAY10_LE32, GRAY8 }"; 649 alias GST_VIDEO_FORMATS_ALL = VIDEO_FORMATS_ALL; 650 651 enum VIDEO_FPS_RANGE = "(fraction) [ 0, max ]"; 652 alias GST_VIDEO_FPS_RANGE = VIDEO_FPS_RANGE; 653 654 enum VIDEO_MAX_COMPONENTS = 4; 655 alias GST_VIDEO_MAX_COMPONENTS = VIDEO_MAX_COMPONENTS; 656 657 enum VIDEO_MAX_PLANES = 4; 658 alias GST_VIDEO_MAX_PLANES = VIDEO_MAX_PLANES; 659 660 /** 661 * G_TYPE_DOUBLE, B parameter of the cubic filter. The B 662 * parameter controls the bluriness. Values between 0.0 and 663 * 2.0 are accepted. 1/3 is the default. 664 * 665 * Below are some values of popular filters: 666 * B C 667 * Hermite 0.0 0.0 668 * Spline 1.0 0.0 669 * Catmull-Rom 0.0 1/2 670 * Mitchell 1/3 1/3 671 * Robidoux 0.3782 0.3109 672 * Robidoux 673 * Sharp 0.2620 0.3690 674 * Robidoux 675 * Soft 0.6796 0.1602 676 */ 677 enum VIDEO_RESAMPLER_OPT_CUBIC_B = "GstVideoResampler.cubic-b"; 678 alias GST_VIDEO_RESAMPLER_OPT_CUBIC_B = VIDEO_RESAMPLER_OPT_CUBIC_B; 679 680 /** 681 * G_TYPE_DOUBLE, C parameter of the cubic filter. The C 682 * parameter controls the Keys alpha value. Values between 0.0 and 683 * 2.0 are accepted. 1/3 is the default. 684 * 685 * See #GST_VIDEO_RESAMPLER_OPT_CUBIC_B for some more common values 686 */ 687 enum VIDEO_RESAMPLER_OPT_CUBIC_C = "GstVideoResampler.cubic-c"; 688 alias GST_VIDEO_RESAMPLER_OPT_CUBIC_C = VIDEO_RESAMPLER_OPT_CUBIC_C; 689 690 /** 691 * G_TYPE_DOUBLE, specifies the size of filter envelope for 692 * @GST_VIDEO_RESAMPLER_METHOD_LANCZOS. values are clamped between 693 * 1.0 and 5.0. 2.0 is the default. 694 */ 695 enum VIDEO_RESAMPLER_OPT_ENVELOPE = "GstVideoResampler.envelope"; 696 alias GST_VIDEO_RESAMPLER_OPT_ENVELOPE = VIDEO_RESAMPLER_OPT_ENVELOPE; 697 698 /** 699 * G_TYPE_INT, limits the maximum number of taps to use. 700 * 16 is the default. 701 */ 702 enum VIDEO_RESAMPLER_OPT_MAX_TAPS = "GstVideoResampler.max-taps"; 703 alias GST_VIDEO_RESAMPLER_OPT_MAX_TAPS = VIDEO_RESAMPLER_OPT_MAX_TAPS; 704 705 /** 706 * G_TYPE_DOUBLE, specifies sharpening of the filter for 707 * @GST_VIDEO_RESAMPLER_METHOD_LANCZOS. values are clamped between 708 * 0.0 and 1.0. 0.0 is the default. 709 */ 710 enum VIDEO_RESAMPLER_OPT_SHARPEN = "GstVideoResampler.sharpen"; 711 alias GST_VIDEO_RESAMPLER_OPT_SHARPEN = VIDEO_RESAMPLER_OPT_SHARPEN; 712 713 /** 714 * G_TYPE_DOUBLE, specifies sharpness of the filter for 715 * @GST_VIDEO_RESAMPLER_METHOD_LANCZOS. values are clamped between 716 * 0.5 and 1.5. 1.0 is the default. 717 */ 718 enum VIDEO_RESAMPLER_OPT_SHARPNESS = "GstVideoResampler.sharpness"; 719 alias GST_VIDEO_RESAMPLER_OPT_SHARPNESS = VIDEO_RESAMPLER_OPT_SHARPNESS; 720 721 /** 722 * #GstVideoDitherMethod, The dither method to use for propagating 723 * quatization errors. 724 */ 725 enum VIDEO_SCALER_OPT_DITHER_METHOD = "GstVideoScaler.dither-method"; 726 alias GST_VIDEO_SCALER_OPT_DITHER_METHOD = VIDEO_SCALER_OPT_DITHER_METHOD; 727 728 enum VIDEO_SIZE_RANGE = "(int) [ 1, max ]"; 729 alias GST_VIDEO_SIZE_RANGE = VIDEO_SIZE_RANGE; 730 731 enum VIDEO_TILE_TYPE_MASK = 65535; 732 alias GST_VIDEO_TILE_TYPE_MASK = VIDEO_TILE_TYPE_MASK; 733 734 enum VIDEO_TILE_TYPE_SHIFT = 16; 735 alias GST_VIDEO_TILE_TYPE_SHIFT = VIDEO_TILE_TYPE_SHIFT; 736 737 enum VIDEO_TILE_X_TILES_MASK = 65535; 738 alias GST_VIDEO_TILE_X_TILES_MASK = VIDEO_TILE_X_TILES_MASK; 739 740 enum VIDEO_TILE_Y_TILES_SHIFT = 16; 741 alias GST_VIDEO_TILE_Y_TILES_SHIFT = VIDEO_TILE_Y_TILES_SHIFT;