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