1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
4// DO NOT EDIT
5
6#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
7#![allow(
8 clippy::approx_constant,
9 clippy::type_complexity,
10 clippy::unreadable_literal,
11 clippy::upper_case_acronyms
12)]
13#![cfg_attr(docsrs, feature(doc_cfg))]
14
15#[allow(unused_imports)]
16use libc::{
17 c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
18 intptr_t, size_t, ssize_t, uintptr_t, FILE,
19};
20
21#[allow(unused_imports)]
22use glib::{gboolean, gconstpointer, gpointer, GType};
23
24// Enums
25pub type GstColorBalanceType = c_int;
26pub const GST_COLOR_BALANCE_HARDWARE: GstColorBalanceType = 0;
27pub const GST_COLOR_BALANCE_SOFTWARE: GstColorBalanceType = 1;
28
29pub type GstNavigationCommand = c_int;
30pub const GST_NAVIGATION_COMMAND_INVALID: GstNavigationCommand = 0;
31pub const GST_NAVIGATION_COMMAND_MENU1: GstNavigationCommand = 1;
32pub const GST_NAVIGATION_COMMAND_MENU2: GstNavigationCommand = 2;
33pub const GST_NAVIGATION_COMMAND_MENU3: GstNavigationCommand = 3;
34pub const GST_NAVIGATION_COMMAND_MENU4: GstNavigationCommand = 4;
35pub const GST_NAVIGATION_COMMAND_MENU5: GstNavigationCommand = 5;
36pub const GST_NAVIGATION_COMMAND_MENU6: GstNavigationCommand = 6;
37pub const GST_NAVIGATION_COMMAND_MENU7: GstNavigationCommand = 7;
38pub const GST_NAVIGATION_COMMAND_LEFT: GstNavigationCommand = 20;
39pub const GST_NAVIGATION_COMMAND_RIGHT: GstNavigationCommand = 21;
40pub const GST_NAVIGATION_COMMAND_UP: GstNavigationCommand = 22;
41pub const GST_NAVIGATION_COMMAND_DOWN: GstNavigationCommand = 23;
42pub const GST_NAVIGATION_COMMAND_ACTIVATE: GstNavigationCommand = 24;
43pub const GST_NAVIGATION_COMMAND_PREV_ANGLE: GstNavigationCommand = 30;
44pub const GST_NAVIGATION_COMMAND_NEXT_ANGLE: GstNavigationCommand = 31;
45
46pub type GstNavigationEventType = c_int;
47pub const GST_NAVIGATION_EVENT_INVALID: GstNavigationEventType = 0;
48pub const GST_NAVIGATION_EVENT_KEY_PRESS: GstNavigationEventType = 1;
49pub const GST_NAVIGATION_EVENT_KEY_RELEASE: GstNavigationEventType = 2;
50pub const GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS: GstNavigationEventType = 3;
51pub const GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE: GstNavigationEventType = 4;
52pub const GST_NAVIGATION_EVENT_MOUSE_MOVE: GstNavigationEventType = 5;
53pub const GST_NAVIGATION_EVENT_COMMAND: GstNavigationEventType = 6;
54#[cfg(feature = "v1_18")]
55#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
56pub const GST_NAVIGATION_EVENT_MOUSE_SCROLL: GstNavigationEventType = 7;
57#[cfg(feature = "v1_22")]
58#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
59pub const GST_NAVIGATION_EVENT_TOUCH_DOWN: GstNavigationEventType = 8;
60#[cfg(feature = "v1_22")]
61#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
62pub const GST_NAVIGATION_EVENT_TOUCH_MOTION: GstNavigationEventType = 9;
63#[cfg(feature = "v1_22")]
64#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
65pub const GST_NAVIGATION_EVENT_TOUCH_UP: GstNavigationEventType = 10;
66#[cfg(feature = "v1_22")]
67#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
68pub const GST_NAVIGATION_EVENT_TOUCH_FRAME: GstNavigationEventType = 11;
69#[cfg(feature = "v1_22")]
70#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
71pub const GST_NAVIGATION_EVENT_TOUCH_CANCEL: GstNavigationEventType = 12;
72
73pub type GstNavigationMessageType = c_int;
74pub const GST_NAVIGATION_MESSAGE_INVALID: GstNavigationMessageType = 0;
75pub const GST_NAVIGATION_MESSAGE_MOUSE_OVER: GstNavigationMessageType = 1;
76pub const GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED: GstNavigationMessageType = 2;
77pub const GST_NAVIGATION_MESSAGE_ANGLES_CHANGED: GstNavigationMessageType = 3;
78pub const GST_NAVIGATION_MESSAGE_EVENT: GstNavigationMessageType = 4;
79
80pub type GstNavigationQueryType = c_int;
81pub const GST_NAVIGATION_QUERY_INVALID: GstNavigationQueryType = 0;
82pub const GST_NAVIGATION_QUERY_COMMANDS: GstNavigationQueryType = 1;
83pub const GST_NAVIGATION_QUERY_ANGLES: GstNavigationQueryType = 2;
84
85pub type GstVideoAFDSpec = c_int;
86pub const GST_VIDEO_AFD_SPEC_DVB_ETSI: GstVideoAFDSpec = 0;
87pub const GST_VIDEO_AFD_SPEC_ATSC_A53: GstVideoAFDSpec = 1;
88pub const GST_VIDEO_AFD_SPEC_SMPTE_ST2016_1: GstVideoAFDSpec = 2;
89
90pub type GstVideoAFDValue = c_int;
91pub const GST_VIDEO_AFD_UNAVAILABLE: GstVideoAFDValue = 0;
92pub const GST_VIDEO_AFD_16_9_TOP_ALIGNED: GstVideoAFDValue = 2;
93pub const GST_VIDEO_AFD_14_9_TOP_ALIGNED: GstVideoAFDValue = 3;
94pub const GST_VIDEO_AFD_GREATER_THAN_16_9: GstVideoAFDValue = 4;
95pub const GST_VIDEO_AFD_4_3_FULL_16_9_FULL: GstVideoAFDValue = 8;
96pub const GST_VIDEO_AFD_4_3_FULL_4_3_PILLAR: GstVideoAFDValue = 9;
97pub const GST_VIDEO_AFD_16_9_LETTER_16_9_FULL: GstVideoAFDValue = 10;
98pub const GST_VIDEO_AFD_14_9_LETTER_14_9_PILLAR: GstVideoAFDValue = 11;
99pub const GST_VIDEO_AFD_4_3_FULL_14_9_CENTER: GstVideoAFDValue = 13;
100pub const GST_VIDEO_AFD_16_9_LETTER_14_9_CENTER: GstVideoAFDValue = 14;
101pub const GST_VIDEO_AFD_16_9_LETTER_4_3_CENTER: GstVideoAFDValue = 15;
102
103pub type GstVideoAlphaMode = c_int;
104pub const GST_VIDEO_ALPHA_MODE_COPY: GstVideoAlphaMode = 0;
105pub const GST_VIDEO_ALPHA_MODE_SET: GstVideoAlphaMode = 1;
106pub const GST_VIDEO_ALPHA_MODE_MULT: GstVideoAlphaMode = 2;
107
108pub type GstVideoAncillaryDID = c_int;
109pub const GST_VIDEO_ANCILLARY_DID_UNDEFINED: GstVideoAncillaryDID = 0;
110pub const GST_VIDEO_ANCILLARY_DID_DELETION: GstVideoAncillaryDID = 128;
111pub const GST_VIDEO_ANCILLARY_DID_HANC_3G_AUDIO_DATA_FIRST: GstVideoAncillaryDID = 160;
112pub const GST_VIDEO_ANCILLARY_DID_HANC_3G_AUDIO_DATA_LAST: GstVideoAncillaryDID = 167;
113pub const GST_VIDEO_ANCILLARY_DID_HANC_HDTV_AUDIO_DATA_FIRST: GstVideoAncillaryDID = 224;
114pub const GST_VIDEO_ANCILLARY_DID_HANC_HDTV_AUDIO_DATA_LAST: GstVideoAncillaryDID = 231;
115pub const GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_1_FIRST: GstVideoAncillaryDID = 236;
116pub const GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_1_LAST: GstVideoAncillaryDID = 239;
117pub const GST_VIDEO_ANCILLARY_DID_CAMERA_POSITION: GstVideoAncillaryDID = 240;
118pub const GST_VIDEO_ANCILLARY_DID_HANC_ERROR_DETECTION: GstVideoAncillaryDID = 244;
119pub const GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_2_FIRST: GstVideoAncillaryDID = 248;
120pub const GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_2_LAST: GstVideoAncillaryDID = 255;
121
122pub type GstVideoAncillaryDID16 = c_int;
123pub const GST_VIDEO_ANCILLARY_DID16_S334_EIA_708: GstVideoAncillaryDID16 = 24833;
124pub const GST_VIDEO_ANCILLARY_DID16_S334_EIA_608: GstVideoAncillaryDID16 = 24834;
125pub const GST_VIDEO_ANCILLARY_DID16_S2016_3_AFD_BAR: GstVideoAncillaryDID16 = 16645;
126
127pub type GstVideoCaptionType = c_int;
128pub const GST_VIDEO_CAPTION_TYPE_UNKNOWN: GstVideoCaptionType = 0;
129pub const GST_VIDEO_CAPTION_TYPE_CEA608_RAW: GstVideoCaptionType = 1;
130pub const GST_VIDEO_CAPTION_TYPE_CEA608_S334_1A: GstVideoCaptionType = 2;
131pub const GST_VIDEO_CAPTION_TYPE_CEA708_RAW: GstVideoCaptionType = 3;
132pub const GST_VIDEO_CAPTION_TYPE_CEA708_CDP: GstVideoCaptionType = 4;
133
134pub type GstVideoChromaMethod = c_int;
135pub const GST_VIDEO_CHROMA_METHOD_NEAREST: GstVideoChromaMethod = 0;
136pub const GST_VIDEO_CHROMA_METHOD_LINEAR: GstVideoChromaMethod = 1;
137
138pub type GstVideoChromaMode = c_int;
139pub const GST_VIDEO_CHROMA_MODE_FULL: GstVideoChromaMode = 0;
140pub const GST_VIDEO_CHROMA_MODE_UPSAMPLE_ONLY: GstVideoChromaMode = 1;
141pub const GST_VIDEO_CHROMA_MODE_DOWNSAMPLE_ONLY: GstVideoChromaMode = 2;
142pub const GST_VIDEO_CHROMA_MODE_NONE: GstVideoChromaMode = 3;
143
144pub type GstVideoColorMatrix = c_int;
145pub const GST_VIDEO_COLOR_MATRIX_UNKNOWN: GstVideoColorMatrix = 0;
146pub const GST_VIDEO_COLOR_MATRIX_RGB: GstVideoColorMatrix = 1;
147pub const GST_VIDEO_COLOR_MATRIX_FCC: GstVideoColorMatrix = 2;
148pub const GST_VIDEO_COLOR_MATRIX_BT709: GstVideoColorMatrix = 3;
149pub const GST_VIDEO_COLOR_MATRIX_BT601: GstVideoColorMatrix = 4;
150pub const GST_VIDEO_COLOR_MATRIX_SMPTE240M: GstVideoColorMatrix = 5;
151pub const GST_VIDEO_COLOR_MATRIX_BT2020: GstVideoColorMatrix = 6;
152
153pub type GstVideoColorPrimaries = c_int;
154pub const GST_VIDEO_COLOR_PRIMARIES_UNKNOWN: GstVideoColorPrimaries = 0;
155pub const GST_VIDEO_COLOR_PRIMARIES_BT709: GstVideoColorPrimaries = 1;
156pub const GST_VIDEO_COLOR_PRIMARIES_BT470M: GstVideoColorPrimaries = 2;
157pub const GST_VIDEO_COLOR_PRIMARIES_BT470BG: GstVideoColorPrimaries = 3;
158pub const GST_VIDEO_COLOR_PRIMARIES_SMPTE170M: GstVideoColorPrimaries = 4;
159pub const GST_VIDEO_COLOR_PRIMARIES_SMPTE240M: GstVideoColorPrimaries = 5;
160pub const GST_VIDEO_COLOR_PRIMARIES_FILM: GstVideoColorPrimaries = 6;
161pub const GST_VIDEO_COLOR_PRIMARIES_BT2020: GstVideoColorPrimaries = 7;
162pub const GST_VIDEO_COLOR_PRIMARIES_ADOBERGB: GstVideoColorPrimaries = 8;
163pub const GST_VIDEO_COLOR_PRIMARIES_SMPTEST428: GstVideoColorPrimaries = 9;
164pub const GST_VIDEO_COLOR_PRIMARIES_SMPTERP431: GstVideoColorPrimaries = 10;
165pub const GST_VIDEO_COLOR_PRIMARIES_SMPTEEG432: GstVideoColorPrimaries = 11;
166pub const GST_VIDEO_COLOR_PRIMARIES_EBU3213: GstVideoColorPrimaries = 12;
167
168pub type GstVideoColorRange = c_int;
169pub const GST_VIDEO_COLOR_RANGE_UNKNOWN: GstVideoColorRange = 0;
170pub const GST_VIDEO_COLOR_RANGE_0_255: GstVideoColorRange = 1;
171pub const GST_VIDEO_COLOR_RANGE_16_235: GstVideoColorRange = 2;
172
173pub type GstVideoDitherMethod = c_int;
174pub const GST_VIDEO_DITHER_NONE: GstVideoDitherMethod = 0;
175pub const GST_VIDEO_DITHER_VERTERR: GstVideoDitherMethod = 1;
176pub const GST_VIDEO_DITHER_FLOYD_STEINBERG: GstVideoDitherMethod = 2;
177pub const GST_VIDEO_DITHER_SIERRA_LITE: GstVideoDitherMethod = 3;
178pub const GST_VIDEO_DITHER_BAYER: GstVideoDitherMethod = 4;
179
180pub type GstVideoFieldOrder = c_int;
181pub const GST_VIDEO_FIELD_ORDER_UNKNOWN: GstVideoFieldOrder = 0;
182pub const GST_VIDEO_FIELD_ORDER_TOP_FIELD_FIRST: GstVideoFieldOrder = 1;
183pub const GST_VIDEO_FIELD_ORDER_BOTTOM_FIELD_FIRST: GstVideoFieldOrder = 2;
184
185pub type GstVideoFormat = c_int;
186pub const GST_VIDEO_FORMAT_UNKNOWN: GstVideoFormat = 0;
187pub const GST_VIDEO_FORMAT_ENCODED: GstVideoFormat = 1;
188pub const GST_VIDEO_FORMAT_I420: GstVideoFormat = 2;
189pub const GST_VIDEO_FORMAT_YV12: GstVideoFormat = 3;
190pub const GST_VIDEO_FORMAT_YUY2: GstVideoFormat = 4;
191pub const GST_VIDEO_FORMAT_UYVY: GstVideoFormat = 5;
192pub const GST_VIDEO_FORMAT_AYUV: GstVideoFormat = 6;
193pub const GST_VIDEO_FORMAT_RGBx: GstVideoFormat = 7;
194pub const GST_VIDEO_FORMAT_BGRx: GstVideoFormat = 8;
195pub const GST_VIDEO_FORMAT_xRGB: GstVideoFormat = 9;
196pub const GST_VIDEO_FORMAT_xBGR: GstVideoFormat = 10;
197pub const GST_VIDEO_FORMAT_RGBA: GstVideoFormat = 11;
198pub const GST_VIDEO_FORMAT_BGRA: GstVideoFormat = 12;
199pub const GST_VIDEO_FORMAT_ARGB: GstVideoFormat = 13;
200pub const GST_VIDEO_FORMAT_ABGR: GstVideoFormat = 14;
201pub const GST_VIDEO_FORMAT_RGB: GstVideoFormat = 15;
202pub const GST_VIDEO_FORMAT_BGR: GstVideoFormat = 16;
203pub const GST_VIDEO_FORMAT_Y41B: GstVideoFormat = 17;
204pub const GST_VIDEO_FORMAT_Y42B: GstVideoFormat = 18;
205pub const GST_VIDEO_FORMAT_YVYU: GstVideoFormat = 19;
206pub const GST_VIDEO_FORMAT_Y444: GstVideoFormat = 20;
207pub const GST_VIDEO_FORMAT_v210: GstVideoFormat = 21;
208pub const GST_VIDEO_FORMAT_v216: GstVideoFormat = 22;
209pub const GST_VIDEO_FORMAT_NV12: GstVideoFormat = 23;
210pub const GST_VIDEO_FORMAT_NV21: GstVideoFormat = 24;
211pub const GST_VIDEO_FORMAT_GRAY8: GstVideoFormat = 25;
212pub const GST_VIDEO_FORMAT_GRAY16_BE: GstVideoFormat = 26;
213pub const GST_VIDEO_FORMAT_GRAY16_LE: GstVideoFormat = 27;
214pub const GST_VIDEO_FORMAT_v308: GstVideoFormat = 28;
215pub const GST_VIDEO_FORMAT_RGB16: GstVideoFormat = 29;
216pub const GST_VIDEO_FORMAT_BGR16: GstVideoFormat = 30;
217pub const GST_VIDEO_FORMAT_RGB15: GstVideoFormat = 31;
218pub const GST_VIDEO_FORMAT_BGR15: GstVideoFormat = 32;
219pub const GST_VIDEO_FORMAT_UYVP: GstVideoFormat = 33;
220pub const GST_VIDEO_FORMAT_A420: GstVideoFormat = 34;
221pub const GST_VIDEO_FORMAT_RGB8P: GstVideoFormat = 35;
222pub const GST_VIDEO_FORMAT_YUV9: GstVideoFormat = 36;
223pub const GST_VIDEO_FORMAT_YVU9: GstVideoFormat = 37;
224pub const GST_VIDEO_FORMAT_IYU1: GstVideoFormat = 38;
225pub const GST_VIDEO_FORMAT_ARGB64: GstVideoFormat = 39;
226pub const GST_VIDEO_FORMAT_AYUV64: GstVideoFormat = 40;
227pub const GST_VIDEO_FORMAT_r210: GstVideoFormat = 41;
228pub const GST_VIDEO_FORMAT_I420_10BE: GstVideoFormat = 42;
229pub const GST_VIDEO_FORMAT_I420_10LE: GstVideoFormat = 43;
230pub const GST_VIDEO_FORMAT_I422_10BE: GstVideoFormat = 44;
231pub const GST_VIDEO_FORMAT_I422_10LE: GstVideoFormat = 45;
232pub const GST_VIDEO_FORMAT_Y444_10BE: GstVideoFormat = 46;
233pub const GST_VIDEO_FORMAT_Y444_10LE: GstVideoFormat = 47;
234pub const GST_VIDEO_FORMAT_GBR: GstVideoFormat = 48;
235pub const GST_VIDEO_FORMAT_GBR_10BE: GstVideoFormat = 49;
236pub const GST_VIDEO_FORMAT_GBR_10LE: GstVideoFormat = 50;
237pub const GST_VIDEO_FORMAT_NV16: GstVideoFormat = 51;
238pub const GST_VIDEO_FORMAT_NV24: GstVideoFormat = 52;
239pub const GST_VIDEO_FORMAT_NV12_64Z32: GstVideoFormat = 53;
240pub const GST_VIDEO_FORMAT_A420_10BE: GstVideoFormat = 54;
241pub const GST_VIDEO_FORMAT_A420_10LE: GstVideoFormat = 55;
242pub const GST_VIDEO_FORMAT_A422_10BE: GstVideoFormat = 56;
243pub const GST_VIDEO_FORMAT_A422_10LE: GstVideoFormat = 57;
244pub const GST_VIDEO_FORMAT_A444_10BE: GstVideoFormat = 58;
245pub const GST_VIDEO_FORMAT_A444_10LE: GstVideoFormat = 59;
246pub const GST_VIDEO_FORMAT_NV61: GstVideoFormat = 60;
247pub const GST_VIDEO_FORMAT_P010_10BE: GstVideoFormat = 61;
248pub const GST_VIDEO_FORMAT_P010_10LE: GstVideoFormat = 62;
249pub const GST_VIDEO_FORMAT_IYU2: GstVideoFormat = 63;
250pub const GST_VIDEO_FORMAT_VYUY: GstVideoFormat = 64;
251pub const GST_VIDEO_FORMAT_GBRA: GstVideoFormat = 65;
252pub const GST_VIDEO_FORMAT_GBRA_10BE: GstVideoFormat = 66;
253pub const GST_VIDEO_FORMAT_GBRA_10LE: GstVideoFormat = 67;
254pub const GST_VIDEO_FORMAT_GBR_12BE: GstVideoFormat = 68;
255pub const GST_VIDEO_FORMAT_GBR_12LE: GstVideoFormat = 69;
256pub const GST_VIDEO_FORMAT_GBRA_12BE: GstVideoFormat = 70;
257pub const GST_VIDEO_FORMAT_GBRA_12LE: GstVideoFormat = 71;
258pub const GST_VIDEO_FORMAT_I420_12BE: GstVideoFormat = 72;
259pub const GST_VIDEO_FORMAT_I420_12LE: GstVideoFormat = 73;
260pub const GST_VIDEO_FORMAT_I422_12BE: GstVideoFormat = 74;
261pub const GST_VIDEO_FORMAT_I422_12LE: GstVideoFormat = 75;
262pub const GST_VIDEO_FORMAT_Y444_12BE: GstVideoFormat = 76;
263pub const GST_VIDEO_FORMAT_Y444_12LE: GstVideoFormat = 77;
264pub const GST_VIDEO_FORMAT_GRAY10_LE32: GstVideoFormat = 78;
265pub const GST_VIDEO_FORMAT_NV12_10LE32: GstVideoFormat = 79;
266pub const GST_VIDEO_FORMAT_NV16_10LE32: GstVideoFormat = 80;
267pub const GST_VIDEO_FORMAT_NV12_10LE40: GstVideoFormat = 81;
268pub const GST_VIDEO_FORMAT_Y210: GstVideoFormat = 82;
269pub const GST_VIDEO_FORMAT_Y410: GstVideoFormat = 83;
270pub const GST_VIDEO_FORMAT_VUYA: GstVideoFormat = 84;
271pub const GST_VIDEO_FORMAT_BGR10A2_LE: GstVideoFormat = 85;
272pub const GST_VIDEO_FORMAT_RGB10A2_LE: GstVideoFormat = 86;
273pub const GST_VIDEO_FORMAT_Y444_16BE: GstVideoFormat = 87;
274pub const GST_VIDEO_FORMAT_Y444_16LE: GstVideoFormat = 88;
275pub const GST_VIDEO_FORMAT_P016_BE: GstVideoFormat = 89;
276pub const GST_VIDEO_FORMAT_P016_LE: GstVideoFormat = 90;
277pub const GST_VIDEO_FORMAT_P012_BE: GstVideoFormat = 91;
278pub const GST_VIDEO_FORMAT_P012_LE: GstVideoFormat = 92;
279pub const GST_VIDEO_FORMAT_Y212_BE: GstVideoFormat = 93;
280pub const GST_VIDEO_FORMAT_Y212_LE: GstVideoFormat = 94;
281pub const GST_VIDEO_FORMAT_Y412_BE: GstVideoFormat = 95;
282pub const GST_VIDEO_FORMAT_Y412_LE: GstVideoFormat = 96;
283#[cfg(feature = "v1_18")]
284#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
285pub const GST_VIDEO_FORMAT_NV12_4L4: GstVideoFormat = 97;
286#[cfg(feature = "v1_18")]
287#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
288pub const GST_VIDEO_FORMAT_NV12_32L32: GstVideoFormat = 98;
289#[cfg(feature = "v1_20")]
290#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
291pub const GST_VIDEO_FORMAT_RGBP: GstVideoFormat = 99;
292#[cfg(feature = "v1_20")]
293#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
294pub const GST_VIDEO_FORMAT_BGRP: GstVideoFormat = 100;
295#[cfg(feature = "v1_20")]
296#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
297pub const GST_VIDEO_FORMAT_AV12: GstVideoFormat = 101;
298#[cfg(feature = "v1_20")]
299#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
300pub const GST_VIDEO_FORMAT_ARGB64_LE: GstVideoFormat = 102;
301#[cfg(feature = "v1_20")]
302#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
303pub const GST_VIDEO_FORMAT_ARGB64_BE: GstVideoFormat = 103;
304#[cfg(feature = "v1_20")]
305#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
306pub const GST_VIDEO_FORMAT_RGBA64_LE: GstVideoFormat = 104;
307#[cfg(feature = "v1_20")]
308#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
309pub const GST_VIDEO_FORMAT_RGBA64_BE: GstVideoFormat = 105;
310#[cfg(feature = "v1_20")]
311#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
312pub const GST_VIDEO_FORMAT_BGRA64_LE: GstVideoFormat = 106;
313#[cfg(feature = "v1_20")]
314#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
315pub const GST_VIDEO_FORMAT_BGRA64_BE: GstVideoFormat = 107;
316#[cfg(feature = "v1_20")]
317#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
318pub const GST_VIDEO_FORMAT_ABGR64_LE: GstVideoFormat = 108;
319#[cfg(feature = "v1_20")]
320#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
321pub const GST_VIDEO_FORMAT_ABGR64_BE: GstVideoFormat = 109;
322#[cfg(feature = "v1_22")]
323#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
324pub const GST_VIDEO_FORMAT_NV12_16L32S: GstVideoFormat = 110;
325#[cfg(feature = "v1_22")]
326#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
327pub const GST_VIDEO_FORMAT_NV12_8L128: GstVideoFormat = 111;
328#[cfg(feature = "v1_22")]
329#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
330pub const GST_VIDEO_FORMAT_NV12_10BE_8L128: GstVideoFormat = 112;
331#[cfg(feature = "v1_24")]
332#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
333pub const GST_VIDEO_FORMAT_NV12_10LE40_4L4: GstVideoFormat = 113;
334#[cfg(feature = "v1_24")]
335#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
336pub const GST_VIDEO_FORMAT_DMA_DRM: GstVideoFormat = 114;
337#[cfg(feature = "v1_24")]
338#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
339pub const GST_VIDEO_FORMAT_MT2110T: GstVideoFormat = 115;
340#[cfg(feature = "v1_24")]
341#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
342pub const GST_VIDEO_FORMAT_MT2110R: GstVideoFormat = 116;
343#[cfg(feature = "v1_24")]
344#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
345pub const GST_VIDEO_FORMAT_A422: GstVideoFormat = 117;
346#[cfg(feature = "v1_24")]
347#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
348pub const GST_VIDEO_FORMAT_A444: GstVideoFormat = 118;
349#[cfg(feature = "v1_24")]
350#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
351pub const GST_VIDEO_FORMAT_A444_12LE: GstVideoFormat = 119;
352#[cfg(feature = "v1_24")]
353#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
354pub const GST_VIDEO_FORMAT_A444_12BE: GstVideoFormat = 120;
355#[cfg(feature = "v1_24")]
356#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
357pub const GST_VIDEO_FORMAT_A422_12LE: GstVideoFormat = 121;
358#[cfg(feature = "v1_24")]
359#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
360pub const GST_VIDEO_FORMAT_A422_12BE: GstVideoFormat = 122;
361#[cfg(feature = "v1_24")]
362#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
363pub const GST_VIDEO_FORMAT_A420_12LE: GstVideoFormat = 123;
364#[cfg(feature = "v1_24")]
365#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
366pub const GST_VIDEO_FORMAT_A420_12BE: GstVideoFormat = 124;
367#[cfg(feature = "v1_24")]
368#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
369pub const GST_VIDEO_FORMAT_A444_16LE: GstVideoFormat = 125;
370#[cfg(feature = "v1_24")]
371#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
372pub const GST_VIDEO_FORMAT_A444_16BE: GstVideoFormat = 126;
373#[cfg(feature = "v1_24")]
374#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
375pub const GST_VIDEO_FORMAT_A422_16LE: GstVideoFormat = 127;
376#[cfg(feature = "v1_24")]
377#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
378pub const GST_VIDEO_FORMAT_A422_16BE: GstVideoFormat = 128;
379#[cfg(feature = "v1_24")]
380#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
381pub const GST_VIDEO_FORMAT_A420_16LE: GstVideoFormat = 129;
382#[cfg(feature = "v1_24")]
383#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
384pub const GST_VIDEO_FORMAT_A420_16BE: GstVideoFormat = 130;
385#[cfg(feature = "v1_24")]
386#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
387pub const GST_VIDEO_FORMAT_GBR_16LE: GstVideoFormat = 131;
388#[cfg(feature = "v1_24")]
389#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
390pub const GST_VIDEO_FORMAT_GBR_16BE: GstVideoFormat = 132;
391
392pub type GstVideoGLTextureOrientation = c_int;
393pub const GST_VIDEO_GL_TEXTURE_ORIENTATION_X_NORMAL_Y_NORMAL: GstVideoGLTextureOrientation = 0;
394pub const GST_VIDEO_GL_TEXTURE_ORIENTATION_X_NORMAL_Y_FLIP: GstVideoGLTextureOrientation = 1;
395pub const GST_VIDEO_GL_TEXTURE_ORIENTATION_X_FLIP_Y_NORMAL: GstVideoGLTextureOrientation = 2;
396pub const GST_VIDEO_GL_TEXTURE_ORIENTATION_X_FLIP_Y_FLIP: GstVideoGLTextureOrientation = 3;
397
398pub type GstVideoGLTextureType = c_int;
399pub const GST_VIDEO_GL_TEXTURE_TYPE_LUMINANCE: GstVideoGLTextureType = 0;
400pub const GST_VIDEO_GL_TEXTURE_TYPE_LUMINANCE_ALPHA: GstVideoGLTextureType = 1;
401pub const GST_VIDEO_GL_TEXTURE_TYPE_RGB16: GstVideoGLTextureType = 2;
402pub const GST_VIDEO_GL_TEXTURE_TYPE_RGB: GstVideoGLTextureType = 3;
403pub const GST_VIDEO_GL_TEXTURE_TYPE_RGBA: GstVideoGLTextureType = 4;
404pub const GST_VIDEO_GL_TEXTURE_TYPE_R: GstVideoGLTextureType = 5;
405pub const GST_VIDEO_GL_TEXTURE_TYPE_RG: GstVideoGLTextureType = 6;
406
407pub type GstVideoGammaMode = c_int;
408pub const GST_VIDEO_GAMMA_MODE_NONE: GstVideoGammaMode = 0;
409pub const GST_VIDEO_GAMMA_MODE_REMAP: GstVideoGammaMode = 1;
410
411pub type GstVideoInterlaceMode = c_int;
412pub const GST_VIDEO_INTERLACE_MODE_PROGRESSIVE: GstVideoInterlaceMode = 0;
413pub const GST_VIDEO_INTERLACE_MODE_INTERLEAVED: GstVideoInterlaceMode = 1;
414pub const GST_VIDEO_INTERLACE_MODE_MIXED: GstVideoInterlaceMode = 2;
415pub const GST_VIDEO_INTERLACE_MODE_FIELDS: GstVideoInterlaceMode = 3;
416pub const GST_VIDEO_INTERLACE_MODE_ALTERNATE: GstVideoInterlaceMode = 4;
417
418pub type GstVideoMatrixMode = c_int;
419pub const GST_VIDEO_MATRIX_MODE_FULL: GstVideoMatrixMode = 0;
420pub const GST_VIDEO_MATRIX_MODE_INPUT_ONLY: GstVideoMatrixMode = 1;
421pub const GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY: GstVideoMatrixMode = 2;
422pub const GST_VIDEO_MATRIX_MODE_NONE: GstVideoMatrixMode = 3;
423
424pub type GstVideoMultiviewFramePacking = c_int;
425pub const GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE: GstVideoMultiviewFramePacking = -1;
426pub const GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO: GstVideoMultiviewFramePacking = 0;
427pub const GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT: GstVideoMultiviewFramePacking = 1;
428pub const GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT: GstVideoMultiviewFramePacking = 2;
429pub const GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE: GstVideoMultiviewFramePacking = 3;
430pub const GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX: GstVideoMultiviewFramePacking =
431 4;
432pub const GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED: GstVideoMultiviewFramePacking = 5;
433pub const GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED: GstVideoMultiviewFramePacking = 6;
434pub const GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM: GstVideoMultiviewFramePacking = 7;
435pub const GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD: GstVideoMultiviewFramePacking = 8;
436
437pub type GstVideoMultiviewMode = c_int;
438pub const GST_VIDEO_MULTIVIEW_MODE_NONE: GstVideoMultiviewMode = -1;
439pub const GST_VIDEO_MULTIVIEW_MODE_MONO: GstVideoMultiviewMode = 0;
440pub const GST_VIDEO_MULTIVIEW_MODE_LEFT: GstVideoMultiviewMode = 1;
441pub const GST_VIDEO_MULTIVIEW_MODE_RIGHT: GstVideoMultiviewMode = 2;
442pub const GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE: GstVideoMultiviewMode = 3;
443pub const GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX: GstVideoMultiviewMode = 4;
444pub const GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED: GstVideoMultiviewMode = 5;
445pub const GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED: GstVideoMultiviewMode = 6;
446pub const GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM: GstVideoMultiviewMode = 7;
447pub const GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD: GstVideoMultiviewMode = 8;
448pub const GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME: GstVideoMultiviewMode = 32;
449pub const GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME: GstVideoMultiviewMode = 33;
450pub const GST_VIDEO_MULTIVIEW_MODE_SEPARATED: GstVideoMultiviewMode = 34;
451
452pub type GstVideoOrientationMethod = c_int;
453pub const GST_VIDEO_ORIENTATION_IDENTITY: GstVideoOrientationMethod = 0;
454pub const GST_VIDEO_ORIENTATION_90R: GstVideoOrientationMethod = 1;
455pub const GST_VIDEO_ORIENTATION_180: GstVideoOrientationMethod = 2;
456pub const GST_VIDEO_ORIENTATION_90L: GstVideoOrientationMethod = 3;
457pub const GST_VIDEO_ORIENTATION_HORIZ: GstVideoOrientationMethod = 4;
458pub const GST_VIDEO_ORIENTATION_VERT: GstVideoOrientationMethod = 5;
459pub const GST_VIDEO_ORIENTATION_UL_LR: GstVideoOrientationMethod = 6;
460pub const GST_VIDEO_ORIENTATION_UR_LL: GstVideoOrientationMethod = 7;
461pub const GST_VIDEO_ORIENTATION_AUTO: GstVideoOrientationMethod = 8;
462pub const GST_VIDEO_ORIENTATION_CUSTOM: GstVideoOrientationMethod = 9;
463
464pub type GstVideoPrimariesMode = c_int;
465pub const GST_VIDEO_PRIMARIES_MODE_NONE: GstVideoPrimariesMode = 0;
466pub const GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY: GstVideoPrimariesMode = 1;
467pub const GST_VIDEO_PRIMARIES_MODE_FAST: GstVideoPrimariesMode = 2;
468
469pub type GstVideoResamplerMethod = c_int;
470pub const GST_VIDEO_RESAMPLER_METHOD_NEAREST: GstVideoResamplerMethod = 0;
471pub const GST_VIDEO_RESAMPLER_METHOD_LINEAR: GstVideoResamplerMethod = 1;
472pub const GST_VIDEO_RESAMPLER_METHOD_CUBIC: GstVideoResamplerMethod = 2;
473pub const GST_VIDEO_RESAMPLER_METHOD_SINC: GstVideoResamplerMethod = 3;
474pub const GST_VIDEO_RESAMPLER_METHOD_LANCZOS: GstVideoResamplerMethod = 4;
475
476pub type GstVideoTileMode = c_int;
477pub const GST_VIDEO_TILE_MODE_UNKNOWN: GstVideoTileMode = 0;
478pub const GST_VIDEO_TILE_MODE_ZFLIPZ_2X2: GstVideoTileMode = 65536;
479#[cfg(feature = "v1_18")]
480#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
481pub const GST_VIDEO_TILE_MODE_LINEAR: GstVideoTileMode = 131072;
482
483pub type GstVideoTileType = c_int;
484pub const GST_VIDEO_TILE_TYPE_INDEXED: GstVideoTileType = 0;
485
486pub type GstVideoTransferFunction = c_int;
487pub const GST_VIDEO_TRANSFER_UNKNOWN: GstVideoTransferFunction = 0;
488pub const GST_VIDEO_TRANSFER_GAMMA10: GstVideoTransferFunction = 1;
489pub const GST_VIDEO_TRANSFER_GAMMA18: GstVideoTransferFunction = 2;
490pub const GST_VIDEO_TRANSFER_GAMMA20: GstVideoTransferFunction = 3;
491pub const GST_VIDEO_TRANSFER_GAMMA22: GstVideoTransferFunction = 4;
492pub const GST_VIDEO_TRANSFER_BT709: GstVideoTransferFunction = 5;
493pub const GST_VIDEO_TRANSFER_SMPTE240M: GstVideoTransferFunction = 6;
494pub const GST_VIDEO_TRANSFER_SRGB: GstVideoTransferFunction = 7;
495pub const GST_VIDEO_TRANSFER_GAMMA28: GstVideoTransferFunction = 8;
496pub const GST_VIDEO_TRANSFER_LOG100: GstVideoTransferFunction = 9;
497pub const GST_VIDEO_TRANSFER_LOG316: GstVideoTransferFunction = 10;
498pub const GST_VIDEO_TRANSFER_BT2020_12: GstVideoTransferFunction = 11;
499pub const GST_VIDEO_TRANSFER_ADOBERGB: GstVideoTransferFunction = 12;
500pub const GST_VIDEO_TRANSFER_BT2020_10: GstVideoTransferFunction = 13;
501pub const GST_VIDEO_TRANSFER_SMPTE2084: GstVideoTransferFunction = 14;
502pub const GST_VIDEO_TRANSFER_ARIB_STD_B67: GstVideoTransferFunction = 15;
503#[cfg(feature = "v1_18")]
504#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
505pub const GST_VIDEO_TRANSFER_BT601: GstVideoTransferFunction = 16;
506
507pub type GstVideoVBIParserResult = c_int;
508pub const GST_VIDEO_VBI_PARSER_RESULT_DONE: GstVideoVBIParserResult = 0;
509pub const GST_VIDEO_VBI_PARSER_RESULT_OK: GstVideoVBIParserResult = 1;
510pub const GST_VIDEO_VBI_PARSER_RESULT_ERROR: GstVideoVBIParserResult = 2;
511
512// Constants
513pub const GST_BUFFER_POOL_OPTION_VIDEO_AFFINE_TRANSFORMATION_META: &[u8] =
514 b"GstBufferPoolOptionVideoAffineTransformation\0";
515pub const GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT: &[u8] = b"GstBufferPoolOptionVideoAlignment\0";
516pub const GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META: &[u8] =
517 b"GstBufferPoolOptionVideoGLTextureUploadMeta\0";
518pub const GST_BUFFER_POOL_OPTION_VIDEO_META: &[u8] = b"GstBufferPoolOptionVideoMeta\0";
519pub const GST_CAPS_FEATURE_FORMAT_INTERLACED: &[u8] = b"format:Interlaced\0";
520pub const GST_CAPS_FEATURE_META_GST_VIDEO_AFFINE_TRANSFORMATION_META: &[u8] =
521 b"meta:GstVideoAffineTransformation\0";
522pub const GST_CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META: &[u8] =
523 b"meta:GstVideoGLTextureUploadMeta\0";
524pub const GST_CAPS_FEATURE_META_GST_VIDEO_META: &[u8] = b"meta:GstVideoMeta\0";
525pub const GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION: &[u8] =
526 b"meta:GstVideoOverlayComposition\0";
527pub const GST_META_TAG_VIDEO_COLORSPACE_STR: &[u8] = b"colorspace\0";
528pub const GST_META_TAG_VIDEO_ORIENTATION_STR: &[u8] = b"orientation\0";
529pub const GST_META_TAG_VIDEO_SIZE_STR: &[u8] = b"size\0";
530pub const GST_META_TAG_VIDEO_STR: &[u8] = b"video\0";
531pub const GST_VIDEO_COLORIMETRY_BT2020: &[u8] = b"bt2020\0";
532pub const GST_VIDEO_COLORIMETRY_BT2020_10: &[u8] = b"bt2020-10\0";
533pub const GST_VIDEO_COLORIMETRY_BT2100_HLG: &[u8] = b"bt2100-hlg\0";
534pub const GST_VIDEO_COLORIMETRY_BT2100_PQ: &[u8] = b"bt2100-pq\0";
535pub const GST_VIDEO_COLORIMETRY_BT601: &[u8] = b"bt601\0";
536pub const GST_VIDEO_COLORIMETRY_BT709: &[u8] = b"bt709\0";
537pub const GST_VIDEO_COLORIMETRY_SMPTE240M: &[u8] = b"smpte240m\0";
538pub const GST_VIDEO_COLORIMETRY_SRGB: &[u8] = b"sRGB\0";
539pub const GST_VIDEO_COMP_A: c_int = 3;
540pub const GST_VIDEO_COMP_B: c_int = 2;
541pub const GST_VIDEO_COMP_G: c_int = 1;
542pub const GST_VIDEO_COMP_INDEX: c_int = 0;
543pub const GST_VIDEO_COMP_PALETTE: c_int = 1;
544pub const GST_VIDEO_COMP_R: c_int = 0;
545pub const GST_VIDEO_COMP_U: c_int = 1;
546pub const GST_VIDEO_COMP_V: c_int = 2;
547pub const GST_VIDEO_COMP_Y: c_int = 0;
548pub const GST_VIDEO_CONVERTER_OPT_ALPHA_MODE: &[u8] = b"GstVideoConverter.alpha-mode\0";
549pub const GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE: &[u8] = b"GstVideoConverter.alpha-value\0";
550pub const GST_VIDEO_CONVERTER_OPT_ASYNC_TASKS: &[u8] = b"GstVideoConverter.async-tasks\0";
551pub const GST_VIDEO_CONVERTER_OPT_BORDER_ARGB: &[u8] = b"GstVideoConverter.border-argb\0";
552pub const GST_VIDEO_CONVERTER_OPT_CHROMA_MODE: &[u8] = b"GstVideoConverter.chroma-mode\0";
553pub const GST_VIDEO_CONVERTER_OPT_CHROMA_RESAMPLER_METHOD: &[u8] =
554 b"GstVideoConverter.chroma-resampler-method\0";
555pub const GST_VIDEO_CONVERTER_OPT_DEST_HEIGHT: &[u8] = b"GstVideoConverter.dest-height\0";
556pub const GST_VIDEO_CONVERTER_OPT_DEST_WIDTH: &[u8] = b"GstVideoConverter.dest-width\0";
557pub const GST_VIDEO_CONVERTER_OPT_DEST_X: &[u8] = b"GstVideoConverter.dest-x\0";
558pub const GST_VIDEO_CONVERTER_OPT_DEST_Y: &[u8] = b"GstVideoConverter.dest-y\0";
559pub const GST_VIDEO_CONVERTER_OPT_DITHER_METHOD: &[u8] = b"GstVideoConverter.dither-method\0";
560pub const GST_VIDEO_CONVERTER_OPT_DITHER_QUANTIZATION: &[u8] =
561 b"GstVideoConverter.dither-quantization\0";
562pub const GST_VIDEO_CONVERTER_OPT_FILL_BORDER: &[u8] = b"GstVideoConverter.fill-border\0";
563pub const GST_VIDEO_CONVERTER_OPT_GAMMA_MODE: &[u8] = b"GstVideoConverter.gamma-mode\0";
564pub const GST_VIDEO_CONVERTER_OPT_MATRIX_MODE: &[u8] = b"GstVideoConverter.matrix-mode\0";
565pub const GST_VIDEO_CONVERTER_OPT_PRIMARIES_MODE: &[u8] = b"GstVideoConverter.primaries-mode\0";
566pub const GST_VIDEO_CONVERTER_OPT_RESAMPLER_METHOD: &[u8] = b"GstVideoConverter.resampler-method\0";
567pub const GST_VIDEO_CONVERTER_OPT_RESAMPLER_TAPS: &[u8] = b"GstVideoConverter.resampler-taps\0";
568pub const GST_VIDEO_CONVERTER_OPT_SRC_HEIGHT: &[u8] = b"GstVideoConverter.src-height\0";
569pub const GST_VIDEO_CONVERTER_OPT_SRC_WIDTH: &[u8] = b"GstVideoConverter.src-width\0";
570pub const GST_VIDEO_CONVERTER_OPT_SRC_X: &[u8] = b"GstVideoConverter.src-x\0";
571pub const GST_VIDEO_CONVERTER_OPT_SRC_Y: &[u8] = b"GstVideoConverter.src-y\0";
572pub const GST_VIDEO_CONVERTER_OPT_THREADS: &[u8] = b"GstVideoConverter.threads\0";
573pub const GST_VIDEO_DECODER_MAX_ERRORS: c_int = -1;
574pub const GST_VIDEO_DECODER_SINK_NAME: &[u8] = b"sink\0";
575pub const GST_VIDEO_DECODER_SRC_NAME: &[u8] = b"src\0";
576pub const GST_VIDEO_ENCODER_SINK_NAME: &[u8] = b"sink\0";
577pub const GST_VIDEO_ENCODER_SRC_NAME: &[u8] = b"src\0";
578pub const GST_VIDEO_FPS_RANGE: &[u8] = b"(fraction) [ 0, max ]\0";
579pub const GST_VIDEO_MAX_COMPONENTS: c_int = 4;
580pub const GST_VIDEO_MAX_PLANES: c_int = 4;
581pub const GST_VIDEO_RESAMPLER_OPT_CUBIC_B: &[u8] = b"GstVideoResampler.cubic-b\0";
582pub const GST_VIDEO_RESAMPLER_OPT_CUBIC_C: &[u8] = b"GstVideoResampler.cubic-c\0";
583pub const GST_VIDEO_RESAMPLER_OPT_ENVELOPE: &[u8] = b"GstVideoResampler.envelope\0";
584pub const GST_VIDEO_RESAMPLER_OPT_MAX_TAPS: &[u8] = b"GstVideoResampler.max-taps\0";
585pub const GST_VIDEO_RESAMPLER_OPT_SHARPEN: &[u8] = b"GstVideoResampler.sharpen\0";
586pub const GST_VIDEO_RESAMPLER_OPT_SHARPNESS: &[u8] = b"GstVideoResampler.sharpness\0";
587pub const GST_VIDEO_SCALER_OPT_DITHER_METHOD: &[u8] = b"GstVideoScaler.dither-method\0";
588pub const GST_VIDEO_SIZE_RANGE: &[u8] = b"(int) [ 1, max ]\0";
589pub const GST_VIDEO_TILE_TYPE_MASK: c_int = 65535;
590pub const GST_VIDEO_TILE_TYPE_SHIFT: c_int = 16;
591pub const GST_VIDEO_TILE_X_TILES_MASK: c_int = 65535;
592pub const GST_VIDEO_TILE_Y_TILES_SHIFT: c_int = 16;
593
594// Flags
595pub type GstNavigationModifierType = c_uint;
596pub const GST_NAVIGATION_MODIFIER_NONE: GstNavigationModifierType = 0;
597pub const GST_NAVIGATION_MODIFIER_SHIFT_MASK: GstNavigationModifierType = 1;
598pub const GST_NAVIGATION_MODIFIER_LOCK_MASK: GstNavigationModifierType = 2;
599pub const GST_NAVIGATION_MODIFIER_CONTROL_MASK: GstNavigationModifierType = 4;
600pub const GST_NAVIGATION_MODIFIER_MOD1_MASK: GstNavigationModifierType = 8;
601pub const GST_NAVIGATION_MODIFIER_MOD2_MASK: GstNavigationModifierType = 16;
602pub const GST_NAVIGATION_MODIFIER_MOD3_MASK: GstNavigationModifierType = 32;
603pub const GST_NAVIGATION_MODIFIER_MOD4_MASK: GstNavigationModifierType = 64;
604pub const GST_NAVIGATION_MODIFIER_MOD5_MASK: GstNavigationModifierType = 128;
605pub const GST_NAVIGATION_MODIFIER_BUTTON1_MASK: GstNavigationModifierType = 256;
606pub const GST_NAVIGATION_MODIFIER_BUTTON2_MASK: GstNavigationModifierType = 512;
607pub const GST_NAVIGATION_MODIFIER_BUTTON3_MASK: GstNavigationModifierType = 1024;
608pub const GST_NAVIGATION_MODIFIER_BUTTON4_MASK: GstNavigationModifierType = 2048;
609pub const GST_NAVIGATION_MODIFIER_BUTTON5_MASK: GstNavigationModifierType = 4096;
610pub const GST_NAVIGATION_MODIFIER_SUPER_MASK: GstNavigationModifierType = 67108864;
611pub const GST_NAVIGATION_MODIFIER_HYPER_MASK: GstNavigationModifierType = 134217728;
612pub const GST_NAVIGATION_MODIFIER_META_MASK: GstNavigationModifierType = 268435456;
613pub const GST_NAVIGATION_MODIFIER_MASK: GstNavigationModifierType = 469770239;
614
615pub type GstVideoBufferFlags = c_uint;
616pub const GST_VIDEO_BUFFER_FLAG_INTERLACED: GstVideoBufferFlags = 1048576;
617pub const GST_VIDEO_BUFFER_FLAG_TFF: GstVideoBufferFlags = 2097152;
618pub const GST_VIDEO_BUFFER_FLAG_RFF: GstVideoBufferFlags = 4194304;
619pub const GST_VIDEO_BUFFER_FLAG_ONEFIELD: GstVideoBufferFlags = 8388608;
620pub const GST_VIDEO_BUFFER_FLAG_MULTIPLE_VIEW: GstVideoBufferFlags = 16777216;
621pub const GST_VIDEO_BUFFER_FLAG_FIRST_IN_BUNDLE: GstVideoBufferFlags = 33554432;
622pub const GST_VIDEO_BUFFER_FLAG_TOP_FIELD: GstVideoBufferFlags = 10485760;
623pub const GST_VIDEO_BUFFER_FLAG_BOTTOM_FIELD: GstVideoBufferFlags = 8388608;
624pub const GST_VIDEO_BUFFER_FLAG_MARKER: GstVideoBufferFlags = 512;
625pub const GST_VIDEO_BUFFER_FLAG_LAST: GstVideoBufferFlags = 268435456;
626
627pub type GstVideoChromaFlags = c_uint;
628pub const GST_VIDEO_CHROMA_FLAG_NONE: GstVideoChromaFlags = 0;
629pub const GST_VIDEO_CHROMA_FLAG_INTERLACED: GstVideoChromaFlags = 1;
630
631pub type GstVideoChromaSite = c_uint;
632pub const GST_VIDEO_CHROMA_SITE_UNKNOWN: GstVideoChromaSite = 0;
633pub const GST_VIDEO_CHROMA_SITE_NONE: GstVideoChromaSite = 1;
634pub const GST_VIDEO_CHROMA_SITE_H_COSITED: GstVideoChromaSite = 2;
635pub const GST_VIDEO_CHROMA_SITE_V_COSITED: GstVideoChromaSite = 4;
636pub const GST_VIDEO_CHROMA_SITE_ALT_LINE: GstVideoChromaSite = 8;
637pub const GST_VIDEO_CHROMA_SITE_COSITED: GstVideoChromaSite = 6;
638pub const GST_VIDEO_CHROMA_SITE_JPEG: GstVideoChromaSite = 1;
639pub const GST_VIDEO_CHROMA_SITE_MPEG2: GstVideoChromaSite = 2;
640pub const GST_VIDEO_CHROMA_SITE_DV: GstVideoChromaSite = 14;
641
642pub type GstVideoCodecFrameFlags = c_uint;
643pub const GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY: GstVideoCodecFrameFlags = 1;
644pub const GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT: GstVideoCodecFrameFlags = 2;
645pub const GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME: GstVideoCodecFrameFlags = 4;
646pub const GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS: GstVideoCodecFrameFlags = 8;
647#[cfg(feature = "v1_20")]
648#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
649pub const GST_VIDEO_CODEC_FRAME_FLAG_CORRUPTED: GstVideoCodecFrameFlags = 16;
650
651pub type GstVideoDecoderRequestSyncPointFlags = c_uint;
652pub const GST_VIDEO_DECODER_REQUEST_SYNC_POINT_DISCARD_INPUT: GstVideoDecoderRequestSyncPointFlags =
653 1;
654pub const GST_VIDEO_DECODER_REQUEST_SYNC_POINT_CORRUPT_OUTPUT:
655 GstVideoDecoderRequestSyncPointFlags = 2;
656
657pub type GstVideoDitherFlags = c_uint;
658pub const GST_VIDEO_DITHER_FLAG_NONE: GstVideoDitherFlags = 0;
659pub const GST_VIDEO_DITHER_FLAG_INTERLACED: GstVideoDitherFlags = 1;
660pub const GST_VIDEO_DITHER_FLAG_QUANTIZE: GstVideoDitherFlags = 2;
661
662pub type GstVideoFlags = c_uint;
663pub const GST_VIDEO_FLAG_NONE: GstVideoFlags = 0;
664pub const GST_VIDEO_FLAG_VARIABLE_FPS: GstVideoFlags = 1;
665pub const GST_VIDEO_FLAG_PREMULTIPLIED_ALPHA: GstVideoFlags = 2;
666
667pub type GstVideoFormatFlags = c_uint;
668pub const GST_VIDEO_FORMAT_FLAG_YUV: GstVideoFormatFlags = 1;
669pub const GST_VIDEO_FORMAT_FLAG_RGB: GstVideoFormatFlags = 2;
670pub const GST_VIDEO_FORMAT_FLAG_GRAY: GstVideoFormatFlags = 4;
671pub const GST_VIDEO_FORMAT_FLAG_ALPHA: GstVideoFormatFlags = 8;
672pub const GST_VIDEO_FORMAT_FLAG_LE: GstVideoFormatFlags = 16;
673pub const GST_VIDEO_FORMAT_FLAG_PALETTE: GstVideoFormatFlags = 32;
674pub const GST_VIDEO_FORMAT_FLAG_COMPLEX: GstVideoFormatFlags = 64;
675pub const GST_VIDEO_FORMAT_FLAG_UNPACK: GstVideoFormatFlags = 128;
676pub const GST_VIDEO_FORMAT_FLAG_TILED: GstVideoFormatFlags = 256;
677#[cfg(feature = "v1_22")]
678#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
679pub const GST_VIDEO_FORMAT_FLAG_SUBTILES: GstVideoFormatFlags = 512;
680
681pub type GstVideoFrameFlags = c_uint;
682pub const GST_VIDEO_FRAME_FLAG_NONE: GstVideoFrameFlags = 0;
683pub const GST_VIDEO_FRAME_FLAG_INTERLACED: GstVideoFrameFlags = 1;
684pub const GST_VIDEO_FRAME_FLAG_TFF: GstVideoFrameFlags = 2;
685pub const GST_VIDEO_FRAME_FLAG_RFF: GstVideoFrameFlags = 4;
686pub const GST_VIDEO_FRAME_FLAG_ONEFIELD: GstVideoFrameFlags = 8;
687pub const GST_VIDEO_FRAME_FLAG_MULTIPLE_VIEW: GstVideoFrameFlags = 16;
688pub const GST_VIDEO_FRAME_FLAG_FIRST_IN_BUNDLE: GstVideoFrameFlags = 32;
689pub const GST_VIDEO_FRAME_FLAG_TOP_FIELD: GstVideoFrameFlags = 10;
690pub const GST_VIDEO_FRAME_FLAG_BOTTOM_FIELD: GstVideoFrameFlags = 8;
691
692pub type GstVideoFrameMapFlags = c_uint;
693pub const GST_VIDEO_FRAME_MAP_FLAG_NO_REF: GstVideoFrameMapFlags = 65536;
694pub const GST_VIDEO_FRAME_MAP_FLAG_LAST: GstVideoFrameMapFlags = 16777216;
695
696pub type GstVideoMultiviewFlags = c_uint;
697pub const GST_VIDEO_MULTIVIEW_FLAGS_NONE: GstVideoMultiviewFlags = 0;
698pub const GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_VIEW_FIRST: GstVideoMultiviewFlags = 1;
699pub const GST_VIDEO_MULTIVIEW_FLAGS_LEFT_FLIPPED: GstVideoMultiviewFlags = 2;
700pub const GST_VIDEO_MULTIVIEW_FLAGS_LEFT_FLOPPED: GstVideoMultiviewFlags = 4;
701pub const GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_FLIPPED: GstVideoMultiviewFlags = 8;
702pub const GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_FLOPPED: GstVideoMultiviewFlags = 16;
703pub const GST_VIDEO_MULTIVIEW_FLAGS_HALF_ASPECT: GstVideoMultiviewFlags = 16384;
704pub const GST_VIDEO_MULTIVIEW_FLAGS_MIXED_MONO: GstVideoMultiviewFlags = 32768;
705
706pub type GstVideoOverlayFormatFlags = c_uint;
707pub const GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE: GstVideoOverlayFormatFlags = 0;
708pub const GST_VIDEO_OVERLAY_FORMAT_FLAG_PREMULTIPLIED_ALPHA: GstVideoOverlayFormatFlags = 1;
709pub const GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA: GstVideoOverlayFormatFlags = 2;
710
711pub type GstVideoPackFlags = c_uint;
712pub const GST_VIDEO_PACK_FLAG_NONE: GstVideoPackFlags = 0;
713pub const GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE: GstVideoPackFlags = 1;
714pub const GST_VIDEO_PACK_FLAG_INTERLACED: GstVideoPackFlags = 2;
715
716pub type GstVideoResamplerFlags = c_uint;
717pub const GST_VIDEO_RESAMPLER_FLAG_NONE: GstVideoResamplerFlags = 0;
718pub const GST_VIDEO_RESAMPLER_FLAG_HALF_TAPS: GstVideoResamplerFlags = 1;
719
720pub type GstVideoScalerFlags = c_uint;
721pub const GST_VIDEO_SCALER_FLAG_NONE: GstVideoScalerFlags = 0;
722pub const GST_VIDEO_SCALER_FLAG_INTERLACED: GstVideoScalerFlags = 1;
723
724pub type GstVideoTimeCodeFlags = c_uint;
725pub const GST_VIDEO_TIME_CODE_FLAGS_NONE: GstVideoTimeCodeFlags = 0;
726pub const GST_VIDEO_TIME_CODE_FLAGS_DROP_FRAME: GstVideoTimeCodeFlags = 1;
727pub const GST_VIDEO_TIME_CODE_FLAGS_INTERLACED: GstVideoTimeCodeFlags = 2;
728
729// Unions
730#[derive(Copy, Clone)]
731#[repr(C)]
732pub union GstVideoCodecFrame_abidata {
733 pub ABI: GstVideoCodecFrame_abidata_ABI,
734 pub padding: [gpointer; 20],
735}
736
737impl ::std::fmt::Debug for GstVideoCodecFrame_abidata {
738 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
739 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoCodecFrame_abidata @ {self:p}"))
740 .field(name:"ABI", value:unsafe { &self.ABI })
741 .finish()
742 }
743}
744
745#[derive(Copy, Clone)]
746#[repr(C)]
747pub union GstVideoInfo_ABI {
748 pub abi: GstVideoInfo_ABI_abi,
749 pub _gst_reserved: [gpointer; 4],
750}
751
752impl ::std::fmt::Debug for GstVideoInfo_ABI {
753 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
754 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoInfo_ABI @ {self:p}"))
755 .field(name:"abi", value:unsafe { &self.abi })
756 .finish()
757 }
758}
759
760// Callbacks
761pub type GstVideoAffineTransformationGetMatrix =
762 Option<unsafe extern "C" fn(*mut GstVideoAffineTransformationMeta, *mut c_float) -> gboolean>;
763pub type GstVideoConvertSampleCallback =
764 Option<unsafe extern "C" fn(*mut gst::GstSample, *mut glib::GError, gpointer)>;
765pub type GstVideoFormatPack = Option<
766 unsafe extern "C" fn(
767 *const GstVideoFormatInfo,
768 GstVideoPackFlags,
769 gpointer,
770 c_int,
771 *mut gpointer,
772 *const c_int,
773 GstVideoChromaSite,
774 c_int,
775 c_int,
776 ),
777>;
778pub type GstVideoFormatUnpack = Option<
779 unsafe extern "C" fn(
780 *const GstVideoFormatInfo,
781 GstVideoPackFlags,
782 gpointer,
783 *const gpointer,
784 *const c_int,
785 c_int,
786 c_int,
787 c_int,
788 ),
789>;
790pub type GstVideoGLTextureUpload =
791 Option<unsafe extern "C" fn(*mut GstVideoGLTextureUploadMeta, *mut c_uint) -> gboolean>;
792
793// Records
794#[derive(Copy, Clone)]
795#[repr(C)]
796pub struct GstColorBalanceChannelClass {
797 pub parent: gobject::GObjectClass,
798 pub value_changed: Option<unsafe extern "C" fn(*mut GstColorBalanceChannel, c_int)>,
799 pub _gst_reserved: [gpointer; 4],
800}
801
802impl ::std::fmt::Debug for GstColorBalanceChannelClass {
803 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
804 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstColorBalanceChannelClass @ {self:p}"))
805 .field("parent", &self.parent)
806 .field(name:"value_changed", &self.value_changed)
807 .finish()
808 }
809}
810
811#[derive(Copy, Clone)]
812#[repr(C)]
813pub struct GstColorBalanceInterface {
814 pub iface: gobject::GTypeInterface,
815 pub list_channels: Option<unsafe extern "C" fn(*mut GstColorBalance) -> *const glib::GList>,
816 pub set_value:
817 Option<unsafe extern "C" fn(*mut GstColorBalance, *mut GstColorBalanceChannel, c_int)>,
818 pub get_value:
819 Option<unsafe extern "C" fn(*mut GstColorBalance, *mut GstColorBalanceChannel) -> c_int>,
820 pub get_balance_type: Option<unsafe extern "C" fn(*mut GstColorBalance) -> GstColorBalanceType>,
821 pub value_changed:
822 Option<unsafe extern "C" fn(*mut GstColorBalance, *mut GstColorBalanceChannel, c_int)>,
823 pub _gst_reserved: [gpointer; 4],
824}
825
826impl ::std::fmt::Debug for GstColorBalanceInterface {
827 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
828 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstColorBalanceInterface @ {self:p}"))
829 .field("iface", &self.iface)
830 .field("list_channels", &self.list_channels)
831 .field("set_value", &self.set_value)
832 .field("get_value", &self.get_value)
833 .field("get_balance_type", &self.get_balance_type)
834 .field(name:"value_changed", &self.value_changed)
835 .finish()
836 }
837}
838
839#[derive(Copy, Clone)]
840#[repr(C)]
841pub struct GstNavigationInterface {
842 pub iface: gobject::GTypeInterface,
843 pub send_event: Option<unsafe extern "C" fn(*mut GstNavigation, *mut gst::GstStructure)>,
844 pub send_event_simple: Option<unsafe extern "C" fn(*mut GstNavigation, *mut gst::GstEvent)>,
845}
846
847impl ::std::fmt::Debug for GstNavigationInterface {
848 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
849 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstNavigationInterface @ {self:p}"))
850 .field("iface", &self.iface)
851 .field("send_event", &self.send_event)
852 .field(name:"send_event_simple", &self.send_event_simple)
853 .finish()
854 }
855}
856
857#[derive(Copy, Clone)]
858#[repr(C)]
859pub struct GstVideoAFDMeta {
860 pub meta: gst::GstMeta,
861 pub field: u8,
862 pub spec: GstVideoAFDSpec,
863 pub afd: GstVideoAFDValue,
864}
865
866impl ::std::fmt::Debug for GstVideoAFDMeta {
867 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
868 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoAFDMeta @ {self:p}"))
869 .field("meta", &self.meta)
870 .field("field", &self.field)
871 .field("spec", &self.spec)
872 .field(name:"afd", &self.afd)
873 .finish()
874 }
875}
876
877#[derive(Copy, Clone)]
878#[repr(C)]
879pub struct GstVideoAffineTransformationMeta {
880 pub meta: gst::GstMeta,
881 pub matrix: [c_float; 16],
882}
883
884impl ::std::fmt::Debug for GstVideoAffineTransformationMeta {
885 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
886 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoAffineTransformationMeta @ {self:p}"))
887 .field("meta", &self.meta)
888 .field(name:"matrix", &self.matrix)
889 .finish()
890 }
891}
892
893#[derive(Copy, Clone)]
894#[repr(C)]
895pub struct GstVideoAggregatorClass {
896 pub parent_class: gst_base::GstAggregatorClass,
897 pub update_caps: Option<
898 unsafe extern "C" fn(*mut GstVideoAggregator, *mut gst::GstCaps) -> *mut gst::GstCaps,
899 >,
900 pub aggregate_frames: Option<
901 unsafe extern "C" fn(
902 *mut GstVideoAggregator,
903 *mut *mut gst::GstBuffer,
904 ) -> gst::GstFlowReturn,
905 >,
906 pub create_output_buffer: Option<
907 unsafe extern "C" fn(
908 *mut GstVideoAggregator,
909 *mut *mut gst::GstBuffer,
910 ) -> gst::GstFlowReturn,
911 >,
912 pub find_best_format: Option<
913 unsafe extern "C" fn(
914 *mut GstVideoAggregator,
915 *mut gst::GstCaps,
916 *mut GstVideoInfo,
917 *mut gboolean,
918 ),
919 >,
920 pub _gst_reserved: [gpointer; 20],
921}
922
923impl ::std::fmt::Debug for GstVideoAggregatorClass {
924 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
925 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoAggregatorClass @ {self:p}"))
926 .field("update_caps", &self.update_caps)
927 .field("aggregate_frames", &self.aggregate_frames)
928 .field("create_output_buffer", &self.create_output_buffer)
929 .field(name:"find_best_format", &self.find_best_format)
930 .finish()
931 }
932}
933
934#[derive(Copy, Clone)]
935#[repr(C)]
936pub struct GstVideoAggregatorConvertPadClass {
937 pub parent_class: GstVideoAggregatorPadClass,
938 pub create_conversion_info: Option<
939 unsafe extern "C" fn(
940 *mut GstVideoAggregatorConvertPad,
941 *mut GstVideoAggregator,
942 *mut GstVideoInfo,
943 ),
944 >,
945 pub _gst_reserved: [gpointer; 4],
946}
947
948impl ::std::fmt::Debug for GstVideoAggregatorConvertPadClass {
949 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
950 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoAggregatorConvertPadClass @ {self:p}"))
951 .field("parent_class", &self.parent_class)
952 .field(name:"create_conversion_info", &self.create_conversion_info)
953 .finish()
954 }
955}
956
957#[repr(C)]
958pub struct _GstVideoAggregatorConvertPadPrivate {
959 _data: [u8; 0],
960 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
961}
962
963pub type GstVideoAggregatorConvertPadPrivate = *mut _GstVideoAggregatorConvertPadPrivate;
964
965#[derive(Copy, Clone)]
966#[repr(C)]
967pub struct GstVideoAggregatorPadClass {
968 pub parent_class: gst_base::GstAggregatorPadClass,
969 pub update_conversion_info: Option<unsafe extern "C" fn(*mut GstVideoAggregatorPad)>,
970 pub prepare_frame: Option<
971 unsafe extern "C" fn(
972 *mut GstVideoAggregatorPad,
973 *mut GstVideoAggregator,
974 *mut gst::GstBuffer,
975 *mut GstVideoFrame,
976 ) -> gboolean,
977 >,
978 pub clean_frame: Option<
979 unsafe extern "C" fn(
980 *mut GstVideoAggregatorPad,
981 *mut GstVideoAggregator,
982 *mut GstVideoFrame,
983 ),
984 >,
985 pub prepare_frame_start: Option<
986 unsafe extern "C" fn(
987 *mut GstVideoAggregatorPad,
988 *mut GstVideoAggregator,
989 *mut gst::GstBuffer,
990 *mut GstVideoFrame,
991 ),
992 >,
993 pub prepare_frame_finish: Option<
994 unsafe extern "C" fn(
995 *mut GstVideoAggregatorPad,
996 *mut GstVideoAggregator,
997 *mut GstVideoFrame,
998 ),
999 >,
1000 pub _gst_reserved: [gpointer; 18],
1001}
1002
1003impl ::std::fmt::Debug for GstVideoAggregatorPadClass {
1004 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1005 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoAggregatorPadClass @ {self:p}"))
1006 .field("parent_class", &self.parent_class)
1007 .field("update_conversion_info", &self.update_conversion_info)
1008 .field("prepare_frame", &self.prepare_frame)
1009 .field("clean_frame", &self.clean_frame)
1010 .field("prepare_frame_start", &self.prepare_frame_start)
1011 .field("prepare_frame_finish", &self.prepare_frame_finish)
1012 .field(name:"_gst_reserved", &self._gst_reserved)
1013 .finish()
1014 }
1015}
1016
1017#[repr(C)]
1018pub struct _GstVideoAggregatorPadPrivate {
1019 _data: [u8; 0],
1020 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1021}
1022
1023pub type GstVideoAggregatorPadPrivate = *mut _GstVideoAggregatorPadPrivate;
1024
1025#[derive(Copy, Clone)]
1026#[repr(C)]
1027pub struct GstVideoAggregatorParallelConvertPadClass {
1028 pub parent_class: GstVideoAggregatorConvertPadClass,
1029 pub _gst_reserved: [gpointer; 4],
1030}
1031
1032impl ::std::fmt::Debug for GstVideoAggregatorParallelConvertPadClass {
1033 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1034 f&mut DebugStruct<'_, '_>.debug_struct(&format!(
1035 "GstVideoAggregatorParallelConvertPadClass @ {self:p}"
1036 ))
1037 .field(name:"parent_class", &self.parent_class)
1038 .finish()
1039 }
1040}
1041
1042#[repr(C)]
1043pub struct _GstVideoAggregatorPrivate {
1044 _data: [u8; 0],
1045 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1046}
1047
1048pub type GstVideoAggregatorPrivate = *mut _GstVideoAggregatorPrivate;
1049
1050#[derive(Copy, Clone)]
1051#[repr(C)]
1052pub struct GstVideoAlignment {
1053 pub padding_top: c_uint,
1054 pub padding_bottom: c_uint,
1055 pub padding_left: c_uint,
1056 pub padding_right: c_uint,
1057 pub stride_align: [c_uint; 4],
1058}
1059
1060impl ::std::fmt::Debug for GstVideoAlignment {
1061 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1062 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoAlignment @ {self:p}"))
1063 .field("padding_top", &self.padding_top)
1064 .field("padding_bottom", &self.padding_bottom)
1065 .field("padding_left", &self.padding_left)
1066 .field("padding_right", &self.padding_right)
1067 .field(name:"stride_align", &self.stride_align)
1068 .finish()
1069 }
1070}
1071
1072#[derive(Copy, Clone)]
1073#[repr(C)]
1074pub struct GstVideoAncillary {
1075 pub DID: u8,
1076 pub SDID_block_number: u8,
1077 pub data_count: u8,
1078 pub data: [u8; 256],
1079 pub _gst_reserved: [gpointer; 4],
1080}
1081
1082impl ::std::fmt::Debug for GstVideoAncillary {
1083 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1084 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoAncillary @ {self:p}"))
1085 .field("DID", &self.DID)
1086 .field("SDID_block_number", &self.SDID_block_number)
1087 .field(name:"data_count", &self.data_count)
1088 .finish()
1089 }
1090}
1091
1092#[derive(Copy, Clone)]
1093#[repr(C)]
1094pub struct GstVideoBarMeta {
1095 pub meta: gst::GstMeta,
1096 pub field: u8,
1097 pub is_letterbox: gboolean,
1098 pub bar_data1: c_uint,
1099 pub bar_data2: c_uint,
1100}
1101
1102impl ::std::fmt::Debug for GstVideoBarMeta {
1103 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1104 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoBarMeta @ {self:p}"))
1105 .field("meta", &self.meta)
1106 .field("field", &self.field)
1107 .field("is_letterbox", &self.is_letterbox)
1108 .field("bar_data1", &self.bar_data1)
1109 .field(name:"bar_data2", &self.bar_data2)
1110 .finish()
1111 }
1112}
1113
1114#[derive(Copy, Clone)]
1115#[repr(C)]
1116pub struct GstVideoBufferPoolClass {
1117 pub parent_class: gst::GstBufferPoolClass,
1118}
1119
1120impl ::std::fmt::Debug for GstVideoBufferPoolClass {
1121 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1122 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoBufferPoolClass @ {self:p}"))
1123 .field(name:"parent_class", &self.parent_class)
1124 .finish()
1125 }
1126}
1127
1128#[repr(C)]
1129pub struct _GstVideoBufferPoolPrivate {
1130 _data: [u8; 0],
1131 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1132}
1133
1134pub type GstVideoBufferPoolPrivate = *mut _GstVideoBufferPoolPrivate;
1135
1136#[derive(Copy, Clone)]
1137#[repr(C)]
1138pub struct GstVideoCaptionMeta {
1139 pub meta: gst::GstMeta,
1140 pub caption_type: GstVideoCaptionType,
1141 pub data: *mut u8,
1142 pub size: size_t,
1143}
1144
1145impl ::std::fmt::Debug for GstVideoCaptionMeta {
1146 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1147 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoCaptionMeta @ {self:p}"))
1148 .field("meta", &self.meta)
1149 .field("caption_type", &self.caption_type)
1150 .field("data", &self.data)
1151 .field(name:"size", &self.size)
1152 .finish()
1153 }
1154}
1155
1156#[repr(C)]
1157pub struct _GstVideoChromaResample {
1158 _data: [u8; 0],
1159 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1160}
1161
1162pub type GstVideoChromaResample = *mut _GstVideoChromaResample;
1163
1164#[derive(Copy, Clone)]
1165#[repr(C)]
1166pub struct GstVideoCodecAlphaMeta {
1167 pub meta: gst::GstMeta,
1168 pub buffer: *mut gst::GstBuffer,
1169}
1170
1171impl ::std::fmt::Debug for GstVideoCodecAlphaMeta {
1172 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1173 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoCodecAlphaMeta @ {self:p}"))
1174 .field("meta", &self.meta)
1175 .field(name:"buffer", &self.buffer)
1176 .finish()
1177 }
1178}
1179
1180#[derive(Copy, Clone)]
1181#[repr(C)]
1182pub struct GstVideoCodecFrame {
1183 pub ref_count: c_int,
1184 pub flags: u32,
1185 pub system_frame_number: u32,
1186 pub decode_frame_number: u32,
1187 pub presentation_frame_number: u32,
1188 pub dts: gst::GstClockTime,
1189 pub pts: gst::GstClockTime,
1190 pub duration: gst::GstClockTime,
1191 pub distance_from_sync: c_int,
1192 pub input_buffer: *mut gst::GstBuffer,
1193 pub output_buffer: *mut gst::GstBuffer,
1194 pub deadline: gst::GstClockTime,
1195 pub events: *mut glib::GList,
1196 pub user_data: gpointer,
1197 pub user_data_destroy_notify: glib::GDestroyNotify,
1198 pub abidata: GstVideoCodecFrame_abidata,
1199}
1200
1201impl ::std::fmt::Debug for GstVideoCodecFrame {
1202 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1203 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoCodecFrame @ {self:p}"))
1204 .field("system_frame_number", &self.system_frame_number)
1205 .field("dts", &self.dts)
1206 .field("pts", &self.pts)
1207 .field("duration", &self.duration)
1208 .field("distance_from_sync", &self.distance_from_sync)
1209 .field("input_buffer", &self.input_buffer)
1210 .field("output_buffer", &self.output_buffer)
1211 .field("deadline", &self.deadline)
1212 .field(name:"abidata", &self.abidata)
1213 .finish()
1214 }
1215}
1216
1217#[derive(Copy, Clone)]
1218#[repr(C)]
1219pub struct GstVideoCodecFrame_abidata_ABI {
1220 pub ts: gst::GstClockTime,
1221 pub ts2: gst::GstClockTime,
1222 pub num_subframes: c_uint,
1223 pub subframes_processed: c_uint,
1224}
1225
1226impl ::std::fmt::Debug for GstVideoCodecFrame_abidata_ABI {
1227 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1228 fDebugStruct<'_, '_>.debug_struct(&format!("GstVideoCodecFrame_abidata_ABI @ {self:p}"))
1229 .finish()
1230 }
1231}
1232
1233#[derive(Copy, Clone)]
1234#[repr(C)]
1235pub struct GstVideoCodecState {
1236 pub ref_count: c_int,
1237 pub info: GstVideoInfo,
1238 pub caps: *mut gst::GstCaps,
1239 pub codec_data: *mut gst::GstBuffer,
1240 pub allocation_caps: *mut gst::GstCaps,
1241 pub mastering_display_info: *mut GstVideoMasteringDisplayInfo,
1242 pub content_light_level: *mut GstVideoContentLightLevel,
1243 pub padding: [gpointer; 17],
1244}
1245
1246impl ::std::fmt::Debug for GstVideoCodecState {
1247 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1248 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoCodecState @ {self:p}"))
1249 .field("info", &self.info)
1250 .field("caps", &self.caps)
1251 .field("codec_data", &self.codec_data)
1252 .field("allocation_caps", &self.allocation_caps)
1253 .field("mastering_display_info", &self.mastering_display_info)
1254 .field(name:"content_light_level", &self.content_light_level)
1255 .finish()
1256 }
1257}
1258
1259#[derive(Copy, Clone)]
1260#[repr(C)]
1261pub struct GstVideoColorPrimariesInfo {
1262 pub primaries: GstVideoColorPrimaries,
1263 pub Wx: c_double,
1264 pub Wy: c_double,
1265 pub Rx: c_double,
1266 pub Ry: c_double,
1267 pub Gx: c_double,
1268 pub Gy: c_double,
1269 pub Bx: c_double,
1270 pub By: c_double,
1271}
1272
1273impl ::std::fmt::Debug for GstVideoColorPrimariesInfo {
1274 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1275 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoColorPrimariesInfo @ {self:p}"))
1276 .field("primaries", &self.primaries)
1277 .field("Wx", &self.Wx)
1278 .field("Wy", &self.Wy)
1279 .field("Rx", &self.Rx)
1280 .field("Ry", &self.Ry)
1281 .field("Gx", &self.Gx)
1282 .field("Gy", &self.Gy)
1283 .field("Bx", &self.Bx)
1284 .field(name:"By", &self.By)
1285 .finish()
1286 }
1287}
1288
1289#[derive(Copy, Clone)]
1290#[repr(C)]
1291pub struct GstVideoColorimetry {
1292 pub range: GstVideoColorRange,
1293 pub matrix: GstVideoColorMatrix,
1294 pub transfer: GstVideoTransferFunction,
1295 pub primaries: GstVideoColorPrimaries,
1296}
1297
1298impl ::std::fmt::Debug for GstVideoColorimetry {
1299 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1300 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoColorimetry @ {self:p}"))
1301 .field("range", &self.range)
1302 .field("matrix", &self.matrix)
1303 .field("transfer", &self.transfer)
1304 .field(name:"primaries", &self.primaries)
1305 .finish()
1306 }
1307}
1308
1309#[derive(Copy, Clone)]
1310#[repr(C)]
1311pub struct GstVideoContentLightLevel {
1312 pub max_content_light_level: u16,
1313 pub max_frame_average_light_level: u16,
1314 pub _gst_reserved: [gpointer; 4],
1315}
1316
1317impl ::std::fmt::Debug for GstVideoContentLightLevel {
1318 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1319 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoContentLightLevel @ {self:p}"))
1320 .field("max_content_light_level", &self.max_content_light_level)
1321 .field(
1322 name:"max_frame_average_light_level",
1323 &self.max_frame_average_light_level,
1324 )
1325 .finish()
1326 }
1327}
1328
1329#[repr(C)]
1330pub struct _GstVideoConverter {
1331 _data: [u8; 0],
1332 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1333}
1334
1335pub type GstVideoConverter = *mut _GstVideoConverter;
1336
1337#[derive(Copy, Clone)]
1338#[repr(C)]
1339pub struct GstVideoCropMeta {
1340 pub meta: gst::GstMeta,
1341 pub x: c_uint,
1342 pub y: c_uint,
1343 pub width: c_uint,
1344 pub height: c_uint,
1345}
1346
1347impl ::std::fmt::Debug for GstVideoCropMeta {
1348 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1349 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoCropMeta @ {self:p}"))
1350 .field("meta", &self.meta)
1351 .field("x", &self.x)
1352 .field("y", &self.y)
1353 .field("width", &self.width)
1354 .field(name:"height", &self.height)
1355 .finish()
1356 }
1357}
1358
1359#[derive(Copy, Clone)]
1360#[repr(C)]
1361pub struct GstVideoDecoderClass {
1362 pub element_class: gst::GstElementClass,
1363 pub open: Option<unsafe extern "C" fn(*mut GstVideoDecoder) -> gboolean>,
1364 pub close: Option<unsafe extern "C" fn(*mut GstVideoDecoder) -> gboolean>,
1365 pub start: Option<unsafe extern "C" fn(*mut GstVideoDecoder) -> gboolean>,
1366 pub stop: Option<unsafe extern "C" fn(*mut GstVideoDecoder) -> gboolean>,
1367 pub parse: Option<
1368 unsafe extern "C" fn(
1369 *mut GstVideoDecoder,
1370 *mut GstVideoCodecFrame,
1371 *mut gst_base::GstAdapter,
1372 gboolean,
1373 ) -> gst::GstFlowReturn,
1374 >,
1375 pub set_format:
1376 Option<unsafe extern "C" fn(*mut GstVideoDecoder, *mut GstVideoCodecState) -> gboolean>,
1377 pub reset: Option<unsafe extern "C" fn(*mut GstVideoDecoder, gboolean) -> gboolean>,
1378 pub finish: Option<unsafe extern "C" fn(*mut GstVideoDecoder) -> gst::GstFlowReturn>,
1379 pub handle_frame: Option<
1380 unsafe extern "C" fn(*mut GstVideoDecoder, *mut GstVideoCodecFrame) -> gst::GstFlowReturn,
1381 >,
1382 pub sink_event:
1383 Option<unsafe extern "C" fn(*mut GstVideoDecoder, *mut gst::GstEvent) -> gboolean>,
1384 pub src_event:
1385 Option<unsafe extern "C" fn(*mut GstVideoDecoder, *mut gst::GstEvent) -> gboolean>,
1386 pub negotiate: Option<unsafe extern "C" fn(*mut GstVideoDecoder) -> gboolean>,
1387 pub decide_allocation:
1388 Option<unsafe extern "C" fn(*mut GstVideoDecoder, *mut gst::GstQuery) -> gboolean>,
1389 pub propose_allocation:
1390 Option<unsafe extern "C" fn(*mut GstVideoDecoder, *mut gst::GstQuery) -> gboolean>,
1391 pub flush: Option<unsafe extern "C" fn(*mut GstVideoDecoder) -> gboolean>,
1392 pub sink_query:
1393 Option<unsafe extern "C" fn(*mut GstVideoDecoder, *mut gst::GstQuery) -> gboolean>,
1394 pub src_query:
1395 Option<unsafe extern "C" fn(*mut GstVideoDecoder, *mut gst::GstQuery) -> gboolean>,
1396 pub getcaps:
1397 Option<unsafe extern "C" fn(*mut GstVideoDecoder, *mut gst::GstCaps) -> *mut gst::GstCaps>,
1398 pub drain: Option<unsafe extern "C" fn(*mut GstVideoDecoder) -> gst::GstFlowReturn>,
1399 pub transform_meta: Option<
1400 unsafe extern "C" fn(
1401 *mut GstVideoDecoder,
1402 *mut GstVideoCodecFrame,
1403 *mut gst::GstMeta,
1404 ) -> gboolean,
1405 >,
1406 pub handle_missing_data: Option<
1407 unsafe extern "C" fn(
1408 *mut GstVideoDecoder,
1409 gst::GstClockTime,
1410 gst::GstClockTime,
1411 ) -> gboolean,
1412 >,
1413 pub padding: [gpointer; 13],
1414}
1415
1416impl ::std::fmt::Debug for GstVideoDecoderClass {
1417 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1418 f.debug_struct(&format!("GstVideoDecoderClass @ {self:p}"))
1419 .field("open", &self.open)
1420 .field("close", &self.close)
1421 .field("start", &self.start)
1422 .field("stop", &self.stop)
1423 .field("parse", &self.parse)
1424 .field("set_format", &self.set_format)
1425 .field("reset", &self.reset)
1426 .field("finish", &self.finish)
1427 .field("handle_frame", &self.handle_frame)
1428 .field("sink_event", &self.sink_event)
1429 .field("src_event", &self.src_event)
1430 .field("negotiate", &self.negotiate)
1431 .field("decide_allocation", &self.decide_allocation)
1432 .field("propose_allocation", &self.propose_allocation)
1433 .field("flush", &self.flush)
1434 .field("sink_query", &self.sink_query)
1435 .field("src_query", &self.src_query)
1436 .field("getcaps", &self.getcaps)
1437 .field("drain", &self.drain)
1438 .field("transform_meta", &self.transform_meta)
1439 .field("handle_missing_data", &self.handle_missing_data)
1440 .finish()
1441 }
1442}
1443
1444#[repr(C)]
1445pub struct _GstVideoDecoderPrivate {
1446 _data: [u8; 0],
1447 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1448}
1449
1450pub type GstVideoDecoderPrivate = *mut _GstVideoDecoderPrivate;
1451
1452#[derive(Copy, Clone)]
1453#[repr(C)]
1454pub struct GstVideoDirectionInterface {
1455 pub iface: gobject::GTypeInterface,
1456}
1457
1458impl ::std::fmt::Debug for GstVideoDirectionInterface {
1459 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1460 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoDirectionInterface @ {self:p}"))
1461 .field(name:"iface", &self.iface)
1462 .finish()
1463 }
1464}
1465
1466#[repr(C)]
1467pub struct _GstVideoDither {
1468 _data: [u8; 0],
1469 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1470}
1471
1472pub type GstVideoDither = *mut _GstVideoDither;
1473
1474#[derive(Copy, Clone)]
1475#[repr(C)]
1476pub struct GstVideoEncoderClass {
1477 pub element_class: gst::GstElementClass,
1478 pub open: Option<unsafe extern "C" fn(*mut GstVideoEncoder) -> gboolean>,
1479 pub close: Option<unsafe extern "C" fn(*mut GstVideoEncoder) -> gboolean>,
1480 pub start: Option<unsafe extern "C" fn(*mut GstVideoEncoder) -> gboolean>,
1481 pub stop: Option<unsafe extern "C" fn(*mut GstVideoEncoder) -> gboolean>,
1482 pub set_format:
1483 Option<unsafe extern "C" fn(*mut GstVideoEncoder, *mut GstVideoCodecState) -> gboolean>,
1484 pub handle_frame: Option<
1485 unsafe extern "C" fn(*mut GstVideoEncoder, *mut GstVideoCodecFrame) -> gst::GstFlowReturn,
1486 >,
1487 pub reset: Option<unsafe extern "C" fn(*mut GstVideoEncoder, gboolean) -> gboolean>,
1488 pub finish: Option<unsafe extern "C" fn(*mut GstVideoEncoder) -> gst::GstFlowReturn>,
1489 pub pre_push: Option<
1490 unsafe extern "C" fn(*mut GstVideoEncoder, *mut GstVideoCodecFrame) -> gst::GstFlowReturn,
1491 >,
1492 pub getcaps:
1493 Option<unsafe extern "C" fn(*mut GstVideoEncoder, *mut gst::GstCaps) -> *mut gst::GstCaps>,
1494 pub sink_event:
1495 Option<unsafe extern "C" fn(*mut GstVideoEncoder, *mut gst::GstEvent) -> gboolean>,
1496 pub src_event:
1497 Option<unsafe extern "C" fn(*mut GstVideoEncoder, *mut gst::GstEvent) -> gboolean>,
1498 pub negotiate: Option<unsafe extern "C" fn(*mut GstVideoEncoder) -> gboolean>,
1499 pub decide_allocation:
1500 Option<unsafe extern "C" fn(*mut GstVideoEncoder, *mut gst::GstQuery) -> gboolean>,
1501 pub propose_allocation:
1502 Option<unsafe extern "C" fn(*mut GstVideoEncoder, *mut gst::GstQuery) -> gboolean>,
1503 pub flush: Option<unsafe extern "C" fn(*mut GstVideoEncoder) -> gboolean>,
1504 pub sink_query:
1505 Option<unsafe extern "C" fn(*mut GstVideoEncoder, *mut gst::GstQuery) -> gboolean>,
1506 pub src_query:
1507 Option<unsafe extern "C" fn(*mut GstVideoEncoder, *mut gst::GstQuery) -> gboolean>,
1508 pub transform_meta: Option<
1509 unsafe extern "C" fn(
1510 *mut GstVideoEncoder,
1511 *mut GstVideoCodecFrame,
1512 *mut gst::GstMeta,
1513 ) -> gboolean,
1514 >,
1515 pub _gst_reserved: [gpointer; 16],
1516}
1517
1518impl ::std::fmt::Debug for GstVideoEncoderClass {
1519 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1520 f.debug_struct(&format!("GstVideoEncoderClass @ {self:p}"))
1521 .field("open", &self.open)
1522 .field("close", &self.close)
1523 .field("start", &self.start)
1524 .field("stop", &self.stop)
1525 .field("set_format", &self.set_format)
1526 .field("handle_frame", &self.handle_frame)
1527 .field("reset", &self.reset)
1528 .field("finish", &self.finish)
1529 .field("pre_push", &self.pre_push)
1530 .field("getcaps", &self.getcaps)
1531 .field("sink_event", &self.sink_event)
1532 .field("src_event", &self.src_event)
1533 .field("negotiate", &self.negotiate)
1534 .field("decide_allocation", &self.decide_allocation)
1535 .field("propose_allocation", &self.propose_allocation)
1536 .field("flush", &self.flush)
1537 .field("sink_query", &self.sink_query)
1538 .field("src_query", &self.src_query)
1539 .field("transform_meta", &self.transform_meta)
1540 .finish()
1541 }
1542}
1543
1544#[repr(C)]
1545pub struct _GstVideoEncoderPrivate {
1546 _data: [u8; 0],
1547 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1548}
1549
1550pub type GstVideoEncoderPrivate = *mut _GstVideoEncoderPrivate;
1551
1552#[derive(Copy, Clone)]
1553#[repr(C)]
1554pub struct GstVideoFilterClass {
1555 pub parent_class: gst_base::GstBaseTransformClass,
1556 pub set_info: Option<
1557 unsafe extern "C" fn(
1558 *mut GstVideoFilter,
1559 *mut gst::GstCaps,
1560 *mut GstVideoInfo,
1561 *mut gst::GstCaps,
1562 *mut GstVideoInfo,
1563 ) -> gboolean,
1564 >,
1565 pub transform_frame: Option<
1566 unsafe extern "C" fn(
1567 *mut GstVideoFilter,
1568 *mut GstVideoFrame,
1569 *mut GstVideoFrame,
1570 ) -> gst::GstFlowReturn,
1571 >,
1572 pub transform_frame_ip:
1573 Option<unsafe extern "C" fn(*mut GstVideoFilter, *mut GstVideoFrame) -> gst::GstFlowReturn>,
1574 pub _gst_reserved: [gpointer; 4],
1575}
1576
1577impl ::std::fmt::Debug for GstVideoFilterClass {
1578 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1579 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoFilterClass @ {self:p}"))
1580 .field("parent_class", &self.parent_class)
1581 .field("set_info", &self.set_info)
1582 .field("transform_frame", &self.transform_frame)
1583 .field(name:"transform_frame_ip", &self.transform_frame_ip)
1584 .finish()
1585 }
1586}
1587
1588#[derive(Copy, Clone)]
1589#[repr(C)]
1590pub struct GstVideoFormatInfo {
1591 pub format: GstVideoFormat,
1592 pub name: *const c_char,
1593 pub description: *const c_char,
1594 pub flags: GstVideoFormatFlags,
1595 pub bits: c_uint,
1596 pub n_components: c_uint,
1597 pub shift: [c_uint; 4],
1598 pub depth: [c_uint; 4],
1599 pub pixel_stride: [c_int; 4],
1600 pub n_planes: c_uint,
1601 pub plane: [c_uint; 4],
1602 pub poffset: [c_uint; 4],
1603 pub w_sub: [c_uint; 4],
1604 pub h_sub: [c_uint; 4],
1605 pub unpack_format: GstVideoFormat,
1606 pub unpack_func: GstVideoFormatUnpack,
1607 pub pack_lines: c_int,
1608 pub pack_func: GstVideoFormatPack,
1609 pub tile_mode: GstVideoTileMode,
1610 pub tile_ws: c_uint,
1611 pub tile_hs: c_uint,
1612 pub tile_info: [GstVideoTileInfo; 4],
1613}
1614
1615impl ::std::fmt::Debug for GstVideoFormatInfo {
1616 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1617 f.debug_struct(&format!("GstVideoFormatInfo @ {self:p}"))
1618 .field("format", &self.format)
1619 .field("name", &self.name)
1620 .field("description", &self.description)
1621 .field("flags", &self.flags)
1622 .field("bits", &self.bits)
1623 .field("n_components", &self.n_components)
1624 .field("shift", &self.shift)
1625 .field("depth", &self.depth)
1626 .field("pixel_stride", &self.pixel_stride)
1627 .field("n_planes", &self.n_planes)
1628 .field("plane", &self.plane)
1629 .field("poffset", &self.poffset)
1630 .field("w_sub", &self.w_sub)
1631 .field("h_sub", &self.h_sub)
1632 .field("unpack_format", &self.unpack_format)
1633 .field("unpack_func", &self.unpack_func)
1634 .field("pack_lines", &self.pack_lines)
1635 .field("pack_func", &self.pack_func)
1636 .field("tile_mode", &self.tile_mode)
1637 .field("tile_ws", &self.tile_ws)
1638 .field("tile_hs", &self.tile_hs)
1639 .field("tile_info", &self.tile_info)
1640 .finish()
1641 }
1642}
1643
1644#[derive(Copy, Clone)]
1645#[repr(C)]
1646pub struct GstVideoFrame {
1647 pub info: GstVideoInfo,
1648 pub flags: GstVideoFrameFlags,
1649 pub buffer: *mut gst::GstBuffer,
1650 pub meta: gpointer,
1651 pub id: c_int,
1652 pub data: [gpointer; 4],
1653 pub map: [gst::GstMapInfo; 4],
1654 pub _gst_reserved: [gpointer; 4],
1655}
1656
1657impl ::std::fmt::Debug for GstVideoFrame {
1658 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1659 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoFrame @ {self:p}"))
1660 .field("info", &self.info)
1661 .field("flags", &self.flags)
1662 .field("buffer", &self.buffer)
1663 .field("meta", &self.meta)
1664 .field("id", &self.id)
1665 .field("data", &self.data)
1666 .field(name:"map", &self.map)
1667 .finish()
1668 }
1669}
1670
1671#[derive(Copy, Clone)]
1672#[repr(C)]
1673pub struct GstVideoGLTextureUploadMeta {
1674 pub meta: gst::GstMeta,
1675 pub texture_orientation: GstVideoGLTextureOrientation,
1676 pub n_textures: c_uint,
1677 pub texture_type: [GstVideoGLTextureType; 4],
1678 pub buffer: *mut gst::GstBuffer,
1679 pub upload: GstVideoGLTextureUpload,
1680 pub user_data: gpointer,
1681 pub user_data_copy: gobject::GBoxedCopyFunc,
1682 pub user_data_free: gobject::GBoxedFreeFunc,
1683}
1684
1685impl ::std::fmt::Debug for GstVideoGLTextureUploadMeta {
1686 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1687 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoGLTextureUploadMeta @ {self:p}"))
1688 .field("meta", &self.meta)
1689 .field("texture_orientation", &self.texture_orientation)
1690 .field("n_textures", &self.n_textures)
1691 .field(name:"texture_type", &self.texture_type)
1692 .finish()
1693 }
1694}
1695
1696#[derive(Copy, Clone)]
1697#[repr(C)]
1698pub struct GstVideoInfo {
1699 pub finfo: *const GstVideoFormatInfo,
1700 pub interlace_mode: GstVideoInterlaceMode,
1701 pub flags: GstVideoFlags,
1702 pub width: c_int,
1703 pub height: c_int,
1704 pub size: size_t,
1705 pub views: c_int,
1706 pub chroma_site: GstVideoChromaSite,
1707 pub colorimetry: GstVideoColorimetry,
1708 pub par_n: c_int,
1709 pub par_d: c_int,
1710 pub fps_n: c_int,
1711 pub fps_d: c_int,
1712 pub offset: [size_t; 4],
1713 pub stride: [c_int; 4],
1714 pub ABI: GstVideoInfo_ABI,
1715}
1716
1717impl ::std::fmt::Debug for GstVideoInfo {
1718 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1719 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoInfo @ {self:p}"))
1720 .field("finfo", &self.finfo)
1721 .field("interlace_mode", &self.interlace_mode)
1722 .field("flags", &self.flags)
1723 .field("width", &self.width)
1724 .field("height", &self.height)
1725 .field("size", &self.size)
1726 .field("views", &self.views)
1727 .field("chroma_site", &self.chroma_site)
1728 .field("colorimetry", &self.colorimetry)
1729 .field("par_n", &self.par_n)
1730 .field("par_d", &self.par_d)
1731 .field("fps_n", &self.fps_n)
1732 .field("fps_d", &self.fps_d)
1733 .field("offset", &self.offset)
1734 .field("stride", &self.stride)
1735 .field(name:"ABI", &self.ABI)
1736 .finish()
1737 }
1738}
1739
1740#[derive(Copy, Clone)]
1741#[repr(C)]
1742pub struct GstVideoInfoDmaDrm {
1743 pub vinfo: GstVideoInfo,
1744 pub drm_fourcc: u32,
1745 pub drm_modifier: u64,
1746 pub _gst_reserved: [u32; 20],
1747}
1748
1749impl ::std::fmt::Debug for GstVideoInfoDmaDrm {
1750 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1751 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoInfoDmaDrm @ {self:p}"))
1752 .field("vinfo", &self.vinfo)
1753 .field("drm_fourcc", &self.drm_fourcc)
1754 .field(name:"drm_modifier", &self.drm_modifier)
1755 .finish()
1756 }
1757}
1758
1759#[derive(Copy, Clone)]
1760#[repr(C)]
1761pub struct GstVideoInfo_ABI_abi {
1762 pub multiview_mode: GstVideoMultiviewMode,
1763 pub multiview_flags: GstVideoMultiviewFlags,
1764 pub field_order: GstVideoFieldOrder,
1765}
1766
1767impl ::std::fmt::Debug for GstVideoInfo_ABI_abi {
1768 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1769 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoInfo_ABI_abi @ {self:p}"))
1770 .field("multiview_mode", &self.multiview_mode)
1771 .field("multiview_flags", &self.multiview_flags)
1772 .field(name:"field_order", &self.field_order)
1773 .finish()
1774 }
1775}
1776
1777#[derive(Copy, Clone)]
1778#[repr(C)]
1779pub struct GstVideoMasteringDisplayInfo {
1780 pub display_primaries: [GstVideoMasteringDisplayInfoCoordinates; 3],
1781 pub white_point: GstVideoMasteringDisplayInfoCoordinates,
1782 pub max_display_mastering_luminance: u32,
1783 pub min_display_mastering_luminance: u32,
1784 pub _gst_reserved: [gpointer; 4],
1785}
1786
1787impl ::std::fmt::Debug for GstVideoMasteringDisplayInfo {
1788 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1789 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoMasteringDisplayInfo @ {self:p}"))
1790 .field("display_primaries", &self.display_primaries)
1791 .field("white_point", &self.white_point)
1792 .field(
1793 "max_display_mastering_luminance",
1794 &self.max_display_mastering_luminance,
1795 )
1796 .field(
1797 name:"min_display_mastering_luminance",
1798 &self.min_display_mastering_luminance,
1799 )
1800 .finish()
1801 }
1802}
1803
1804#[derive(Copy, Clone)]
1805#[repr(C)]
1806pub struct GstVideoMasteringDisplayInfoCoordinates {
1807 pub x: u16,
1808 pub y: u16,
1809}
1810
1811impl ::std::fmt::Debug for GstVideoMasteringDisplayInfoCoordinates {
1812 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1813 f&mut DebugStruct<'_, '_>.debug_struct(&format!(
1814 "GstVideoMasteringDisplayInfoCoordinates @ {self:p}"
1815 ))
1816 .field("x", &self.x)
1817 .field(name:"y", &self.y)
1818 .finish()
1819 }
1820}
1821
1822#[derive(Copy, Clone)]
1823#[repr(C)]
1824pub struct GstVideoMeta {
1825 pub meta: gst::GstMeta,
1826 pub buffer: *mut gst::GstBuffer,
1827 pub flags: GstVideoFrameFlags,
1828 pub format: GstVideoFormat,
1829 pub id: c_int,
1830 pub width: c_uint,
1831 pub height: c_uint,
1832 pub n_planes: c_uint,
1833 pub offset: [size_t; 4],
1834 pub stride: [c_int; 4],
1835 pub map: Option<
1836 unsafe extern "C" fn(
1837 *mut GstVideoMeta,
1838 c_uint,
1839 *mut gst::GstMapInfo,
1840 *mut gpointer,
1841 *mut c_int,
1842 gst::GstMapFlags,
1843 ) -> gboolean,
1844 >,
1845 pub unmap:
1846 Option<unsafe extern "C" fn(*mut GstVideoMeta, c_uint, *mut gst::GstMapInfo) -> gboolean>,
1847 pub alignment: GstVideoAlignment,
1848}
1849
1850impl ::std::fmt::Debug for GstVideoMeta {
1851 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1852 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoMeta @ {self:p}"))
1853 .field("meta", &self.meta)
1854 .field("buffer", &self.buffer)
1855 .field("flags", &self.flags)
1856 .field("format", &self.format)
1857 .field("id", &self.id)
1858 .field("width", &self.width)
1859 .field("height", &self.height)
1860 .field("n_planes", &self.n_planes)
1861 .field("offset", &self.offset)
1862 .field("stride", &self.stride)
1863 .field("map", &self.map)
1864 .field("unmap", &self.unmap)
1865 .field(name:"alignment", &self.alignment)
1866 .finish()
1867 }
1868}
1869
1870#[derive(Copy, Clone)]
1871#[repr(C)]
1872pub struct GstVideoMetaTransform {
1873 pub in_info: *mut GstVideoInfo,
1874 pub out_info: *mut GstVideoInfo,
1875}
1876
1877impl ::std::fmt::Debug for GstVideoMetaTransform {
1878 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1879 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoMetaTransform @ {self:p}"))
1880 .field("in_info", &self.in_info)
1881 .field(name:"out_info", &self.out_info)
1882 .finish()
1883 }
1884}
1885
1886#[derive(Copy, Clone)]
1887#[repr(C)]
1888pub struct GstVideoOrientationInterface {
1889 pub iface: gobject::GTypeInterface,
1890 pub get_hflip: Option<unsafe extern "C" fn(*mut GstVideoOrientation, gboolean) -> gboolean>,
1891 pub get_vflip: Option<unsafe extern "C" fn(*mut GstVideoOrientation, gboolean) -> gboolean>,
1892 pub get_hcenter: Option<unsafe extern "C" fn(*mut GstVideoOrientation, c_int) -> gboolean>,
1893 pub get_vcenter: Option<unsafe extern "C" fn(*mut GstVideoOrientation, c_int) -> gboolean>,
1894 pub set_hflip: Option<unsafe extern "C" fn(*mut GstVideoOrientation, gboolean) -> gboolean>,
1895 pub set_vflip: Option<unsafe extern "C" fn(*mut GstVideoOrientation, gboolean) -> gboolean>,
1896 pub set_hcenter: Option<unsafe extern "C" fn(*mut GstVideoOrientation, c_int) -> gboolean>,
1897 pub set_vcenter: Option<unsafe extern "C" fn(*mut GstVideoOrientation, c_int) -> gboolean>,
1898}
1899
1900impl ::std::fmt::Debug for GstVideoOrientationInterface {
1901 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1902 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoOrientationInterface @ {self:p}"))
1903 .field("iface", &self.iface)
1904 .field("get_hflip", &self.get_hflip)
1905 .field("get_vflip", &self.get_vflip)
1906 .field("get_hcenter", &self.get_hcenter)
1907 .field("get_vcenter", &self.get_vcenter)
1908 .field("set_hflip", &self.set_hflip)
1909 .field("set_vflip", &self.set_vflip)
1910 .field("set_hcenter", &self.set_hcenter)
1911 .field(name:"set_vcenter", &self.set_vcenter)
1912 .finish()
1913 }
1914}
1915
1916#[repr(C)]
1917pub struct GstVideoOverlayComposition {
1918 _data: [u8; 0],
1919 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1920}
1921
1922impl ::std::fmt::Debug for GstVideoOverlayComposition {
1923 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1924 fDebugStruct<'_, '_>.debug_struct(&format!("GstVideoOverlayComposition @ {self:p}"))
1925 .finish()
1926 }
1927}
1928
1929#[derive(Copy, Clone)]
1930#[repr(C)]
1931pub struct GstVideoOverlayCompositionMeta {
1932 pub meta: gst::GstMeta,
1933 pub overlay: *mut GstVideoOverlayComposition,
1934}
1935
1936impl ::std::fmt::Debug for GstVideoOverlayCompositionMeta {
1937 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1938 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoOverlayCompositionMeta @ {self:p}"))
1939 .field("meta", &self.meta)
1940 .field(name:"overlay", &self.overlay)
1941 .finish()
1942 }
1943}
1944
1945#[derive(Copy, Clone)]
1946#[repr(C)]
1947pub struct GstVideoOverlayInterface {
1948 pub iface: gobject::GTypeInterface,
1949 pub expose: Option<unsafe extern "C" fn(*mut GstVideoOverlay)>,
1950 pub handle_events: Option<unsafe extern "C" fn(*mut GstVideoOverlay, gboolean)>,
1951 pub set_render_rectangle:
1952 Option<unsafe extern "C" fn(*mut GstVideoOverlay, c_int, c_int, c_int, c_int)>,
1953 pub set_window_handle: Option<unsafe extern "C" fn(*mut GstVideoOverlay, uintptr_t)>,
1954}
1955
1956impl ::std::fmt::Debug for GstVideoOverlayInterface {
1957 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1958 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoOverlayInterface @ {self:p}"))
1959 .field("iface", &self.iface)
1960 .field("expose", &self.expose)
1961 .field("handle_events", &self.handle_events)
1962 .field("set_render_rectangle", &self.set_render_rectangle)
1963 .field(name:"set_window_handle", &self.set_window_handle)
1964 .finish()
1965 }
1966}
1967
1968#[repr(C)]
1969pub struct GstVideoOverlayRectangle {
1970 _data: [u8; 0],
1971 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1972}
1973
1974impl ::std::fmt::Debug for GstVideoOverlayRectangle {
1975 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1976 fDebugStruct<'_, '_>.debug_struct(&format!("GstVideoOverlayRectangle @ {self:p}"))
1977 .finish()
1978 }
1979}
1980
1981#[derive(Copy, Clone)]
1982#[repr(C)]
1983pub struct GstVideoRectangle {
1984 pub x: c_int,
1985 pub y: c_int,
1986 pub w: c_int,
1987 pub h: c_int,
1988}
1989
1990impl ::std::fmt::Debug for GstVideoRectangle {
1991 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1992 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoRectangle @ {self:p}"))
1993 .field("x", &self.x)
1994 .field("y", &self.y)
1995 .field("w", &self.w)
1996 .field(name:"h", &self.h)
1997 .finish()
1998 }
1999}
2000
2001#[derive(Copy, Clone)]
2002#[repr(C)]
2003pub struct GstVideoRegionOfInterestMeta {
2004 pub meta: gst::GstMeta,
2005 pub roi_type: glib::GQuark,
2006 pub id: c_int,
2007 pub parent_id: c_int,
2008 pub x: c_uint,
2009 pub y: c_uint,
2010 pub w: c_uint,
2011 pub h: c_uint,
2012 pub params: *mut glib::GList,
2013}
2014
2015impl ::std::fmt::Debug for GstVideoRegionOfInterestMeta {
2016 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2017 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoRegionOfInterestMeta @ {self:p}"))
2018 .field("meta", &self.meta)
2019 .field("roi_type", &self.roi_type)
2020 .field("id", &self.id)
2021 .field("parent_id", &self.parent_id)
2022 .field("x", &self.x)
2023 .field("y", &self.y)
2024 .field("w", &self.w)
2025 .field("h", &self.h)
2026 .field(name:"params", &self.params)
2027 .finish()
2028 }
2029}
2030
2031#[derive(Copy, Clone)]
2032#[repr(C)]
2033pub struct GstVideoResampler {
2034 pub in_size: c_int,
2035 pub out_size: c_int,
2036 pub max_taps: c_uint,
2037 pub n_phases: c_uint,
2038 pub offset: *mut u32,
2039 pub phase: *mut u32,
2040 pub n_taps: *mut u32,
2041 pub taps: *mut c_double,
2042 pub _gst_reserved: [gpointer; 4],
2043}
2044
2045impl ::std::fmt::Debug for GstVideoResampler {
2046 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2047 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoResampler @ {self:p}"))
2048 .field("in_size", &self.in_size)
2049 .field("out_size", &self.out_size)
2050 .field("max_taps", &self.max_taps)
2051 .field("n_phases", &self.n_phases)
2052 .field("offset", &self.offset)
2053 .field("phase", &self.phase)
2054 .field("n_taps", &self.n_taps)
2055 .field(name:"taps", &self.taps)
2056 .finish()
2057 }
2058}
2059
2060#[derive(Copy, Clone)]
2061#[repr(C)]
2062pub struct GstVideoSEIUserDataUnregisteredMeta {
2063 pub meta: gst::GstMeta,
2064 pub uuid: [u8; 16],
2065 pub data: *mut u8,
2066 pub size: size_t,
2067}
2068
2069impl ::std::fmt::Debug for GstVideoSEIUserDataUnregisteredMeta {
2070 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2071 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoSEIUserDataUnregisteredMeta @ {self:p}"))
2072 .field("meta", &self.meta)
2073 .field("uuid", &self.uuid)
2074 .field("data", &self.data)
2075 .field(name:"size", &self.size)
2076 .finish()
2077 }
2078}
2079
2080#[repr(C)]
2081pub struct _GstVideoScaler {
2082 _data: [u8; 0],
2083 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2084}
2085
2086pub type GstVideoScaler = *mut _GstVideoScaler;
2087
2088#[derive(Copy, Clone)]
2089#[repr(C)]
2090pub struct GstVideoSinkClass {
2091 pub parent_class: gst_base::GstBaseSinkClass,
2092 pub show_frame:
2093 Option<unsafe extern "C" fn(*mut GstVideoSink, *mut gst::GstBuffer) -> gst::GstFlowReturn>,
2094 pub set_info: Option<
2095 unsafe extern "C" fn(*mut GstVideoSink, *mut gst::GstCaps, *const GstVideoInfo) -> gboolean,
2096 >,
2097 pub _gst_reserved: [gpointer; 3],
2098}
2099
2100impl ::std::fmt::Debug for GstVideoSinkClass {
2101 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2102 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoSinkClass @ {self:p}"))
2103 .field("parent_class", &self.parent_class)
2104 .field("show_frame", &self.show_frame)
2105 .field(name:"set_info", &self.set_info)
2106 .finish()
2107 }
2108}
2109
2110#[repr(C)]
2111pub struct _GstVideoSinkPrivate {
2112 _data: [u8; 0],
2113 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2114}
2115
2116pub type GstVideoSinkPrivate = *mut _GstVideoSinkPrivate;
2117
2118#[derive(Copy, Clone)]
2119#[repr(C)]
2120pub struct GstVideoTileInfo {
2121 pub width: c_uint,
2122 pub height: c_uint,
2123 pub stride: c_uint,
2124 pub size: c_uint,
2125 pub padding: [u32; 4],
2126}
2127
2128impl ::std::fmt::Debug for GstVideoTileInfo {
2129 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2130 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoTileInfo @ {self:p}"))
2131 .field("width", &self.width)
2132 .field("height", &self.height)
2133 .field("stride", &self.stride)
2134 .field(name:"size", &self.size)
2135 .finish()
2136 }
2137}
2138
2139#[derive(Copy, Clone)]
2140#[repr(C)]
2141pub struct GstVideoTimeCode {
2142 pub config: GstVideoTimeCodeConfig,
2143 pub hours: c_uint,
2144 pub minutes: c_uint,
2145 pub seconds: c_uint,
2146 pub frames: c_uint,
2147 pub field_count: c_uint,
2148}
2149
2150impl ::std::fmt::Debug for GstVideoTimeCode {
2151 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2152 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoTimeCode @ {self:p}"))
2153 .field("config", &self.config)
2154 .field("hours", &self.hours)
2155 .field("minutes", &self.minutes)
2156 .field("seconds", &self.seconds)
2157 .field("frames", &self.frames)
2158 .field(name:"field_count", &self.field_count)
2159 .finish()
2160 }
2161}
2162
2163#[derive(Copy, Clone)]
2164#[repr(C)]
2165pub struct GstVideoTimeCodeConfig {
2166 pub fps_n: c_uint,
2167 pub fps_d: c_uint,
2168 pub flags: GstVideoTimeCodeFlags,
2169 pub latest_daily_jam: *mut glib::GDateTime,
2170}
2171
2172impl ::std::fmt::Debug for GstVideoTimeCodeConfig {
2173 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2174 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoTimeCodeConfig @ {self:p}"))
2175 .field("fps_n", &self.fps_n)
2176 .field("fps_d", &self.fps_d)
2177 .field("flags", &self.flags)
2178 .field(name:"latest_daily_jam", &self.latest_daily_jam)
2179 .finish()
2180 }
2181}
2182
2183#[derive(Copy, Clone)]
2184#[repr(C)]
2185pub struct GstVideoTimeCodeInterval {
2186 pub hours: c_uint,
2187 pub minutes: c_uint,
2188 pub seconds: c_uint,
2189 pub frames: c_uint,
2190}
2191
2192impl ::std::fmt::Debug for GstVideoTimeCodeInterval {
2193 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2194 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoTimeCodeInterval @ {self:p}"))
2195 .field("hours", &self.hours)
2196 .field("minutes", &self.minutes)
2197 .field("seconds", &self.seconds)
2198 .field(name:"frames", &self.frames)
2199 .finish()
2200 }
2201}
2202
2203#[derive(Copy, Clone)]
2204#[repr(C)]
2205pub struct GstVideoTimeCodeMeta {
2206 pub meta: gst::GstMeta,
2207 pub tc: GstVideoTimeCode,
2208}
2209
2210impl ::std::fmt::Debug for GstVideoTimeCodeMeta {
2211 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2212 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoTimeCodeMeta @ {self:p}"))
2213 .field("meta", &self.meta)
2214 .field(name:"tc", &self.tc)
2215 .finish()
2216 }
2217}
2218
2219#[repr(C)]
2220pub struct GstVideoVBIEncoder {
2221 _data: [u8; 0],
2222 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2223}
2224
2225impl ::std::fmt::Debug for GstVideoVBIEncoder {
2226 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2227 fDebugStruct<'_, '_>.debug_struct(&format!("GstVideoVBIEncoder @ {self:p}"))
2228 .finish()
2229 }
2230}
2231
2232#[repr(C)]
2233pub struct GstVideoVBIParser {
2234 _data: [u8; 0],
2235 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2236}
2237
2238impl ::std::fmt::Debug for GstVideoVBIParser {
2239 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2240 fDebugStruct<'_, '_>.debug_struct(&format!("GstVideoVBIParser @ {self:p}"))
2241 .finish()
2242 }
2243}
2244
2245// Classes
2246#[derive(Copy, Clone)]
2247#[repr(C)]
2248pub struct GstColorBalanceChannel {
2249 pub parent: gobject::GObject,
2250 pub label: *mut c_char,
2251 pub min_value: c_int,
2252 pub max_value: c_int,
2253 pub _gst_reserved: [gpointer; 4],
2254}
2255
2256impl ::std::fmt::Debug for GstColorBalanceChannel {
2257 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2258 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstColorBalanceChannel @ {self:p}"))
2259 .field("parent", &self.parent)
2260 .field("label", &self.label)
2261 .field("min_value", &self.min_value)
2262 .field(name:"max_value", &self.max_value)
2263 .finish()
2264 }
2265}
2266
2267#[derive(Copy, Clone)]
2268#[repr(C)]
2269pub struct GstVideoAggregator {
2270 pub aggregator: gst_base::GstAggregator,
2271 pub info: GstVideoInfo,
2272 pub priv_: *mut GstVideoAggregatorPrivate,
2273 pub _gst_reserved: [gpointer; 20],
2274}
2275
2276impl ::std::fmt::Debug for GstVideoAggregator {
2277 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2278 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoAggregator @ {self:p}"))
2279 .field("aggregator", &self.aggregator)
2280 .field(name:"info", &self.info)
2281 .finish()
2282 }
2283}
2284
2285#[derive(Copy, Clone)]
2286#[repr(C)]
2287pub struct GstVideoAggregatorConvertPad {
2288 pub parent: GstVideoAggregatorPad,
2289 pub priv_: *mut GstVideoAggregatorConvertPadPrivate,
2290 pub _gst_reserved: [gpointer; 4],
2291}
2292
2293impl ::std::fmt::Debug for GstVideoAggregatorConvertPad {
2294 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2295 fDebugStruct<'_, '_>.debug_struct(&format!("GstVideoAggregatorConvertPad @ {self:p}"))
2296 .finish()
2297 }
2298}
2299
2300#[derive(Copy, Clone)]
2301#[repr(C)]
2302pub struct GstVideoAggregatorPad {
2303 pub parent: gst_base::GstAggregatorPad,
2304 pub info: GstVideoInfo,
2305 pub priv_: *mut GstVideoAggregatorPadPrivate,
2306 pub _gst_reserved: [gpointer; 4],
2307}
2308
2309impl ::std::fmt::Debug for GstVideoAggregatorPad {
2310 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2311 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoAggregatorPad @ {self:p}"))
2312 .field("parent", &self.parent)
2313 .field(name:"info", &self.info)
2314 .finish()
2315 }
2316}
2317
2318#[derive(Copy, Clone)]
2319#[repr(C)]
2320pub struct GstVideoAggregatorParallelConvertPad {
2321 pub parent_instance: GstVideoAggregatorConvertPad,
2322}
2323
2324impl ::std::fmt::Debug for GstVideoAggregatorParallelConvertPad {
2325 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2326 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoAggregatorParallelConvertPad @ {self:p}"))
2327 .field(name:"parent_instance", &self.parent_instance)
2328 .finish()
2329 }
2330}
2331
2332#[derive(Copy, Clone)]
2333#[repr(C)]
2334pub struct GstVideoBufferPool {
2335 pub bufferpool: gst::GstBufferPool,
2336 pub priv_: *mut GstVideoBufferPoolPrivate,
2337}
2338
2339impl ::std::fmt::Debug for GstVideoBufferPool {
2340 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2341 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoBufferPool @ {self:p}"))
2342 .field("bufferpool", &self.bufferpool)
2343 .field(name:"priv_", &self.priv_)
2344 .finish()
2345 }
2346}
2347
2348#[derive(Copy, Clone)]
2349#[repr(C)]
2350pub struct GstVideoDecoder {
2351 pub element: gst::GstElement,
2352 pub sinkpad: *mut gst::GstPad,
2353 pub srcpad: *mut gst::GstPad,
2354 pub stream_lock: glib::GRecMutex,
2355 pub input_segment: gst::GstSegment,
2356 pub output_segment: gst::GstSegment,
2357 pub priv_: *mut GstVideoDecoderPrivate,
2358 pub padding: [gpointer; 20],
2359}
2360
2361impl ::std::fmt::Debug for GstVideoDecoder {
2362 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2363 fDebugStruct<'_, '_>.debug_struct(&format!("GstVideoDecoder @ {self:p}"))
2364 .finish()
2365 }
2366}
2367
2368#[derive(Copy, Clone)]
2369#[repr(C)]
2370pub struct GstVideoEncoder {
2371 pub element: gst::GstElement,
2372 pub sinkpad: *mut gst::GstPad,
2373 pub srcpad: *mut gst::GstPad,
2374 pub stream_lock: glib::GRecMutex,
2375 pub input_segment: gst::GstSegment,
2376 pub output_segment: gst::GstSegment,
2377 pub priv_: *mut GstVideoEncoderPrivate,
2378 pub padding: [gpointer; 20],
2379}
2380
2381impl ::std::fmt::Debug for GstVideoEncoder {
2382 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2383 fDebugStruct<'_, '_>.debug_struct(&format!("GstVideoEncoder @ {self:p}"))
2384 .finish()
2385 }
2386}
2387
2388#[derive(Copy, Clone)]
2389#[repr(C)]
2390pub struct GstVideoFilter {
2391 pub element: gst_base::GstBaseTransform,
2392 pub negotiated: gboolean,
2393 pub in_info: GstVideoInfo,
2394 pub out_info: GstVideoInfo,
2395 pub _gst_reserved: [gpointer; 4],
2396}
2397
2398impl ::std::fmt::Debug for GstVideoFilter {
2399 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2400 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoFilter @ {self:p}"))
2401 .field("element", &self.element)
2402 .field("negotiated", &self.negotiated)
2403 .field("in_info", &self.in_info)
2404 .field(name:"out_info", &self.out_info)
2405 .finish()
2406 }
2407}
2408
2409#[repr(C)]
2410pub struct GstVideoMultiviewFlagsSet {
2411 _data: [u8; 0],
2412 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2413}
2414
2415impl ::std::fmt::Debug for GstVideoMultiviewFlagsSet {
2416 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2417 fDebugStruct<'_, '_>.debug_struct(&format!("GstVideoMultiviewFlagsSet @ {self:p}"))
2418 .finish()
2419 }
2420}
2421
2422#[derive(Copy, Clone)]
2423#[repr(C)]
2424pub struct GstVideoSink {
2425 pub element: gst_base::GstBaseSink,
2426 pub width: c_int,
2427 pub height: c_int,
2428 pub priv_: *mut GstVideoSinkPrivate,
2429 pub _gst_reserved: [gpointer; 4],
2430}
2431
2432impl ::std::fmt::Debug for GstVideoSink {
2433 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2434 f&mut DebugStruct<'_, '_>.debug_struct(&format!("GstVideoSink @ {self:p}"))
2435 .field("element", &self.element)
2436 .field("width", &self.width)
2437 .field(name:"height", &self.height)
2438 .finish()
2439 }
2440}
2441
2442// Interfaces
2443#[repr(C)]
2444pub struct GstColorBalance {
2445 _data: [u8; 0],
2446 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2447}
2448
2449impl ::std::fmt::Debug for GstColorBalance {
2450 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2451 write!(f, "GstColorBalance @ {self:p}")
2452 }
2453}
2454
2455#[repr(C)]
2456pub struct GstNavigation {
2457 _data: [u8; 0],
2458 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2459}
2460
2461impl ::std::fmt::Debug for GstNavigation {
2462 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2463 write!(f, "GstNavigation @ {self:p}")
2464 }
2465}
2466
2467#[repr(C)]
2468pub struct GstVideoDirection {
2469 _data: [u8; 0],
2470 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2471}
2472
2473impl ::std::fmt::Debug for GstVideoDirection {
2474 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2475 write!(f, "GstVideoDirection @ {self:p}")
2476 }
2477}
2478
2479#[repr(C)]
2480pub struct GstVideoOrientation {
2481 _data: [u8; 0],
2482 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2483}
2484
2485impl ::std::fmt::Debug for GstVideoOrientation {
2486 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2487 write!(f, "GstVideoOrientation @ {self:p}")
2488 }
2489}
2490
2491#[repr(C)]
2492pub struct GstVideoOverlay {
2493 _data: [u8; 0],
2494 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2495}
2496
2497impl ::std::fmt::Debug for GstVideoOverlay {
2498 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2499 write!(f, "GstVideoOverlay @ {self:p}")
2500 }
2501}
2502
2503#[link(name = "gstvideo-1.0")]
2504extern "C" {
2505
2506 //=========================================================================
2507 // GstColorBalanceType
2508 //=========================================================================
2509 pub fn gst_color_balance_type_get_type() -> GType;
2510
2511 //=========================================================================
2512 // GstNavigationCommand
2513 //=========================================================================
2514 pub fn gst_navigation_command_get_type() -> GType;
2515
2516 //=========================================================================
2517 // GstNavigationEventType
2518 //=========================================================================
2519 pub fn gst_navigation_event_type_get_type() -> GType;
2520
2521 //=========================================================================
2522 // GstNavigationMessageType
2523 //=========================================================================
2524 pub fn gst_navigation_message_type_get_type() -> GType;
2525
2526 //=========================================================================
2527 // GstNavigationQueryType
2528 //=========================================================================
2529 pub fn gst_navigation_query_type_get_type() -> GType;
2530
2531 //=========================================================================
2532 // GstVideoAFDSpec
2533 //=========================================================================
2534 #[cfg(feature = "v1_18")]
2535 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2536 pub fn gst_video_afd_spec_get_type() -> GType;
2537
2538 //=========================================================================
2539 // GstVideoAFDValue
2540 //=========================================================================
2541 #[cfg(feature = "v1_18")]
2542 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2543 pub fn gst_video_afd_value_get_type() -> GType;
2544
2545 //=========================================================================
2546 // GstVideoAlphaMode
2547 //=========================================================================
2548 pub fn gst_video_alpha_mode_get_type() -> GType;
2549
2550 //=========================================================================
2551 // GstVideoAncillaryDID
2552 //=========================================================================
2553 #[cfg(feature = "v1_16")]
2554 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2555 pub fn gst_video_ancillary_did_get_type() -> GType;
2556
2557 //=========================================================================
2558 // GstVideoAncillaryDID16
2559 //=========================================================================
2560 #[cfg(feature = "v1_16")]
2561 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2562 pub fn gst_video_ancillary_di_d16_get_type() -> GType;
2563
2564 //=========================================================================
2565 // GstVideoCaptionType
2566 //=========================================================================
2567 #[cfg(feature = "v1_16")]
2568 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2569 pub fn gst_video_caption_type_get_type() -> GType;
2570 #[cfg(feature = "v1_16")]
2571 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2572 pub fn gst_video_caption_type_from_caps(caps: *const gst::GstCaps) -> GstVideoCaptionType;
2573 #[cfg(feature = "v1_16")]
2574 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2575 pub fn gst_video_caption_type_to_caps(type_: GstVideoCaptionType) -> *mut gst::GstCaps;
2576
2577 //=========================================================================
2578 // GstVideoChromaMethod
2579 //=========================================================================
2580 pub fn gst_video_chroma_method_get_type() -> GType;
2581
2582 //=========================================================================
2583 // GstVideoChromaMode
2584 //=========================================================================
2585 pub fn gst_video_chroma_mode_get_type() -> GType;
2586
2587 //=========================================================================
2588 // GstVideoColorMatrix
2589 //=========================================================================
2590 pub fn gst_video_color_matrix_get_type() -> GType;
2591 #[cfg(feature = "v1_18")]
2592 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2593 pub fn gst_video_color_matrix_from_iso(value: c_uint) -> GstVideoColorMatrix;
2594 pub fn gst_video_color_matrix_get_Kr_Kb(
2595 matrix: GstVideoColorMatrix,
2596 Kr: *mut c_double,
2597 Kb: *mut c_double,
2598 ) -> gboolean;
2599 #[cfg(feature = "v1_18")]
2600 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2601 pub fn gst_video_color_matrix_to_iso(matrix: GstVideoColorMatrix) -> c_uint;
2602
2603 //=========================================================================
2604 // GstVideoColorPrimaries
2605 //=========================================================================
2606 pub fn gst_video_color_primaries_get_type() -> GType;
2607 #[cfg(feature = "v1_18")]
2608 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2609 pub fn gst_video_color_primaries_from_iso(value: c_uint) -> GstVideoColorPrimaries;
2610 pub fn gst_video_color_primaries_get_info(
2611 primaries: GstVideoColorPrimaries,
2612 ) -> *const GstVideoColorPrimariesInfo;
2613 #[cfg(feature = "v1_22")]
2614 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
2615 pub fn gst_video_color_primaries_is_equivalent(
2616 primaries: GstVideoColorPrimaries,
2617 other: GstVideoColorPrimaries,
2618 ) -> gboolean;
2619 #[cfg(feature = "v1_18")]
2620 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2621 pub fn gst_video_color_primaries_to_iso(primaries: GstVideoColorPrimaries) -> c_uint;
2622
2623 //=========================================================================
2624 // GstVideoColorRange
2625 //=========================================================================
2626 pub fn gst_video_color_range_get_type() -> GType;
2627 pub fn gst_video_color_range_offsets(
2628 range: GstVideoColorRange,
2629 info: *const GstVideoFormatInfo,
2630 offset: *mut [c_int; 4],
2631 scale: *mut [c_int; 4],
2632 );
2633
2634 //=========================================================================
2635 // GstVideoDitherMethod
2636 //=========================================================================
2637 pub fn gst_video_dither_method_get_type() -> GType;
2638
2639 //=========================================================================
2640 // GstVideoFieldOrder
2641 //=========================================================================
2642 pub fn gst_video_field_order_get_type() -> GType;
2643 pub fn gst_video_field_order_from_string(order: *const c_char) -> GstVideoFieldOrder;
2644 pub fn gst_video_field_order_to_string(order: GstVideoFieldOrder) -> *const c_char;
2645
2646 //=========================================================================
2647 // GstVideoFormat
2648 //=========================================================================
2649 pub fn gst_video_format_get_type() -> GType;
2650 pub fn gst_video_format_from_fourcc(fourcc: u32) -> GstVideoFormat;
2651 pub fn gst_video_format_from_masks(
2652 depth: c_int,
2653 bpp: c_int,
2654 endianness: c_int,
2655 red_mask: c_uint,
2656 green_mask: c_uint,
2657 blue_mask: c_uint,
2658 alpha_mask: c_uint,
2659 ) -> GstVideoFormat;
2660 pub fn gst_video_format_from_string(format: *const c_char) -> GstVideoFormat;
2661 pub fn gst_video_format_get_info(format: GstVideoFormat) -> *const GstVideoFormatInfo;
2662 pub fn gst_video_format_get_palette(format: GstVideoFormat, size: *mut size_t)
2663 -> gconstpointer;
2664 pub fn gst_video_format_to_fourcc(format: GstVideoFormat) -> u32;
2665 pub fn gst_video_format_to_string(format: GstVideoFormat) -> *const c_char;
2666
2667 //=========================================================================
2668 // GstVideoGLTextureOrientation
2669 //=========================================================================
2670 #[cfg(feature = "v1_20")]
2671 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2672 pub fn gst_video_gl_texture_orientation_get_type() -> GType;
2673
2674 //=========================================================================
2675 // GstVideoGLTextureType
2676 //=========================================================================
2677 #[cfg(feature = "v1_20")]
2678 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2679 pub fn gst_video_gl_texture_type_get_type() -> GType;
2680
2681 //=========================================================================
2682 // GstVideoGammaMode
2683 //=========================================================================
2684 pub fn gst_video_gamma_mode_get_type() -> GType;
2685
2686 //=========================================================================
2687 // GstVideoInterlaceMode
2688 //=========================================================================
2689 pub fn gst_video_interlace_mode_get_type() -> GType;
2690 pub fn gst_video_interlace_mode_from_string(mode: *const c_char) -> GstVideoInterlaceMode;
2691 pub fn gst_video_interlace_mode_to_string(mode: GstVideoInterlaceMode) -> *const c_char;
2692
2693 //=========================================================================
2694 // GstVideoMatrixMode
2695 //=========================================================================
2696 pub fn gst_video_matrix_mode_get_type() -> GType;
2697
2698 //=========================================================================
2699 // GstVideoMultiviewFramePacking
2700 //=========================================================================
2701 pub fn gst_video_multiview_frame_packing_get_type() -> GType;
2702
2703 //=========================================================================
2704 // GstVideoMultiviewMode
2705 //=========================================================================
2706 pub fn gst_video_multiview_mode_get_type() -> GType;
2707 pub fn gst_video_multiview_mode_from_caps_string(
2708 caps_mview_mode: *const c_char,
2709 ) -> GstVideoMultiviewMode;
2710 pub fn gst_video_multiview_mode_to_caps_string(
2711 mview_mode: GstVideoMultiviewMode,
2712 ) -> *const c_char;
2713
2714 //=========================================================================
2715 // GstVideoOrientationMethod
2716 //=========================================================================
2717 pub fn gst_video_orientation_method_get_type() -> GType;
2718
2719 //=========================================================================
2720 // GstVideoPrimariesMode
2721 //=========================================================================
2722 pub fn gst_video_primaries_mode_get_type() -> GType;
2723
2724 //=========================================================================
2725 // GstVideoResamplerMethod
2726 //=========================================================================
2727 pub fn gst_video_resampler_method_get_type() -> GType;
2728
2729 //=========================================================================
2730 // GstVideoTileMode
2731 //=========================================================================
2732 pub fn gst_video_tile_mode_get_type() -> GType;
2733
2734 //=========================================================================
2735 // GstVideoTileType
2736 //=========================================================================
2737 pub fn gst_video_tile_type_get_type() -> GType;
2738
2739 //=========================================================================
2740 // GstVideoTransferFunction
2741 //=========================================================================
2742 pub fn gst_video_transfer_function_get_type() -> GType;
2743 #[cfg(feature = "v1_20")]
2744 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2745 pub fn gst_video_transfer_function_decode(
2746 func: GstVideoTransferFunction,
2747 val: c_double,
2748 ) -> c_double;
2749 #[cfg(feature = "v1_20")]
2750 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2751 pub fn gst_video_transfer_function_encode(
2752 func: GstVideoTransferFunction,
2753 val: c_double,
2754 ) -> c_double;
2755 #[cfg(feature = "v1_18")]
2756 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2757 pub fn gst_video_transfer_function_from_iso(value: c_uint) -> GstVideoTransferFunction;
2758 #[cfg(feature = "v1_18")]
2759 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2760 pub fn gst_video_transfer_function_is_equivalent(
2761 from_func: GstVideoTransferFunction,
2762 from_bpp: c_uint,
2763 to_func: GstVideoTransferFunction,
2764 to_bpp: c_uint,
2765 ) -> gboolean;
2766 #[cfg(feature = "v1_18")]
2767 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2768 pub fn gst_video_transfer_function_to_iso(func: GstVideoTransferFunction) -> c_uint;
2769
2770 //=========================================================================
2771 // GstVideoVBIParserResult
2772 //=========================================================================
2773 #[cfg(feature = "v1_16")]
2774 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2775 pub fn gst_video_vbi_parser_result_get_type() -> GType;
2776
2777 //=========================================================================
2778 // GstNavigationModifierType
2779 //=========================================================================
2780 #[cfg(feature = "v1_22")]
2781 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
2782 pub fn gst_navigation_modifier_type_get_type() -> GType;
2783
2784 //=========================================================================
2785 // GstVideoBufferFlags
2786 //=========================================================================
2787 pub fn gst_video_buffer_flags_get_type() -> GType;
2788
2789 //=========================================================================
2790 // GstVideoChromaFlags
2791 //=========================================================================
2792 pub fn gst_video_chroma_flags_get_type() -> GType;
2793
2794 //=========================================================================
2795 // GstVideoChromaSite
2796 //=========================================================================
2797 pub fn gst_video_chroma_site_get_type() -> GType;
2798 #[cfg(feature = "v1_20")]
2799 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2800 pub fn gst_video_chroma_site_from_string(s: *const c_char) -> GstVideoChromaSite;
2801 #[cfg(feature = "v1_20")]
2802 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2803 pub fn gst_video_chroma_site_to_string(site: GstVideoChromaSite) -> *mut c_char;
2804
2805 //=========================================================================
2806 // GstVideoCodecFrameFlags
2807 //=========================================================================
2808 #[cfg(feature = "v1_20")]
2809 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2810 pub fn gst_video_codec_frame_flags_get_type() -> GType;
2811
2812 //=========================================================================
2813 // GstVideoDecoderRequestSyncPointFlags
2814 //=========================================================================
2815 #[cfg(feature = "v1_20")]
2816 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2817 pub fn gst_video_decoder_request_sync_point_flags_get_type() -> GType;
2818
2819 //=========================================================================
2820 // GstVideoDitherFlags
2821 //=========================================================================
2822 pub fn gst_video_dither_flags_get_type() -> GType;
2823
2824 //=========================================================================
2825 // GstVideoFlags
2826 //=========================================================================
2827 pub fn gst_video_flags_get_type() -> GType;
2828
2829 //=========================================================================
2830 // GstVideoFormatFlags
2831 //=========================================================================
2832 pub fn gst_video_format_flags_get_type() -> GType;
2833
2834 //=========================================================================
2835 // GstVideoFrameFlags
2836 //=========================================================================
2837 pub fn gst_video_frame_flags_get_type() -> GType;
2838
2839 //=========================================================================
2840 // GstVideoFrameMapFlags
2841 //=========================================================================
2842 pub fn gst_video_frame_map_flags_get_type() -> GType;
2843
2844 //=========================================================================
2845 // GstVideoMultiviewFlags
2846 //=========================================================================
2847 pub fn gst_video_multiview_flags_get_type() -> GType;
2848
2849 //=========================================================================
2850 // GstVideoOverlayFormatFlags
2851 //=========================================================================
2852 #[cfg(feature = "v1_16")]
2853 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2854 pub fn gst_video_overlay_format_flags_get_type() -> GType;
2855
2856 //=========================================================================
2857 // GstVideoPackFlags
2858 //=========================================================================
2859 pub fn gst_video_pack_flags_get_type() -> GType;
2860
2861 //=========================================================================
2862 // GstVideoResamplerFlags
2863 //=========================================================================
2864 pub fn gst_video_resampler_flags_get_type() -> GType;
2865
2866 //=========================================================================
2867 // GstVideoScalerFlags
2868 //=========================================================================
2869 pub fn gst_video_scaler_flags_get_type() -> GType;
2870
2871 //=========================================================================
2872 // GstVideoTimeCodeFlags
2873 //=========================================================================
2874 #[cfg(feature = "v1_18")]
2875 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2876 pub fn gst_video_time_code_flags_get_type() -> GType;
2877
2878 //=========================================================================
2879 // GstVideoAFDMeta
2880 //=========================================================================
2881 #[cfg(feature = "v1_18")]
2882 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2883 pub fn gst_video_afd_meta_get_info() -> *const gst::GstMetaInfo;
2884
2885 //=========================================================================
2886 // GstVideoAffineTransformationMeta
2887 //=========================================================================
2888 pub fn gst_video_affine_transformation_meta_apply_matrix(
2889 meta: *mut GstVideoAffineTransformationMeta,
2890 matrix: *const [c_float; 16],
2891 );
2892 pub fn gst_video_affine_transformation_meta_get_info() -> *const gst::GstMetaInfo;
2893
2894 //=========================================================================
2895 // GstVideoAlignment
2896 //=========================================================================
2897 pub fn gst_video_alignment_reset(align: *mut GstVideoAlignment);
2898
2899 //=========================================================================
2900 // GstVideoBarMeta
2901 //=========================================================================
2902 #[cfg(feature = "v1_18")]
2903 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2904 pub fn gst_video_bar_meta_get_info() -> *const gst::GstMetaInfo;
2905
2906 //=========================================================================
2907 // GstVideoCaptionMeta
2908 //=========================================================================
2909 #[cfg(feature = "v1_16")]
2910 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2911 pub fn gst_video_caption_meta_get_info() -> *const gst::GstMetaInfo;
2912
2913 //=========================================================================
2914 // GstVideoChromaResample
2915 //=========================================================================
2916 pub fn gst_video_chroma_resample_free(resample: *mut GstVideoChromaResample);
2917 pub fn gst_video_chroma_resample_get_info(
2918 resample: *mut GstVideoChromaResample,
2919 n_lines: *mut c_uint,
2920 offset: *mut c_int,
2921 );
2922 pub fn gst_video_chroma_resample_new(
2923 method: GstVideoChromaMethod,
2924 site: GstVideoChromaSite,
2925 flags: GstVideoChromaFlags,
2926 format: GstVideoFormat,
2927 h_factor: c_int,
2928 v_factor: c_int,
2929 ) -> *mut GstVideoChromaResample;
2930
2931 //=========================================================================
2932 // GstVideoCodecAlphaMeta
2933 //=========================================================================
2934 #[cfg(feature = "v1_20")]
2935 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2936 pub fn gst_video_codec_alpha_meta_get_info() -> *const gst::GstMetaInfo;
2937
2938 //=========================================================================
2939 // GstVideoCodecFrame
2940 //=========================================================================
2941 pub fn gst_video_codec_frame_get_type() -> GType;
2942 pub fn gst_video_codec_frame_get_user_data(frame: *mut GstVideoCodecFrame) -> gpointer;
2943 pub fn gst_video_codec_frame_ref(frame: *mut GstVideoCodecFrame) -> *mut GstVideoCodecFrame;
2944 pub fn gst_video_codec_frame_set_user_data(
2945 frame: *mut GstVideoCodecFrame,
2946 user_data: gpointer,
2947 notify: glib::GDestroyNotify,
2948 );
2949 pub fn gst_video_codec_frame_unref(frame: *mut GstVideoCodecFrame);
2950
2951 //=========================================================================
2952 // GstVideoCodecState
2953 //=========================================================================
2954 pub fn gst_video_codec_state_get_type() -> GType;
2955 pub fn gst_video_codec_state_ref(state: *mut GstVideoCodecState) -> *mut GstVideoCodecState;
2956 pub fn gst_video_codec_state_unref(state: *mut GstVideoCodecState);
2957
2958 //=========================================================================
2959 // GstVideoColorimetry
2960 //=========================================================================
2961 pub fn gst_video_colorimetry_from_string(
2962 cinfo: *mut GstVideoColorimetry,
2963 color: *const c_char,
2964 ) -> gboolean;
2965 pub fn gst_video_colorimetry_is_equal(
2966 cinfo: *const GstVideoColorimetry,
2967 other: *const GstVideoColorimetry,
2968 ) -> gboolean;
2969 #[cfg(feature = "v1_22")]
2970 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
2971 pub fn gst_video_colorimetry_is_equivalent(
2972 cinfo: *const GstVideoColorimetry,
2973 bitdepth: c_uint,
2974 other: *const GstVideoColorimetry,
2975 other_bitdepth: c_uint,
2976 ) -> gboolean;
2977 pub fn gst_video_colorimetry_matches(
2978 cinfo: *const GstVideoColorimetry,
2979 color: *const c_char,
2980 ) -> gboolean;
2981 pub fn gst_video_colorimetry_to_string(cinfo: *const GstVideoColorimetry) -> *mut c_char;
2982
2983 //=========================================================================
2984 // GstVideoContentLightLevel
2985 //=========================================================================
2986 #[cfg(feature = "v1_18")]
2987 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2988 pub fn gst_video_content_light_level_add_to_caps(
2989 linfo: *const GstVideoContentLightLevel,
2990 caps: *mut gst::GstCaps,
2991 ) -> gboolean;
2992 #[cfg(feature = "v1_18")]
2993 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2994 pub fn gst_video_content_light_level_from_caps(
2995 linfo: *mut GstVideoContentLightLevel,
2996 caps: *const gst::GstCaps,
2997 ) -> gboolean;
2998 #[cfg(feature = "v1_18")]
2999 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3000 pub fn gst_video_content_light_level_from_string(
3001 linfo: *mut GstVideoContentLightLevel,
3002 level: *const c_char,
3003 ) -> gboolean;
3004 #[cfg(feature = "v1_18")]
3005 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3006 pub fn gst_video_content_light_level_init(linfo: *mut GstVideoContentLightLevel);
3007 #[cfg(feature = "v1_20")]
3008 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3009 pub fn gst_video_content_light_level_is_equal(
3010 linfo: *const GstVideoContentLightLevel,
3011 other: *const GstVideoContentLightLevel,
3012 ) -> gboolean;
3013 #[cfg(feature = "v1_18")]
3014 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3015 pub fn gst_video_content_light_level_to_string(
3016 linfo: *const GstVideoContentLightLevel,
3017 ) -> *mut c_char;
3018
3019 //=========================================================================
3020 // GstVideoConverter
3021 //=========================================================================
3022 pub fn gst_video_converter_frame(
3023 convert: *mut GstVideoConverter,
3024 src: *const GstVideoFrame,
3025 dest: *mut GstVideoFrame,
3026 );
3027 #[cfg(feature = "v1_20")]
3028 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3029 pub fn gst_video_converter_frame_finish(convert: *mut GstVideoConverter);
3030 pub fn gst_video_converter_free(convert: *mut GstVideoConverter);
3031 pub fn gst_video_converter_get_config(
3032 convert: *mut GstVideoConverter,
3033 ) -> *const gst::GstStructure;
3034 #[cfg(feature = "v1_22")]
3035 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
3036 pub fn gst_video_converter_get_in_info(convert: *mut GstVideoConverter) -> *const GstVideoInfo;
3037 #[cfg(feature = "v1_22")]
3038 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
3039 pub fn gst_video_converter_get_out_info(convert: *mut GstVideoConverter)
3040 -> *const GstVideoInfo;
3041 pub fn gst_video_converter_set_config(
3042 convert: *mut GstVideoConverter,
3043 config: *mut gst::GstStructure,
3044 ) -> gboolean;
3045 pub fn gst_video_converter_new(
3046 in_info: *const GstVideoInfo,
3047 out_info: *const GstVideoInfo,
3048 config: *mut gst::GstStructure,
3049 ) -> *mut GstVideoConverter;
3050 #[cfg(feature = "v1_20")]
3051 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3052 pub fn gst_video_converter_new_with_pool(
3053 in_info: *const GstVideoInfo,
3054 out_info: *const GstVideoInfo,
3055 config: *mut gst::GstStructure,
3056 pool: *mut gst::GstTaskPool,
3057 ) -> *mut GstVideoConverter;
3058
3059 //=========================================================================
3060 // GstVideoCropMeta
3061 //=========================================================================
3062 pub fn gst_video_crop_meta_get_info() -> *const gst::GstMetaInfo;
3063
3064 //=========================================================================
3065 // GstVideoDither
3066 //=========================================================================
3067 pub fn gst_video_dither_free(dither: *mut GstVideoDither);
3068 pub fn gst_video_dither_line(
3069 dither: *mut GstVideoDither,
3070 line: gpointer,
3071 x: c_uint,
3072 y: c_uint,
3073 width: c_uint,
3074 );
3075 pub fn gst_video_dither_new(
3076 method: GstVideoDitherMethod,
3077 flags: GstVideoDitherFlags,
3078 format: GstVideoFormat,
3079 quantizer: *mut c_uint,
3080 width: c_uint,
3081 ) -> *mut GstVideoDither;
3082
3083 //=========================================================================
3084 // GstVideoFormatInfo
3085 //=========================================================================
3086 #[cfg(feature = "v1_18")]
3087 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3088 pub fn gst_video_format_info_component(
3089 info: *const GstVideoFormatInfo,
3090 plane: c_uint,
3091 components: *mut c_int,
3092 );
3093 #[cfg(feature = "v1_22")]
3094 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
3095 pub fn gst_video_format_info_extrapolate_stride(
3096 finfo: *const GstVideoFormatInfo,
3097 plane: c_int,
3098 stride: c_int,
3099 ) -> c_int;
3100
3101 //=========================================================================
3102 // GstVideoFrame
3103 //=========================================================================
3104 pub fn gst_video_frame_copy(dest: *mut GstVideoFrame, src: *const GstVideoFrame) -> gboolean;
3105 pub fn gst_video_frame_copy_plane(
3106 dest: *mut GstVideoFrame,
3107 src: *const GstVideoFrame,
3108 plane: c_uint,
3109 ) -> gboolean;
3110 pub fn gst_video_frame_unmap(frame: *mut GstVideoFrame);
3111 pub fn gst_video_frame_map(
3112 frame: *mut GstVideoFrame,
3113 info: *const GstVideoInfo,
3114 buffer: *mut gst::GstBuffer,
3115 flags: gst::GstMapFlags,
3116 ) -> gboolean;
3117 pub fn gst_video_frame_map_id(
3118 frame: *mut GstVideoFrame,
3119 info: *const GstVideoInfo,
3120 buffer: *mut gst::GstBuffer,
3121 id: c_int,
3122 flags: gst::GstMapFlags,
3123 ) -> gboolean;
3124
3125 //=========================================================================
3126 // GstVideoGLTextureUploadMeta
3127 //=========================================================================
3128 pub fn gst_video_gl_texture_upload_meta_upload(
3129 meta: *mut GstVideoGLTextureUploadMeta,
3130 texture_id: *mut c_uint,
3131 ) -> gboolean;
3132 pub fn gst_video_gl_texture_upload_meta_get_info() -> *const gst::GstMetaInfo;
3133
3134 //=========================================================================
3135 // GstVideoInfo
3136 //=========================================================================
3137 pub fn gst_video_info_get_type() -> GType;
3138 pub fn gst_video_info_new() -> *mut GstVideoInfo;
3139 #[cfg(feature = "v1_20")]
3140 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3141 pub fn gst_video_info_new_from_caps(caps: *const gst::GstCaps) -> *mut GstVideoInfo;
3142 pub fn gst_video_info_align(info: *mut GstVideoInfo, align: *mut GstVideoAlignment)
3143 -> gboolean;
3144 #[cfg(feature = "v1_18")]
3145 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3146 pub fn gst_video_info_align_full(
3147 info: *mut GstVideoInfo,
3148 align: *mut GstVideoAlignment,
3149 plane_size: *mut size_t,
3150 ) -> gboolean;
3151 pub fn gst_video_info_convert(
3152 info: *const GstVideoInfo,
3153 src_format: gst::GstFormat,
3154 src_value: i64,
3155 dest_format: gst::GstFormat,
3156 dest_value: *mut i64,
3157 ) -> gboolean;
3158 pub fn gst_video_info_copy(info: *const GstVideoInfo) -> *mut GstVideoInfo;
3159 pub fn gst_video_info_free(info: *mut GstVideoInfo);
3160 pub fn gst_video_info_is_equal(
3161 info: *const GstVideoInfo,
3162 other: *const GstVideoInfo,
3163 ) -> gboolean;
3164 pub fn gst_video_info_set_format(
3165 info: *mut GstVideoInfo,
3166 format: GstVideoFormat,
3167 width: c_uint,
3168 height: c_uint,
3169 ) -> gboolean;
3170 #[cfg(feature = "v1_16")]
3171 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3172 pub fn gst_video_info_set_interlaced_format(
3173 info: *mut GstVideoInfo,
3174 format: GstVideoFormat,
3175 mode: GstVideoInterlaceMode,
3176 width: c_uint,
3177 height: c_uint,
3178 ) -> gboolean;
3179 pub fn gst_video_info_to_caps(info: *const GstVideoInfo) -> *mut gst::GstCaps;
3180 pub fn gst_video_info_from_caps(info: *mut GstVideoInfo, caps: *const gst::GstCaps)
3181 -> gboolean;
3182 pub fn gst_video_info_init(info: *mut GstVideoInfo);
3183
3184 //=========================================================================
3185 // GstVideoInfoDmaDrm
3186 //=========================================================================
3187 #[cfg(feature = "v1_24")]
3188 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
3189 pub fn gst_video_info_dma_drm_get_type() -> GType;
3190 #[cfg(feature = "v1_24")]
3191 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
3192 pub fn gst_video_info_dma_drm_new() -> *mut GstVideoInfoDmaDrm;
3193 #[cfg(feature = "v1_24")]
3194 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
3195 pub fn gst_video_info_dma_drm_new_from_caps(
3196 caps: *const gst::GstCaps,
3197 ) -> *mut GstVideoInfoDmaDrm;
3198 #[cfg(feature = "v1_24")]
3199 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
3200 pub fn gst_video_info_dma_drm_free(drm_info: *mut GstVideoInfoDmaDrm);
3201 #[cfg(feature = "v1_24")]
3202 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
3203 pub fn gst_video_info_dma_drm_to_caps(drm_info: *const GstVideoInfoDmaDrm)
3204 -> *mut gst::GstCaps;
3205 #[cfg(feature = "v1_24")]
3206 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
3207 pub fn gst_video_info_dma_drm_to_video_info(
3208 drm_info: *const GstVideoInfoDmaDrm,
3209 info: *mut GstVideoInfo,
3210 ) -> gboolean;
3211 #[cfg(feature = "v1_24")]
3212 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
3213 pub fn gst_video_info_dma_drm_from_caps(
3214 drm_info: *mut GstVideoInfoDmaDrm,
3215 caps: *const gst::GstCaps,
3216 ) -> gboolean;
3217 #[cfg(feature = "v1_24")]
3218 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
3219 pub fn gst_video_info_dma_drm_from_video_info(
3220 drm_info: *mut GstVideoInfoDmaDrm,
3221 info: *const GstVideoInfo,
3222 modifier: u64,
3223 ) -> gboolean;
3224 #[cfg(feature = "v1_24")]
3225 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
3226 pub fn gst_video_info_dma_drm_init(drm_info: *mut GstVideoInfoDmaDrm);
3227
3228 //=========================================================================
3229 // GstVideoMasteringDisplayInfo
3230 //=========================================================================
3231 #[cfg(feature = "v1_18")]
3232 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3233 pub fn gst_video_mastering_display_info_add_to_caps(
3234 minfo: *const GstVideoMasteringDisplayInfo,
3235 caps: *mut gst::GstCaps,
3236 ) -> gboolean;
3237 #[cfg(feature = "v1_18")]
3238 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3239 pub fn gst_video_mastering_display_info_from_caps(
3240 minfo: *mut GstVideoMasteringDisplayInfo,
3241 caps: *const gst::GstCaps,
3242 ) -> gboolean;
3243 #[cfg(feature = "v1_18")]
3244 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3245 pub fn gst_video_mastering_display_info_init(minfo: *mut GstVideoMasteringDisplayInfo);
3246 #[cfg(feature = "v1_18")]
3247 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3248 pub fn gst_video_mastering_display_info_is_equal(
3249 minfo: *const GstVideoMasteringDisplayInfo,
3250 other: *const GstVideoMasteringDisplayInfo,
3251 ) -> gboolean;
3252 #[cfg(feature = "v1_18")]
3253 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3254 pub fn gst_video_mastering_display_info_to_string(
3255 minfo: *const GstVideoMasteringDisplayInfo,
3256 ) -> *mut c_char;
3257 #[cfg(feature = "v1_18")]
3258 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3259 pub fn gst_video_mastering_display_info_from_string(
3260 minfo: *mut GstVideoMasteringDisplayInfo,
3261 mastering: *const c_char,
3262 ) -> gboolean;
3263
3264 //=========================================================================
3265 // GstVideoMeta
3266 //=========================================================================
3267 #[cfg(feature = "v1_18")]
3268 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3269 pub fn gst_video_meta_get_plane_height(
3270 meta: *mut GstVideoMeta,
3271 plane_height: *mut [c_uint; 4],
3272 ) -> gboolean;
3273 #[cfg(feature = "v1_18")]
3274 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3275 pub fn gst_video_meta_get_plane_size(
3276 meta: *mut GstVideoMeta,
3277 plane_size: *mut [size_t; 4],
3278 ) -> gboolean;
3279 pub fn gst_video_meta_map(
3280 meta: *mut GstVideoMeta,
3281 plane: c_uint,
3282 info: *mut gst::GstMapInfo,
3283 data: *mut gpointer,
3284 stride: *mut c_int,
3285 flags: gst::GstMapFlags,
3286 ) -> gboolean;
3287 #[cfg(feature = "v1_18")]
3288 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3289 pub fn gst_video_meta_set_alignment(
3290 meta: *mut GstVideoMeta,
3291 alignment: GstVideoAlignment,
3292 ) -> gboolean;
3293 pub fn gst_video_meta_unmap(
3294 meta: *mut GstVideoMeta,
3295 plane: c_uint,
3296 info: *mut gst::GstMapInfo,
3297 ) -> gboolean;
3298 pub fn gst_video_meta_get_info() -> *const gst::GstMetaInfo;
3299
3300 //=========================================================================
3301 // GstVideoMetaTransform
3302 //=========================================================================
3303 pub fn gst_video_meta_transform_scale_get_quark() -> glib::GQuark;
3304
3305 //=========================================================================
3306 // GstVideoOverlayComposition
3307 //=========================================================================
3308 pub fn gst_video_overlay_composition_get_type() -> GType;
3309 pub fn gst_video_overlay_composition_new(
3310 rectangle: *mut GstVideoOverlayRectangle,
3311 ) -> *mut GstVideoOverlayComposition;
3312 pub fn gst_video_overlay_composition_add_rectangle(
3313 comp: *mut GstVideoOverlayComposition,
3314 rectangle: *mut GstVideoOverlayRectangle,
3315 );
3316 pub fn gst_video_overlay_composition_blend(
3317 comp: *mut GstVideoOverlayComposition,
3318 video_buf: *mut GstVideoFrame,
3319 ) -> gboolean;
3320 pub fn gst_video_overlay_composition_copy(
3321 comp: *mut GstVideoOverlayComposition,
3322 ) -> *mut GstVideoOverlayComposition;
3323 pub fn gst_video_overlay_composition_get_rectangle(
3324 comp: *mut GstVideoOverlayComposition,
3325 n: c_uint,
3326 ) -> *mut GstVideoOverlayRectangle;
3327 pub fn gst_video_overlay_composition_get_seqnum(
3328 comp: *mut GstVideoOverlayComposition,
3329 ) -> c_uint;
3330 pub fn gst_video_overlay_composition_make_writable(
3331 comp: *mut GstVideoOverlayComposition,
3332 ) -> *mut GstVideoOverlayComposition;
3333 pub fn gst_video_overlay_composition_n_rectangles(
3334 comp: *mut GstVideoOverlayComposition,
3335 ) -> c_uint;
3336
3337 //=========================================================================
3338 // GstVideoOverlayCompositionMeta
3339 //=========================================================================
3340 pub fn gst_video_overlay_composition_meta_get_info() -> *const gst::GstMetaInfo;
3341
3342 //=========================================================================
3343 // GstVideoOverlayRectangle
3344 //=========================================================================
3345 pub fn gst_video_overlay_rectangle_get_type() -> GType;
3346 pub fn gst_video_overlay_rectangle_new_raw(
3347 pixels: *mut gst::GstBuffer,
3348 render_x: c_int,
3349 render_y: c_int,
3350 render_width: c_uint,
3351 render_height: c_uint,
3352 flags: GstVideoOverlayFormatFlags,
3353 ) -> *mut GstVideoOverlayRectangle;
3354 pub fn gst_video_overlay_rectangle_copy(
3355 rectangle: *mut GstVideoOverlayRectangle,
3356 ) -> *mut GstVideoOverlayRectangle;
3357 pub fn gst_video_overlay_rectangle_get_flags(
3358 rectangle: *mut GstVideoOverlayRectangle,
3359 ) -> GstVideoOverlayFormatFlags;
3360 pub fn gst_video_overlay_rectangle_get_global_alpha(
3361 rectangle: *mut GstVideoOverlayRectangle,
3362 ) -> c_float;
3363 pub fn gst_video_overlay_rectangle_get_pixels_argb(
3364 rectangle: *mut GstVideoOverlayRectangle,
3365 flags: GstVideoOverlayFormatFlags,
3366 ) -> *mut gst::GstBuffer;
3367 pub fn gst_video_overlay_rectangle_get_pixels_ayuv(
3368 rectangle: *mut GstVideoOverlayRectangle,
3369 flags: GstVideoOverlayFormatFlags,
3370 ) -> *mut gst::GstBuffer;
3371 pub fn gst_video_overlay_rectangle_get_pixels_raw(
3372 rectangle: *mut GstVideoOverlayRectangle,
3373 flags: GstVideoOverlayFormatFlags,
3374 ) -> *mut gst::GstBuffer;
3375 pub fn gst_video_overlay_rectangle_get_pixels_unscaled_argb(
3376 rectangle: *mut GstVideoOverlayRectangle,
3377 flags: GstVideoOverlayFormatFlags,
3378 ) -> *mut gst::GstBuffer;
3379 pub fn gst_video_overlay_rectangle_get_pixels_unscaled_ayuv(
3380 rectangle: *mut GstVideoOverlayRectangle,
3381 flags: GstVideoOverlayFormatFlags,
3382 ) -> *mut gst::GstBuffer;
3383 pub fn gst_video_overlay_rectangle_get_pixels_unscaled_raw(
3384 rectangle: *mut GstVideoOverlayRectangle,
3385 flags: GstVideoOverlayFormatFlags,
3386 ) -> *mut gst::GstBuffer;
3387 pub fn gst_video_overlay_rectangle_get_render_rectangle(
3388 rectangle: *mut GstVideoOverlayRectangle,
3389 render_x: *mut c_int,
3390 render_y: *mut c_int,
3391 render_width: *mut c_uint,
3392 render_height: *mut c_uint,
3393 ) -> gboolean;
3394 pub fn gst_video_overlay_rectangle_get_seqnum(
3395 rectangle: *mut GstVideoOverlayRectangle,
3396 ) -> c_uint;
3397 pub fn gst_video_overlay_rectangle_set_global_alpha(
3398 rectangle: *mut GstVideoOverlayRectangle,
3399 global_alpha: c_float,
3400 );
3401 pub fn gst_video_overlay_rectangle_set_render_rectangle(
3402 rectangle: *mut GstVideoOverlayRectangle,
3403 render_x: c_int,
3404 render_y: c_int,
3405 render_width: c_uint,
3406 render_height: c_uint,
3407 );
3408
3409 //=========================================================================
3410 // GstVideoRegionOfInterestMeta
3411 //=========================================================================
3412 pub fn gst_video_region_of_interest_meta_add_param(
3413 meta: *mut GstVideoRegionOfInterestMeta,
3414 s: *mut gst::GstStructure,
3415 );
3416 pub fn gst_video_region_of_interest_meta_get_param(
3417 meta: *mut GstVideoRegionOfInterestMeta,
3418 name: *const c_char,
3419 ) -> *mut gst::GstStructure;
3420 pub fn gst_video_region_of_interest_meta_get_info() -> *const gst::GstMetaInfo;
3421
3422 //=========================================================================
3423 // GstVideoResampler
3424 //=========================================================================
3425 pub fn gst_video_resampler_clear(resampler: *mut GstVideoResampler);
3426 pub fn gst_video_resampler_init(
3427 resampler: *mut GstVideoResampler,
3428 method: GstVideoResamplerMethod,
3429 flags: GstVideoResamplerFlags,
3430 n_phases: c_uint,
3431 n_taps: c_uint,
3432 shift: c_double,
3433 in_size: c_uint,
3434 out_size: c_uint,
3435 options: *mut gst::GstStructure,
3436 ) -> gboolean;
3437
3438 //=========================================================================
3439 // GstVideoSEIUserDataUnregisteredMeta
3440 //=========================================================================
3441 #[cfg(feature = "v1_22")]
3442 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
3443 pub fn gst_video_sei_user_data_unregistered_meta_get_info() -> *const gst::GstMetaInfo;
3444
3445 //=========================================================================
3446 // GstVideoScaler
3447 //=========================================================================
3448 pub fn gst_video_scaler_2d(
3449 hscale: *mut GstVideoScaler,
3450 vscale: *mut GstVideoScaler,
3451 format: GstVideoFormat,
3452 src: gpointer,
3453 src_stride: c_int,
3454 dest: gpointer,
3455 dest_stride: c_int,
3456 x: c_uint,
3457 y: c_uint,
3458 width: c_uint,
3459 height: c_uint,
3460 );
3461 pub fn gst_video_scaler_combine_packed_YUV(
3462 y_scale: *mut GstVideoScaler,
3463 uv_scale: *mut GstVideoScaler,
3464 in_format: GstVideoFormat,
3465 out_format: GstVideoFormat,
3466 ) -> *mut GstVideoScaler;
3467 pub fn gst_video_scaler_free(scale: *mut GstVideoScaler);
3468 pub fn gst_video_scaler_get_coeff(
3469 scale: *mut GstVideoScaler,
3470 out_offset: c_uint,
3471 in_offset: *mut c_uint,
3472 n_taps: *mut c_uint,
3473 ) -> *const c_double;
3474 pub fn gst_video_scaler_get_max_taps(scale: *mut GstVideoScaler) -> c_uint;
3475 pub fn gst_video_scaler_horizontal(
3476 scale: *mut GstVideoScaler,
3477 format: GstVideoFormat,
3478 src: gpointer,
3479 dest: gpointer,
3480 dest_offset: c_uint,
3481 width: c_uint,
3482 );
3483 pub fn gst_video_scaler_vertical(
3484 scale: *mut GstVideoScaler,
3485 format: GstVideoFormat,
3486 src_lines: *mut gpointer,
3487 dest: gpointer,
3488 dest_offset: c_uint,
3489 width: c_uint,
3490 );
3491 pub fn gst_video_scaler_new(
3492 method: GstVideoResamplerMethod,
3493 flags: GstVideoScalerFlags,
3494 n_taps: c_uint,
3495 in_size: c_uint,
3496 out_size: c_uint,
3497 options: *mut gst::GstStructure,
3498 ) -> *mut GstVideoScaler;
3499
3500 //=========================================================================
3501 // GstVideoTimeCode
3502 //=========================================================================
3503 pub fn gst_video_time_code_get_type() -> GType;
3504 pub fn gst_video_time_code_new(
3505 fps_n: c_uint,
3506 fps_d: c_uint,
3507 latest_daily_jam: *mut glib::GDateTime,
3508 flags: GstVideoTimeCodeFlags,
3509 hours: c_uint,
3510 minutes: c_uint,
3511 seconds: c_uint,
3512 frames: c_uint,
3513 field_count: c_uint,
3514 ) -> *mut GstVideoTimeCode;
3515 pub fn gst_video_time_code_new_empty() -> *mut GstVideoTimeCode;
3516 pub fn gst_video_time_code_new_from_date_time(
3517 fps_n: c_uint,
3518 fps_d: c_uint,
3519 dt: *mut glib::GDateTime,
3520 flags: GstVideoTimeCodeFlags,
3521 field_count: c_uint,
3522 ) -> *mut GstVideoTimeCode;
3523 #[cfg(feature = "v1_16")]
3524 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3525 pub fn gst_video_time_code_new_from_date_time_full(
3526 fps_n: c_uint,
3527 fps_d: c_uint,
3528 dt: *mut glib::GDateTime,
3529 flags: GstVideoTimeCodeFlags,
3530 field_count: c_uint,
3531 ) -> *mut GstVideoTimeCode;
3532 pub fn gst_video_time_code_new_from_string(tc_str: *const c_char) -> *mut GstVideoTimeCode;
3533 pub fn gst_video_time_code_add_frames(tc: *mut GstVideoTimeCode, frames: i64);
3534 pub fn gst_video_time_code_add_interval(
3535 tc: *const GstVideoTimeCode,
3536 tc_inter: *const GstVideoTimeCodeInterval,
3537 ) -> *mut GstVideoTimeCode;
3538 pub fn gst_video_time_code_clear(tc: *mut GstVideoTimeCode);
3539 pub fn gst_video_time_code_compare(
3540 tc1: *const GstVideoTimeCode,
3541 tc2: *const GstVideoTimeCode,
3542 ) -> c_int;
3543 pub fn gst_video_time_code_copy(tc: *const GstVideoTimeCode) -> *mut GstVideoTimeCode;
3544 pub fn gst_video_time_code_frames_since_daily_jam(tc: *const GstVideoTimeCode) -> u64;
3545 pub fn gst_video_time_code_free(tc: *mut GstVideoTimeCode);
3546 pub fn gst_video_time_code_increment_frame(tc: *mut GstVideoTimeCode);
3547 pub fn gst_video_time_code_init(
3548 tc: *mut GstVideoTimeCode,
3549 fps_n: c_uint,
3550 fps_d: c_uint,
3551 latest_daily_jam: *mut glib::GDateTime,
3552 flags: GstVideoTimeCodeFlags,
3553 hours: c_uint,
3554 minutes: c_uint,
3555 seconds: c_uint,
3556 frames: c_uint,
3557 field_count: c_uint,
3558 );
3559 pub fn gst_video_time_code_init_from_date_time(
3560 tc: *mut GstVideoTimeCode,
3561 fps_n: c_uint,
3562 fps_d: c_uint,
3563 dt: *mut glib::GDateTime,
3564 flags: GstVideoTimeCodeFlags,
3565 field_count: c_uint,
3566 );
3567 #[cfg(feature = "v1_16")]
3568 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3569 pub fn gst_video_time_code_init_from_date_time_full(
3570 tc: *mut GstVideoTimeCode,
3571 fps_n: c_uint,
3572 fps_d: c_uint,
3573 dt: *mut glib::GDateTime,
3574 flags: GstVideoTimeCodeFlags,
3575 field_count: c_uint,
3576 ) -> gboolean;
3577 pub fn gst_video_time_code_is_valid(tc: *const GstVideoTimeCode) -> gboolean;
3578 pub fn gst_video_time_code_nsec_since_daily_jam(tc: *const GstVideoTimeCode) -> u64;
3579 pub fn gst_video_time_code_to_date_time(tc: *const GstVideoTimeCode) -> *mut glib::GDateTime;
3580 pub fn gst_video_time_code_to_string(tc: *const GstVideoTimeCode) -> *mut c_char;
3581
3582 //=========================================================================
3583 // GstVideoTimeCodeInterval
3584 //=========================================================================
3585 pub fn gst_video_time_code_interval_get_type() -> GType;
3586 pub fn gst_video_time_code_interval_new(
3587 hours: c_uint,
3588 minutes: c_uint,
3589 seconds: c_uint,
3590 frames: c_uint,
3591 ) -> *mut GstVideoTimeCodeInterval;
3592 pub fn gst_video_time_code_interval_new_from_string(
3593 tc_inter_str: *const c_char,
3594 ) -> *mut GstVideoTimeCodeInterval;
3595 pub fn gst_video_time_code_interval_clear(tc: *mut GstVideoTimeCodeInterval);
3596 pub fn gst_video_time_code_interval_copy(
3597 tc: *const GstVideoTimeCodeInterval,
3598 ) -> *mut GstVideoTimeCodeInterval;
3599 pub fn gst_video_time_code_interval_free(tc: *mut GstVideoTimeCodeInterval);
3600 pub fn gst_video_time_code_interval_init(
3601 tc: *mut GstVideoTimeCodeInterval,
3602 hours: c_uint,
3603 minutes: c_uint,
3604 seconds: c_uint,
3605 frames: c_uint,
3606 );
3607
3608 //=========================================================================
3609 // GstVideoTimeCodeMeta
3610 //=========================================================================
3611 pub fn gst_video_time_code_meta_get_info() -> *const gst::GstMetaInfo;
3612
3613 //=========================================================================
3614 // GstVideoVBIEncoder
3615 //=========================================================================
3616 #[cfg(feature = "v1_16")]
3617 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3618 pub fn gst_video_vbi_encoder_get_type() -> GType;
3619 #[cfg(feature = "v1_16")]
3620 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3621 pub fn gst_video_vbi_encoder_new(
3622 format: GstVideoFormat,
3623 pixel_width: u32,
3624 ) -> *mut GstVideoVBIEncoder;
3625 #[cfg(feature = "v1_16")]
3626 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3627 pub fn gst_video_vbi_encoder_add_ancillary(
3628 encoder: *mut GstVideoVBIEncoder,
3629 composite: gboolean,
3630 DID: u8,
3631 SDID_block_number: u8,
3632 data: *const u8,
3633 data_count: c_uint,
3634 ) -> gboolean;
3635 #[cfg(feature = "v1_16")]
3636 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3637 pub fn gst_video_vbi_encoder_copy(
3638 encoder: *const GstVideoVBIEncoder,
3639 ) -> *mut GstVideoVBIEncoder;
3640 #[cfg(feature = "v1_16")]
3641 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3642 pub fn gst_video_vbi_encoder_free(encoder: *mut GstVideoVBIEncoder);
3643 #[cfg(feature = "v1_16")]
3644 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3645 pub fn gst_video_vbi_encoder_write_line(encoder: *mut GstVideoVBIEncoder, data: *mut u8);
3646
3647 //=========================================================================
3648 // GstVideoVBIParser
3649 //=========================================================================
3650 #[cfg(feature = "v1_16")]
3651 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3652 pub fn gst_video_vbi_parser_get_type() -> GType;
3653 #[cfg(feature = "v1_16")]
3654 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3655 pub fn gst_video_vbi_parser_new(
3656 format: GstVideoFormat,
3657 pixel_width: u32,
3658 ) -> *mut GstVideoVBIParser;
3659 #[cfg(feature = "v1_16")]
3660 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3661 pub fn gst_video_vbi_parser_add_line(parser: *mut GstVideoVBIParser, data: *const u8);
3662 #[cfg(feature = "v1_16")]
3663 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3664 pub fn gst_video_vbi_parser_copy(parser: *const GstVideoVBIParser) -> *mut GstVideoVBIParser;
3665 #[cfg(feature = "v1_16")]
3666 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3667 pub fn gst_video_vbi_parser_free(parser: *mut GstVideoVBIParser);
3668 #[cfg(feature = "v1_16")]
3669 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3670 pub fn gst_video_vbi_parser_get_ancillary(
3671 parser: *mut GstVideoVBIParser,
3672 anc: *mut GstVideoAncillary,
3673 ) -> GstVideoVBIParserResult;
3674
3675 //=========================================================================
3676 // GstColorBalanceChannel
3677 //=========================================================================
3678 pub fn gst_color_balance_channel_get_type() -> GType;
3679
3680 //=========================================================================
3681 // GstVideoAggregator
3682 //=========================================================================
3683 #[cfg(feature = "v1_16")]
3684 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3685 pub fn gst_video_aggregator_get_type() -> GType;
3686 #[cfg(feature = "v1_20")]
3687 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3688 pub fn gst_video_aggregator_get_execution_task_pool(
3689 vagg: *mut GstVideoAggregator,
3690 ) -> *mut gst::GstTaskPool;
3691
3692 //=========================================================================
3693 // GstVideoAggregatorConvertPad
3694 //=========================================================================
3695 #[cfg(feature = "v1_16")]
3696 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3697 pub fn gst_video_aggregator_convert_pad_get_type() -> GType;
3698 #[cfg(feature = "v1_16")]
3699 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3700 pub fn gst_video_aggregator_convert_pad_update_conversion_info(
3701 pad: *mut GstVideoAggregatorConvertPad,
3702 );
3703
3704 //=========================================================================
3705 // GstVideoAggregatorPad
3706 //=========================================================================
3707 #[cfg(feature = "v1_16")]
3708 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3709 pub fn gst_video_aggregator_pad_get_type() -> GType;
3710 #[cfg(feature = "v1_16")]
3711 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3712 pub fn gst_video_aggregator_pad_get_current_buffer(
3713 pad: *mut GstVideoAggregatorPad,
3714 ) -> *mut gst::GstBuffer;
3715 #[cfg(feature = "v1_16")]
3716 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3717 pub fn gst_video_aggregator_pad_get_prepared_frame(
3718 pad: *mut GstVideoAggregatorPad,
3719 ) -> *mut GstVideoFrame;
3720 #[cfg(feature = "v1_16")]
3721 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3722 pub fn gst_video_aggregator_pad_has_current_buffer(pad: *mut GstVideoAggregatorPad)
3723 -> gboolean;
3724 #[cfg(feature = "v1_16")]
3725 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3726 pub fn gst_video_aggregator_pad_set_needs_alpha(
3727 pad: *mut GstVideoAggregatorPad,
3728 needs_alpha: gboolean,
3729 );
3730
3731 //=========================================================================
3732 // GstVideoAggregatorParallelConvertPad
3733 //=========================================================================
3734 #[cfg(feature = "v1_20")]
3735 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3736 pub fn gst_video_aggregator_parallel_convert_pad_get_type() -> GType;
3737
3738 //=========================================================================
3739 // GstVideoBufferPool
3740 //=========================================================================
3741 pub fn gst_video_buffer_pool_get_type() -> GType;
3742 pub fn gst_video_buffer_pool_new() -> *mut gst::GstBufferPool;
3743
3744 //=========================================================================
3745 // GstVideoDecoder
3746 //=========================================================================
3747 pub fn gst_video_decoder_get_type() -> GType;
3748 pub fn gst_video_decoder_add_to_frame(decoder: *mut GstVideoDecoder, n_bytes: c_int);
3749 pub fn gst_video_decoder_allocate_output_buffer(
3750 decoder: *mut GstVideoDecoder,
3751 ) -> *mut gst::GstBuffer;
3752 pub fn gst_video_decoder_allocate_output_frame(
3753 decoder: *mut GstVideoDecoder,
3754 frame: *mut GstVideoCodecFrame,
3755 ) -> gst::GstFlowReturn;
3756 pub fn gst_video_decoder_allocate_output_frame_with_params(
3757 decoder: *mut GstVideoDecoder,
3758 frame: *mut GstVideoCodecFrame,
3759 params: *mut gst::GstBufferPoolAcquireParams,
3760 ) -> gst::GstFlowReturn;
3761 pub fn gst_video_decoder_drop_frame(
3762 dec: *mut GstVideoDecoder,
3763 frame: *mut GstVideoCodecFrame,
3764 ) -> gst::GstFlowReturn;
3765 #[cfg(feature = "v1_20")]
3766 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3767 pub fn gst_video_decoder_drop_subframe(
3768 dec: *mut GstVideoDecoder,
3769 frame: *mut GstVideoCodecFrame,
3770 ) -> gst::GstFlowReturn;
3771 pub fn gst_video_decoder_finish_frame(
3772 decoder: *mut GstVideoDecoder,
3773 frame: *mut GstVideoCodecFrame,
3774 ) -> gst::GstFlowReturn;
3775 #[cfg(feature = "v1_20")]
3776 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3777 pub fn gst_video_decoder_finish_subframe(
3778 decoder: *mut GstVideoDecoder,
3779 frame: *mut GstVideoCodecFrame,
3780 ) -> gst::GstFlowReturn;
3781 pub fn gst_video_decoder_get_allocator(
3782 decoder: *mut GstVideoDecoder,
3783 allocator: *mut *mut gst::GstAllocator,
3784 params: *mut gst::GstAllocationParams,
3785 );
3786 pub fn gst_video_decoder_get_buffer_pool(
3787 decoder: *mut GstVideoDecoder,
3788 ) -> *mut gst::GstBufferPool;
3789 pub fn gst_video_decoder_get_estimate_rate(dec: *mut GstVideoDecoder) -> c_int;
3790 pub fn gst_video_decoder_get_frame(
3791 decoder: *mut GstVideoDecoder,
3792 frame_number: c_int,
3793 ) -> *mut GstVideoCodecFrame;
3794 pub fn gst_video_decoder_get_frames(decoder: *mut GstVideoDecoder) -> *mut glib::GList;
3795 #[cfg(feature = "v1_20")]
3796 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3797 pub fn gst_video_decoder_get_input_subframe_index(
3798 decoder: *mut GstVideoDecoder,
3799 frame: *mut GstVideoCodecFrame,
3800 ) -> c_uint;
3801 pub fn gst_video_decoder_get_latency(
3802 decoder: *mut GstVideoDecoder,
3803 min_latency: *mut gst::GstClockTime,
3804 max_latency: *mut gst::GstClockTime,
3805 );
3806 pub fn gst_video_decoder_get_max_decode_time(
3807 decoder: *mut GstVideoDecoder,
3808 frame: *mut GstVideoCodecFrame,
3809 ) -> gst::GstClockTimeDiff;
3810 pub fn gst_video_decoder_get_max_errors(dec: *mut GstVideoDecoder) -> c_int;
3811 pub fn gst_video_decoder_get_needs_format(dec: *mut GstVideoDecoder) -> gboolean;
3812 #[cfg(feature = "v1_20")]
3813 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3814 pub fn gst_video_decoder_get_needs_sync_point(dec: *mut GstVideoDecoder) -> gboolean;
3815 pub fn gst_video_decoder_get_oldest_frame(
3816 decoder: *mut GstVideoDecoder,
3817 ) -> *mut GstVideoCodecFrame;
3818 pub fn gst_video_decoder_get_output_state(
3819 decoder: *mut GstVideoDecoder,
3820 ) -> *mut GstVideoCodecState;
3821 pub fn gst_video_decoder_get_packetized(decoder: *mut GstVideoDecoder) -> gboolean;
3822 pub fn gst_video_decoder_get_pending_frame_size(decoder: *mut GstVideoDecoder) -> size_t;
3823 #[cfg(feature = "v1_20")]
3824 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3825 pub fn gst_video_decoder_get_processed_subframe_index(
3826 decoder: *mut GstVideoDecoder,
3827 frame: *mut GstVideoCodecFrame,
3828 ) -> c_uint;
3829 pub fn gst_video_decoder_get_qos_proportion(decoder: *mut GstVideoDecoder) -> c_double;
3830 #[cfg(feature = "v1_20")]
3831 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3832 pub fn gst_video_decoder_get_subframe_mode(decoder: *mut GstVideoDecoder) -> gboolean;
3833 pub fn gst_video_decoder_have_frame(decoder: *mut GstVideoDecoder) -> gst::GstFlowReturn;
3834 #[cfg(feature = "v1_20")]
3835 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3836 pub fn gst_video_decoder_have_last_subframe(
3837 decoder: *mut GstVideoDecoder,
3838 frame: *mut GstVideoCodecFrame,
3839 ) -> gst::GstFlowReturn;
3840 pub fn gst_video_decoder_merge_tags(
3841 decoder: *mut GstVideoDecoder,
3842 tags: *const gst::GstTagList,
3843 mode: gst::GstTagMergeMode,
3844 );
3845 pub fn gst_video_decoder_negotiate(decoder: *mut GstVideoDecoder) -> gboolean;
3846 pub fn gst_video_decoder_proxy_getcaps(
3847 decoder: *mut GstVideoDecoder,
3848 caps: *mut gst::GstCaps,
3849 filter: *mut gst::GstCaps,
3850 ) -> *mut gst::GstCaps;
3851 pub fn gst_video_decoder_release_frame(
3852 dec: *mut GstVideoDecoder,
3853 frame: *mut GstVideoCodecFrame,
3854 );
3855 #[cfg(feature = "v1_20")]
3856 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3857 pub fn gst_video_decoder_request_sync_point(
3858 dec: *mut GstVideoDecoder,
3859 frame: *mut GstVideoCodecFrame,
3860 flags: GstVideoDecoderRequestSyncPointFlags,
3861 );
3862 pub fn gst_video_decoder_set_estimate_rate(dec: *mut GstVideoDecoder, enabled: gboolean);
3863 #[cfg(feature = "v1_16")]
3864 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3865 pub fn gst_video_decoder_set_interlaced_output_state(
3866 decoder: *mut GstVideoDecoder,
3867 fmt: GstVideoFormat,
3868 interlace_mode: GstVideoInterlaceMode,
3869 width: c_uint,
3870 height: c_uint,
3871 reference: *mut GstVideoCodecState,
3872 ) -> *mut GstVideoCodecState;
3873 pub fn gst_video_decoder_set_latency(
3874 decoder: *mut GstVideoDecoder,
3875 min_latency: gst::GstClockTime,
3876 max_latency: gst::GstClockTime,
3877 );
3878 pub fn gst_video_decoder_set_max_errors(dec: *mut GstVideoDecoder, num: c_int);
3879 pub fn gst_video_decoder_set_needs_format(dec: *mut GstVideoDecoder, enabled: gboolean);
3880 #[cfg(feature = "v1_20")]
3881 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3882 pub fn gst_video_decoder_set_needs_sync_point(dec: *mut GstVideoDecoder, enabled: gboolean);
3883 pub fn gst_video_decoder_set_output_state(
3884 decoder: *mut GstVideoDecoder,
3885 fmt: GstVideoFormat,
3886 width: c_uint,
3887 height: c_uint,
3888 reference: *mut GstVideoCodecState,
3889 ) -> *mut GstVideoCodecState;
3890 pub fn gst_video_decoder_set_packetized(decoder: *mut GstVideoDecoder, packetized: gboolean);
3891 #[cfg(feature = "v1_20")]
3892 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3893 pub fn gst_video_decoder_set_subframe_mode(
3894 decoder: *mut GstVideoDecoder,
3895 subframe_mode: gboolean,
3896 );
3897 pub fn gst_video_decoder_set_use_default_pad_acceptcaps(
3898 decoder: *mut GstVideoDecoder,
3899 use_: gboolean,
3900 );
3901
3902 //=========================================================================
3903 // GstVideoEncoder
3904 //=========================================================================
3905 pub fn gst_video_encoder_get_type() -> GType;
3906 pub fn gst_video_encoder_allocate_output_buffer(
3907 encoder: *mut GstVideoEncoder,
3908 size: size_t,
3909 ) -> *mut gst::GstBuffer;
3910 pub fn gst_video_encoder_allocate_output_frame(
3911 encoder: *mut GstVideoEncoder,
3912 frame: *mut GstVideoCodecFrame,
3913 size: size_t,
3914 ) -> gst::GstFlowReturn;
3915 pub fn gst_video_encoder_finish_frame(
3916 encoder: *mut GstVideoEncoder,
3917 frame: *mut GstVideoCodecFrame,
3918 ) -> gst::GstFlowReturn;
3919 #[cfg(feature = "v1_18")]
3920 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3921 pub fn gst_video_encoder_finish_subframe(
3922 encoder: *mut GstVideoEncoder,
3923 frame: *mut GstVideoCodecFrame,
3924 ) -> gst::GstFlowReturn;
3925 pub fn gst_video_encoder_get_allocator(
3926 encoder: *mut GstVideoEncoder,
3927 allocator: *mut *mut gst::GstAllocator,
3928 params: *mut gst::GstAllocationParams,
3929 );
3930 pub fn gst_video_encoder_get_frame(
3931 encoder: *mut GstVideoEncoder,
3932 frame_number: c_int,
3933 ) -> *mut GstVideoCodecFrame;
3934 pub fn gst_video_encoder_get_frames(encoder: *mut GstVideoEncoder) -> *mut glib::GList;
3935 pub fn gst_video_encoder_get_latency(
3936 encoder: *mut GstVideoEncoder,
3937 min_latency: *mut gst::GstClockTime,
3938 max_latency: *mut gst::GstClockTime,
3939 );
3940 pub fn gst_video_encoder_get_max_encode_time(
3941 encoder: *mut GstVideoEncoder,
3942 frame: *mut GstVideoCodecFrame,
3943 ) -> gst::GstClockTimeDiff;
3944 #[cfg(feature = "v1_18")]
3945 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3946 pub fn gst_video_encoder_get_min_force_key_unit_interval(
3947 encoder: *mut GstVideoEncoder,
3948 ) -> gst::GstClockTime;
3949 pub fn gst_video_encoder_get_oldest_frame(
3950 encoder: *mut GstVideoEncoder,
3951 ) -> *mut GstVideoCodecFrame;
3952 pub fn gst_video_encoder_get_output_state(
3953 encoder: *mut GstVideoEncoder,
3954 ) -> *mut GstVideoCodecState;
3955 pub fn gst_video_encoder_is_qos_enabled(encoder: *mut GstVideoEncoder) -> gboolean;
3956 pub fn gst_video_encoder_merge_tags(
3957 encoder: *mut GstVideoEncoder,
3958 tags: *const gst::GstTagList,
3959 mode: gst::GstTagMergeMode,
3960 );
3961 pub fn gst_video_encoder_negotiate(encoder: *mut GstVideoEncoder) -> gboolean;
3962 pub fn gst_video_encoder_proxy_getcaps(
3963 enc: *mut GstVideoEncoder,
3964 caps: *mut gst::GstCaps,
3965 filter: *mut gst::GstCaps,
3966 ) -> *mut gst::GstCaps;
3967 pub fn gst_video_encoder_set_headers(encoder: *mut GstVideoEncoder, headers: *mut glib::GList);
3968 pub fn gst_video_encoder_set_latency(
3969 encoder: *mut GstVideoEncoder,
3970 min_latency: gst::GstClockTime,
3971 max_latency: gst::GstClockTime,
3972 );
3973 #[cfg(feature = "v1_18")]
3974 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3975 pub fn gst_video_encoder_set_min_force_key_unit_interval(
3976 encoder: *mut GstVideoEncoder,
3977 interval: gst::GstClockTime,
3978 );
3979 pub fn gst_video_encoder_set_min_pts(encoder: *mut GstVideoEncoder, min_pts: gst::GstClockTime);
3980 pub fn gst_video_encoder_set_output_state(
3981 encoder: *mut GstVideoEncoder,
3982 caps: *mut gst::GstCaps,
3983 reference: *mut GstVideoCodecState,
3984 ) -> *mut GstVideoCodecState;
3985 pub fn gst_video_encoder_set_qos_enabled(encoder: *mut GstVideoEncoder, enabled: gboolean);
3986
3987 //=========================================================================
3988 // GstVideoFilter
3989 //=========================================================================
3990 pub fn gst_video_filter_get_type() -> GType;
3991
3992 //=========================================================================
3993 // GstVideoMultiviewFlagsSet
3994 //=========================================================================
3995 pub fn gst_video_multiview_flagset_get_type() -> GType;
3996
3997 //=========================================================================
3998 // GstVideoSink
3999 //=========================================================================
4000 pub fn gst_video_sink_get_type() -> GType;
4001 pub fn gst_video_sink_center_rect(
4002 src: GstVideoRectangle,
4003 dst: GstVideoRectangle,
4004 result: *mut GstVideoRectangle,
4005 scaling: gboolean,
4006 );
4007
4008 //=========================================================================
4009 // GstColorBalance
4010 //=========================================================================
4011 pub fn gst_color_balance_get_type() -> GType;
4012 pub fn gst_color_balance_get_balance_type(balance: *mut GstColorBalance)
4013 -> GstColorBalanceType;
4014 pub fn gst_color_balance_get_value(
4015 balance: *mut GstColorBalance,
4016 channel: *mut GstColorBalanceChannel,
4017 ) -> c_int;
4018 pub fn gst_color_balance_list_channels(balance: *mut GstColorBalance) -> *const glib::GList;
4019 pub fn gst_color_balance_set_value(
4020 balance: *mut GstColorBalance,
4021 channel: *mut GstColorBalanceChannel,
4022 value: c_int,
4023 );
4024 pub fn gst_color_balance_value_changed(
4025 balance: *mut GstColorBalance,
4026 channel: *mut GstColorBalanceChannel,
4027 value: c_int,
4028 );
4029
4030 //=========================================================================
4031 // GstNavigation
4032 //=========================================================================
4033 pub fn gst_navigation_get_type() -> GType;
4034 #[cfg(feature = "v1_22")]
4035 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4036 pub fn gst_navigation_event_get_coordinates(
4037 event: *mut gst::GstEvent,
4038 x: *mut c_double,
4039 y: *mut c_double,
4040 ) -> gboolean;
4041 pub fn gst_navigation_event_get_type(event: *mut gst::GstEvent) -> GstNavigationEventType;
4042 #[cfg(feature = "v1_22")]
4043 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4044 pub fn gst_navigation_event_new_command(command: GstNavigationCommand) -> *mut gst::GstEvent;
4045 #[cfg(feature = "v1_22")]
4046 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4047 pub fn gst_navigation_event_new_key_press(
4048 key: *const c_char,
4049 state: GstNavigationModifierType,
4050 ) -> *mut gst::GstEvent;
4051 #[cfg(feature = "v1_22")]
4052 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4053 pub fn gst_navigation_event_new_key_release(
4054 key: *const c_char,
4055 state: GstNavigationModifierType,
4056 ) -> *mut gst::GstEvent;
4057 #[cfg(feature = "v1_22")]
4058 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4059 pub fn gst_navigation_event_new_mouse_button_press(
4060 button: c_int,
4061 x: c_double,
4062 y: c_double,
4063 state: GstNavigationModifierType,
4064 ) -> *mut gst::GstEvent;
4065 #[cfg(feature = "v1_22")]
4066 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4067 pub fn gst_navigation_event_new_mouse_button_release(
4068 button: c_int,
4069 x: c_double,
4070 y: c_double,
4071 state: GstNavigationModifierType,
4072 ) -> *mut gst::GstEvent;
4073 #[cfg(feature = "v1_22")]
4074 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4075 pub fn gst_navigation_event_new_mouse_move(
4076 x: c_double,
4077 y: c_double,
4078 state: GstNavigationModifierType,
4079 ) -> *mut gst::GstEvent;
4080 #[cfg(feature = "v1_22")]
4081 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4082 pub fn gst_navigation_event_new_mouse_scroll(
4083 x: c_double,
4084 y: c_double,
4085 delta_x: c_double,
4086 delta_y: c_double,
4087 state: GstNavigationModifierType,
4088 ) -> *mut gst::GstEvent;
4089 #[cfg(feature = "v1_22")]
4090 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4091 pub fn gst_navigation_event_new_touch_cancel(
4092 state: GstNavigationModifierType,
4093 ) -> *mut gst::GstEvent;
4094 #[cfg(feature = "v1_22")]
4095 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4096 pub fn gst_navigation_event_new_touch_down(
4097 identifier: c_uint,
4098 x: c_double,
4099 y: c_double,
4100 pressure: c_double,
4101 state: GstNavigationModifierType,
4102 ) -> *mut gst::GstEvent;
4103 #[cfg(feature = "v1_22")]
4104 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4105 pub fn gst_navigation_event_new_touch_frame(
4106 state: GstNavigationModifierType,
4107 ) -> *mut gst::GstEvent;
4108 #[cfg(feature = "v1_22")]
4109 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4110 pub fn gst_navigation_event_new_touch_motion(
4111 identifier: c_uint,
4112 x: c_double,
4113 y: c_double,
4114 pressure: c_double,
4115 state: GstNavigationModifierType,
4116 ) -> *mut gst::GstEvent;
4117 #[cfg(feature = "v1_22")]
4118 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4119 pub fn gst_navigation_event_new_touch_up(
4120 identifier: c_uint,
4121 x: c_double,
4122 y: c_double,
4123 state: GstNavigationModifierType,
4124 ) -> *mut gst::GstEvent;
4125 pub fn gst_navigation_event_parse_command(
4126 event: *mut gst::GstEvent,
4127 command: *mut GstNavigationCommand,
4128 ) -> gboolean;
4129 pub fn gst_navigation_event_parse_key_event(
4130 event: *mut gst::GstEvent,
4131 key: *mut *const c_char,
4132 ) -> gboolean;
4133 #[cfg(feature = "v1_22")]
4134 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4135 pub fn gst_navigation_event_parse_modifier_state(
4136 event: *mut gst::GstEvent,
4137 state: *mut GstNavigationModifierType,
4138 ) -> gboolean;
4139 pub fn gst_navigation_event_parse_mouse_button_event(
4140 event: *mut gst::GstEvent,
4141 button: *mut c_int,
4142 x: *mut c_double,
4143 y: *mut c_double,
4144 ) -> gboolean;
4145 pub fn gst_navigation_event_parse_mouse_move_event(
4146 event: *mut gst::GstEvent,
4147 x: *mut c_double,
4148 y: *mut c_double,
4149 ) -> gboolean;
4150 #[cfg(feature = "v1_18")]
4151 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4152 pub fn gst_navigation_event_parse_mouse_scroll_event(
4153 event: *mut gst::GstEvent,
4154 x: *mut c_double,
4155 y: *mut c_double,
4156 delta_x: *mut c_double,
4157 delta_y: *mut c_double,
4158 ) -> gboolean;
4159 #[cfg(feature = "v1_22")]
4160 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4161 pub fn gst_navigation_event_parse_touch_event(
4162 event: *mut gst::GstEvent,
4163 identifier: *mut c_uint,
4164 x: *mut c_double,
4165 y: *mut c_double,
4166 pressure: *mut c_double,
4167 ) -> gboolean;
4168 #[cfg(feature = "v1_22")]
4169 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4170 pub fn gst_navigation_event_parse_touch_up_event(
4171 event: *mut gst::GstEvent,
4172 identifier: *mut c_uint,
4173 x: *mut c_double,
4174 y: *mut c_double,
4175 ) -> gboolean;
4176 #[cfg(feature = "v1_22")]
4177 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4178 pub fn gst_navigation_event_set_coordinates(
4179 event: *mut gst::GstEvent,
4180 x: c_double,
4181 y: c_double,
4182 ) -> gboolean;
4183 pub fn gst_navigation_message_get_type(
4184 message: *mut gst::GstMessage,
4185 ) -> GstNavigationMessageType;
4186 pub fn gst_navigation_message_new_angles_changed(
4187 src: *mut gst::GstObject,
4188 cur_angle: c_uint,
4189 n_angles: c_uint,
4190 ) -> *mut gst::GstMessage;
4191 pub fn gst_navigation_message_new_commands_changed(
4192 src: *mut gst::GstObject,
4193 ) -> *mut gst::GstMessage;
4194 pub fn gst_navigation_message_new_event(
4195 src: *mut gst::GstObject,
4196 event: *mut gst::GstEvent,
4197 ) -> *mut gst::GstMessage;
4198 pub fn gst_navigation_message_new_mouse_over(
4199 src: *mut gst::GstObject,
4200 active: gboolean,
4201 ) -> *mut gst::GstMessage;
4202 pub fn gst_navigation_message_parse_angles_changed(
4203 message: *mut gst::GstMessage,
4204 cur_angle: *mut c_uint,
4205 n_angles: *mut c_uint,
4206 ) -> gboolean;
4207 pub fn gst_navigation_message_parse_event(
4208 message: *mut gst::GstMessage,
4209 event: *mut *mut gst::GstEvent,
4210 ) -> gboolean;
4211 pub fn gst_navigation_message_parse_mouse_over(
4212 message: *mut gst::GstMessage,
4213 active: *mut gboolean,
4214 ) -> gboolean;
4215 pub fn gst_navigation_query_get_type(query: *mut gst::GstQuery) -> GstNavigationQueryType;
4216 pub fn gst_navigation_query_new_angles() -> *mut gst::GstQuery;
4217 pub fn gst_navigation_query_new_commands() -> *mut gst::GstQuery;
4218 pub fn gst_navigation_query_parse_angles(
4219 query: *mut gst::GstQuery,
4220 cur_angle: *mut c_uint,
4221 n_angles: *mut c_uint,
4222 ) -> gboolean;
4223 pub fn gst_navigation_query_parse_commands_length(
4224 query: *mut gst::GstQuery,
4225 n_cmds: *mut c_uint,
4226 ) -> gboolean;
4227 pub fn gst_navigation_query_parse_commands_nth(
4228 query: *mut gst::GstQuery,
4229 nth: c_uint,
4230 cmd: *mut GstNavigationCommand,
4231 ) -> gboolean;
4232 pub fn gst_navigation_query_set_angles(
4233 query: *mut gst::GstQuery,
4234 cur_angle: c_uint,
4235 n_angles: c_uint,
4236 );
4237 pub fn gst_navigation_query_set_commands(query: *mut gst::GstQuery, n_cmds: c_int, ...);
4238 pub fn gst_navigation_query_set_commandsv(
4239 query: *mut gst::GstQuery,
4240 n_cmds: c_int,
4241 cmds: *mut GstNavigationCommand,
4242 );
4243 pub fn gst_navigation_send_command(
4244 navigation: *mut GstNavigation,
4245 command: GstNavigationCommand,
4246 );
4247 pub fn gst_navigation_send_event(
4248 navigation: *mut GstNavigation,
4249 structure: *mut gst::GstStructure,
4250 );
4251 #[cfg(feature = "v1_22")]
4252 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4253 pub fn gst_navigation_send_event_simple(
4254 navigation: *mut GstNavigation,
4255 event: *mut gst::GstEvent,
4256 );
4257 pub fn gst_navigation_send_key_event(
4258 navigation: *mut GstNavigation,
4259 event: *const c_char,
4260 key: *const c_char,
4261 );
4262 pub fn gst_navigation_send_mouse_event(
4263 navigation: *mut GstNavigation,
4264 event: *const c_char,
4265 button: c_int,
4266 x: c_double,
4267 y: c_double,
4268 );
4269 #[cfg(feature = "v1_18")]
4270 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4271 pub fn gst_navigation_send_mouse_scroll_event(
4272 navigation: *mut GstNavigation,
4273 x: c_double,
4274 y: c_double,
4275 delta_x: c_double,
4276 delta_y: c_double,
4277 );
4278
4279 //=========================================================================
4280 // GstVideoDirection
4281 //=========================================================================
4282 pub fn gst_video_direction_get_type() -> GType;
4283
4284 //=========================================================================
4285 // GstVideoOrientation
4286 //=========================================================================
4287 pub fn gst_video_orientation_get_type() -> GType;
4288 #[cfg(feature = "v1_20")]
4289 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4290 pub fn gst_video_orientation_from_tag(
4291 taglist: *mut gst::GstTagList,
4292 method: *mut GstVideoOrientationMethod,
4293 ) -> gboolean;
4294 pub fn gst_video_orientation_get_hcenter(
4295 video_orientation: *mut GstVideoOrientation,
4296 center: *mut c_int,
4297 ) -> gboolean;
4298 pub fn gst_video_orientation_get_hflip(
4299 video_orientation: *mut GstVideoOrientation,
4300 flip: *mut gboolean,
4301 ) -> gboolean;
4302 pub fn gst_video_orientation_get_vcenter(
4303 video_orientation: *mut GstVideoOrientation,
4304 center: *mut c_int,
4305 ) -> gboolean;
4306 pub fn gst_video_orientation_get_vflip(
4307 video_orientation: *mut GstVideoOrientation,
4308 flip: *mut gboolean,
4309 ) -> gboolean;
4310 pub fn gst_video_orientation_set_hcenter(
4311 video_orientation: *mut GstVideoOrientation,
4312 center: c_int,
4313 ) -> gboolean;
4314 pub fn gst_video_orientation_set_hflip(
4315 video_orientation: *mut GstVideoOrientation,
4316 flip: gboolean,
4317 ) -> gboolean;
4318 pub fn gst_video_orientation_set_vcenter(
4319 video_orientation: *mut GstVideoOrientation,
4320 center: c_int,
4321 ) -> gboolean;
4322 pub fn gst_video_orientation_set_vflip(
4323 video_orientation: *mut GstVideoOrientation,
4324 flip: gboolean,
4325 ) -> gboolean;
4326
4327 //=========================================================================
4328 // GstVideoOverlay
4329 //=========================================================================
4330 pub fn gst_video_overlay_get_type() -> GType;
4331 pub fn gst_video_overlay_install_properties(
4332 oclass: *mut gobject::GObjectClass,
4333 last_prop_id: c_int,
4334 );
4335 pub fn gst_video_overlay_set_property(
4336 object: *mut gobject::GObject,
4337 last_prop_id: c_int,
4338 property_id: c_uint,
4339 value: *const gobject::GValue,
4340 ) -> gboolean;
4341 pub fn gst_video_overlay_expose(overlay: *mut GstVideoOverlay);
4342 pub fn gst_video_overlay_got_window_handle(overlay: *mut GstVideoOverlay, handle: uintptr_t);
4343 pub fn gst_video_overlay_handle_events(overlay: *mut GstVideoOverlay, handle_events: gboolean);
4344 pub fn gst_video_overlay_prepare_window_handle(overlay: *mut GstVideoOverlay);
4345 pub fn gst_video_overlay_set_render_rectangle(
4346 overlay: *mut GstVideoOverlay,
4347 x: c_int,
4348 y: c_int,
4349 width: c_int,
4350 height: c_int,
4351 ) -> gboolean;
4352 pub fn gst_video_overlay_set_window_handle(overlay: *mut GstVideoOverlay, handle: uintptr_t);
4353
4354 //=========================================================================
4355 // Other functions
4356 //=========================================================================
4357 #[cfg(feature = "v1_18")]
4358 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4359 pub fn gst_buffer_add_video_afd_meta(
4360 buffer: *mut gst::GstBuffer,
4361 field: u8,
4362 spec: GstVideoAFDSpec,
4363 afd: GstVideoAFDValue,
4364 ) -> *mut GstVideoAFDMeta;
4365 pub fn gst_buffer_add_video_affine_transformation_meta(
4366 buffer: *mut gst::GstBuffer,
4367 ) -> *mut GstVideoAffineTransformationMeta;
4368 #[cfg(feature = "v1_18")]
4369 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4370 pub fn gst_buffer_add_video_bar_meta(
4371 buffer: *mut gst::GstBuffer,
4372 field: u8,
4373 is_letterbox: gboolean,
4374 bar_data1: c_uint,
4375 bar_data2: c_uint,
4376 ) -> *mut GstVideoBarMeta;
4377 #[cfg(feature = "v1_16")]
4378 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
4379 pub fn gst_buffer_add_video_caption_meta(
4380 buffer: *mut gst::GstBuffer,
4381 caption_type: GstVideoCaptionType,
4382 data: *const u8,
4383 size: size_t,
4384 ) -> *mut GstVideoCaptionMeta;
4385 #[cfg(feature = "v1_20")]
4386 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4387 pub fn gst_buffer_add_video_codec_alpha_meta(
4388 buffer: *mut gst::GstBuffer,
4389 alpha_buffer: *mut gst::GstBuffer,
4390 ) -> *mut GstVideoCodecAlphaMeta;
4391 pub fn gst_buffer_add_video_gl_texture_upload_meta(
4392 buffer: *mut gst::GstBuffer,
4393 texture_orientation: GstVideoGLTextureOrientation,
4394 n_textures: c_uint,
4395 texture_type: *mut GstVideoGLTextureType,
4396 upload: GstVideoGLTextureUpload,
4397 user_data: gpointer,
4398 user_data_copy: gobject::GBoxedCopyFunc,
4399 user_data_free: gobject::GBoxedFreeFunc,
4400 ) -> *mut GstVideoGLTextureUploadMeta;
4401 pub fn gst_buffer_add_video_meta(
4402 buffer: *mut gst::GstBuffer,
4403 flags: GstVideoFrameFlags,
4404 format: GstVideoFormat,
4405 width: c_uint,
4406 height: c_uint,
4407 ) -> *mut GstVideoMeta;
4408 pub fn gst_buffer_add_video_meta_full(
4409 buffer: *mut gst::GstBuffer,
4410 flags: GstVideoFrameFlags,
4411 format: GstVideoFormat,
4412 width: c_uint,
4413 height: c_uint,
4414 n_planes: c_uint,
4415 offset: *mut [size_t; 4],
4416 stride: *mut [c_int; 4],
4417 ) -> *mut GstVideoMeta;
4418 pub fn gst_buffer_add_video_overlay_composition_meta(
4419 buf: *mut gst::GstBuffer,
4420 comp: *mut GstVideoOverlayComposition,
4421 ) -> *mut GstVideoOverlayCompositionMeta;
4422 pub fn gst_buffer_add_video_region_of_interest_meta(
4423 buffer: *mut gst::GstBuffer,
4424 roi_type: *const c_char,
4425 x: c_uint,
4426 y: c_uint,
4427 w: c_uint,
4428 h: c_uint,
4429 ) -> *mut GstVideoRegionOfInterestMeta;
4430 pub fn gst_buffer_add_video_region_of_interest_meta_id(
4431 buffer: *mut gst::GstBuffer,
4432 roi_type: glib::GQuark,
4433 x: c_uint,
4434 y: c_uint,
4435 w: c_uint,
4436 h: c_uint,
4437 ) -> *mut GstVideoRegionOfInterestMeta;
4438 #[cfg(feature = "v1_22")]
4439 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4440 pub fn gst_buffer_add_video_sei_user_data_unregistered_meta(
4441 buffer: *mut gst::GstBuffer,
4442 uuid: *mut u8,
4443 data: *mut u8,
4444 size: size_t,
4445 ) -> *mut GstVideoSEIUserDataUnregisteredMeta;
4446 pub fn gst_buffer_add_video_time_code_meta(
4447 buffer: *mut gst::GstBuffer,
4448 tc: *const GstVideoTimeCode,
4449 ) -> *mut GstVideoTimeCodeMeta;
4450 pub fn gst_buffer_add_video_time_code_meta_full(
4451 buffer: *mut gst::GstBuffer,
4452 fps_n: c_uint,
4453 fps_d: c_uint,
4454 latest_daily_jam: *mut glib::GDateTime,
4455 flags: GstVideoTimeCodeFlags,
4456 hours: c_uint,
4457 minutes: c_uint,
4458 seconds: c_uint,
4459 frames: c_uint,
4460 field_count: c_uint,
4461 ) -> *mut GstVideoTimeCodeMeta;
4462 pub fn gst_buffer_get_video_meta(buffer: *mut gst::GstBuffer) -> *mut GstVideoMeta;
4463 pub fn gst_buffer_get_video_meta_id(
4464 buffer: *mut gst::GstBuffer,
4465 id: c_int,
4466 ) -> *mut GstVideoMeta;
4467 pub fn gst_buffer_get_video_region_of_interest_meta_id(
4468 buffer: *mut gst::GstBuffer,
4469 id: c_int,
4470 ) -> *mut GstVideoRegionOfInterestMeta;
4471 pub fn gst_buffer_pool_config_get_video_alignment(
4472 config: *mut gst::GstStructure,
4473 align: *mut GstVideoAlignment,
4474 ) -> gboolean;
4475 pub fn gst_buffer_pool_config_set_video_alignment(
4476 config: *mut gst::GstStructure,
4477 align: *const GstVideoAlignment,
4478 );
4479 pub fn gst_is_video_overlay_prepare_window_handle_message(
4480 msg: *mut gst::GstMessage,
4481 ) -> gboolean;
4482 #[cfg(feature = "v1_18")]
4483 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4484 pub fn gst_video_afd_meta_api_get_type() -> GType;
4485 pub fn gst_video_affine_transformation_meta_api_get_type() -> GType;
4486 #[cfg(feature = "v1_18")]
4487 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4488 pub fn gst_video_bar_meta_api_get_type() -> GType;
4489 pub fn gst_video_blend(
4490 dest: *mut GstVideoFrame,
4491 src: *mut GstVideoFrame,
4492 x: c_int,
4493 y: c_int,
4494 global_alpha: c_float,
4495 ) -> gboolean;
4496 pub fn gst_video_blend_scale_linear_RGBA(
4497 src: *mut GstVideoInfo,
4498 src_buffer: *mut gst::GstBuffer,
4499 dest_height: c_int,
4500 dest_width: c_int,
4501 dest: *mut GstVideoInfo,
4502 dest_buffer: *mut *mut gst::GstBuffer,
4503 );
4504 pub fn gst_video_calculate_display_ratio(
4505 dar_n: *mut c_uint,
4506 dar_d: *mut c_uint,
4507 video_width: c_uint,
4508 video_height: c_uint,
4509 video_par_n: c_uint,
4510 video_par_d: c_uint,
4511 display_par_n: c_uint,
4512 display_par_d: c_uint,
4513 ) -> gboolean;
4514 #[cfg(feature = "v1_16")]
4515 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
4516 pub fn gst_video_caption_meta_api_get_type() -> GType;
4517 #[cfg(feature = "v1_20")]
4518 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4519 pub fn gst_video_center_rect(
4520 src: *const GstVideoRectangle,
4521 dst: *const GstVideoRectangle,
4522 result: *mut GstVideoRectangle,
4523 scaling: gboolean,
4524 );
4525 pub fn gst_video_chroma_from_string(s: *const c_char) -> GstVideoChromaSite;
4526 pub fn gst_video_chroma_resample(
4527 resample: *mut GstVideoChromaResample,
4528 lines: *mut gpointer,
4529 width: c_int,
4530 );
4531 pub fn gst_video_chroma_to_string(site: GstVideoChromaSite) -> *const c_char;
4532 #[cfg(feature = "v1_20")]
4533 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4534 pub fn gst_video_codec_alpha_meta_api_get_type() -> GType;
4535 pub fn gst_video_color_transfer_decode(
4536 func: GstVideoTransferFunction,
4537 val: c_double,
4538 ) -> c_double;
4539 pub fn gst_video_color_transfer_encode(
4540 func: GstVideoTransferFunction,
4541 val: c_double,
4542 ) -> c_double;
4543 pub fn gst_video_convert_sample(
4544 sample: *mut gst::GstSample,
4545 to_caps: *const gst::GstCaps,
4546 timeout: gst::GstClockTime,
4547 error: *mut *mut glib::GError,
4548 ) -> *mut gst::GstSample;
4549 pub fn gst_video_convert_sample_async(
4550 sample: *mut gst::GstSample,
4551 to_caps: *const gst::GstCaps,
4552 timeout: gst::GstClockTime,
4553 callback: GstVideoConvertSampleCallback,
4554 user_data: gpointer,
4555 destroy_notify: glib::GDestroyNotify,
4556 );
4557 pub fn gst_video_crop_meta_api_get_type() -> GType;
4558 #[cfg(feature = "v1_24")]
4559 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
4560 pub fn gst_video_dma_drm_fourcc_from_format(format: GstVideoFormat) -> u32;
4561 #[cfg(feature = "v1_24")]
4562 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
4563 pub fn gst_video_dma_drm_fourcc_from_string(
4564 format_str: *const c_char,
4565 modifier: *mut u64,
4566 ) -> u32;
4567 #[cfg(feature = "v1_24")]
4568 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
4569 pub fn gst_video_dma_drm_fourcc_to_format(fourcc: u32) -> GstVideoFormat;
4570 #[cfg(feature = "v1_24")]
4571 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
4572 pub fn gst_video_dma_drm_fourcc_to_string(fourcc: u32, modifier: u64) -> *mut c_char;
4573 pub fn gst_video_event_is_force_key_unit(event: *mut gst::GstEvent) -> gboolean;
4574 pub fn gst_video_event_new_downstream_force_key_unit(
4575 timestamp: gst::GstClockTime,
4576 stream_time: gst::GstClockTime,
4577 running_time: gst::GstClockTime,
4578 all_headers: gboolean,
4579 count: c_uint,
4580 ) -> *mut gst::GstEvent;
4581 pub fn gst_video_event_new_still_frame(in_still: gboolean) -> *mut gst::GstEvent;
4582 pub fn gst_video_event_new_upstream_force_key_unit(
4583 running_time: gst::GstClockTime,
4584 all_headers: gboolean,
4585 count: c_uint,
4586 ) -> *mut gst::GstEvent;
4587 pub fn gst_video_event_parse_downstream_force_key_unit(
4588 event: *mut gst::GstEvent,
4589 timestamp: *mut gst::GstClockTime,
4590 stream_time: *mut gst::GstClockTime,
4591 running_time: *mut gst::GstClockTime,
4592 all_headers: *mut gboolean,
4593 count: *mut c_uint,
4594 ) -> gboolean;
4595 pub fn gst_video_event_parse_still_frame(
4596 event: *mut gst::GstEvent,
4597 in_still: *mut gboolean,
4598 ) -> gboolean;
4599 pub fn gst_video_event_parse_upstream_force_key_unit(
4600 event: *mut gst::GstEvent,
4601 running_time: *mut gst::GstClockTime,
4602 all_headers: *mut gboolean,
4603 count: *mut c_uint,
4604 ) -> gboolean;
4605 #[cfg(feature = "v1_24")]
4606 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
4607 pub fn gst_video_formats_any(len: *mut c_uint) -> *const GstVideoFormat;
4608 #[cfg(feature = "v1_18")]
4609 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4610 pub fn gst_video_formats_raw(len: *mut c_uint) -> *const GstVideoFormat;
4611 pub fn gst_video_gl_texture_upload_meta_api_get_type() -> GType;
4612 pub fn gst_video_guess_framerate(
4613 duration: gst::GstClockTime,
4614 dest_n: *mut c_int,
4615 dest_d: *mut c_int,
4616 ) -> gboolean;
4617 #[cfg(feature = "v1_22")]
4618 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4619 pub fn gst_video_is_common_aspect_ratio(
4620 width: c_int,
4621 height: c_int,
4622 par_n: c_int,
4623 par_d: c_int,
4624 ) -> gboolean;
4625 #[cfg(feature = "v1_24")]
4626 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
4627 pub fn gst_video_is_dma_drm_caps(caps: *const gst::GstCaps) -> gboolean;
4628 #[cfg(feature = "v1_18")]
4629 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4630 pub fn gst_video_make_raw_caps(
4631 formats: *const GstVideoFormat,
4632 len: c_uint,
4633 ) -> *mut gst::GstCaps;
4634 #[cfg(feature = "v1_18")]
4635 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4636 pub fn gst_video_make_raw_caps_with_features(
4637 formats: *const GstVideoFormat,
4638 len: c_uint,
4639 features: *mut gst::GstCapsFeatures,
4640 ) -> *mut gst::GstCaps;
4641 pub fn gst_video_meta_api_get_type() -> GType;
4642 pub fn gst_video_multiview_get_doubled_height_modes() -> *const gobject::GValue;
4643 pub fn gst_video_multiview_get_doubled_size_modes() -> *const gobject::GValue;
4644 pub fn gst_video_multiview_get_doubled_width_modes() -> *const gobject::GValue;
4645 pub fn gst_video_multiview_get_mono_modes() -> *const gobject::GValue;
4646 pub fn gst_video_multiview_get_unpacked_modes() -> *const gobject::GValue;
4647 pub fn gst_video_multiview_guess_half_aspect(
4648 mv_mode: GstVideoMultiviewMode,
4649 width: c_uint,
4650 height: c_uint,
4651 par_n: c_uint,
4652 par_d: c_uint,
4653 ) -> gboolean;
4654 pub fn gst_video_multiview_video_info_change_mode(
4655 info: *mut GstVideoInfo,
4656 out_mview_mode: GstVideoMultiviewMode,
4657 out_mview_flags: GstVideoMultiviewFlags,
4658 );
4659 pub fn gst_video_overlay_composition_meta_api_get_type() -> GType;
4660 pub fn gst_video_region_of_interest_meta_api_get_type() -> GType;
4661 #[cfg(feature = "v1_22")]
4662 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4663 pub fn gst_video_sei_user_data_unregistered_meta_api_get_type() -> GType;
4664 #[cfg(feature = "v1_22")]
4665 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4666 pub fn gst_video_sei_user_data_unregistered_parse_precision_time_stamp(
4667 user_data: *mut GstVideoSEIUserDataUnregisteredMeta,
4668 status: *mut u8,
4669 precision_time_stamp: *mut u64,
4670 ) -> gboolean;
4671 pub fn gst_video_tile_get_index(
4672 mode: GstVideoTileMode,
4673 x: c_int,
4674 y: c_int,
4675 x_tiles: c_int,
4676 y_tiles: c_int,
4677 ) -> c_uint;
4678 pub fn gst_video_time_code_meta_api_get_type() -> GType;
4679
4680}
4681