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;