gstreamer_editing_services_sys/
lib.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
4// DO NOT EDIT
5
6#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
7#![allow(
8    clippy::approx_constant,
9    clippy::type_complexity,
10    clippy::unreadable_literal,
11    clippy::upper_case_acronyms
12)]
13#![cfg_attr(docsrs, feature(doc_cfg))]
14
15use gio_sys as gio;
16use glib_sys as glib;
17use gobject_sys as gobject;
18use gstreamer_pbutils_sys as gst_pbutils;
19use gstreamer_sys as gst;
20
21#[cfg(unix)]
22#[allow(unused_imports)]
23use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
24#[allow(unused_imports)]
25use libc::{intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE};
26#[allow(unused_imports)]
27use std::ffi::{
28    c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
29};
30
31#[allow(unused_imports)]
32use glib::{gboolean, gconstpointer, gpointer, GType};
33
34// Aliases
35pub type GESFrameNumber = i64;
36
37// Enums
38pub type GESAssetLoadingReturn = c_int;
39pub const GES_ASSET_LOADING_ERROR: GESAssetLoadingReturn = 0;
40pub const GES_ASSET_LOADING_ASYNC: GESAssetLoadingReturn = 1;
41pub const GES_ASSET_LOADING_OK: GESAssetLoadingReturn = 2;
42
43pub type GESChildrenControlMode = c_int;
44pub const GES_CHILDREN_UPDATE: GESChildrenControlMode = 0;
45pub const GES_CHILDREN_IGNORE_NOTIFIES: GESChildrenControlMode = 1;
46pub const GES_CHILDREN_UPDATE_OFFSETS: GESChildrenControlMode = 2;
47pub const GES_CHILDREN_UPDATE_ALL_VALUES: GESChildrenControlMode = 3;
48pub const GES_CHILDREN_LAST: GESChildrenControlMode = 4;
49
50pub type GESEdge = c_int;
51pub const GES_EDGE_START: GESEdge = 0;
52pub const GES_EDGE_END: GESEdge = 1;
53pub const GES_EDGE_NONE: GESEdge = 2;
54
55pub type GESEditMode = c_int;
56pub const GES_EDIT_MODE_NORMAL: GESEditMode = 0;
57pub const GES_EDIT_MODE_RIPPLE: GESEditMode = 1;
58pub const GES_EDIT_MODE_ROLL: GESEditMode = 2;
59pub const GES_EDIT_MODE_TRIM: GESEditMode = 3;
60pub const GES_EDIT_MODE_SLIDE: GESEditMode = 4;
61
62pub type GESError = c_int;
63pub const GES_ERROR_ASSET_WRONG_ID: GESError = 0;
64pub const GES_ERROR_ASSET_LOADING: GESError = 1;
65pub const GES_ERROR_FORMATTER_MALFORMED_INPUT_FILE: GESError = 2;
66pub const GES_ERROR_INVALID_FRAME_NUMBER: GESError = 3;
67pub const GES_ERROR_NEGATIVE_LAYER: GESError = 4;
68pub const GES_ERROR_NEGATIVE_TIME: GESError = 5;
69pub const GES_ERROR_NOT_ENOUGH_INTERNAL_CONTENT: GESError = 6;
70pub const GES_ERROR_INVALID_OVERLAP_IN_TRACK: GESError = 7;
71pub const GES_ERROR_INVALID_EFFECT_BIN_DESCRIPTION: GESError = 8;
72
73pub type GESTextHAlign = c_int;
74pub const GES_TEXT_HALIGN_LEFT: GESTextHAlign = 0;
75pub const GES_TEXT_HALIGN_CENTER: GESTextHAlign = 1;
76pub const GES_TEXT_HALIGN_RIGHT: GESTextHAlign = 2;
77pub const GES_TEXT_HALIGN_POSITION: GESTextHAlign = 4;
78pub const GES_TEXT_HALIGN_ABSOLUTE: GESTextHAlign = 5;
79
80pub type GESTextVAlign = c_int;
81pub const GES_TEXT_VALIGN_BASELINE: GESTextVAlign = 0;
82pub const GES_TEXT_VALIGN_BOTTOM: GESTextVAlign = 1;
83pub const GES_TEXT_VALIGN_TOP: GESTextVAlign = 2;
84pub const GES_TEXT_VALIGN_POSITION: GESTextVAlign = 3;
85pub const GES_TEXT_VALIGN_CENTER: GESTextVAlign = 4;
86pub const GES_TEXT_VALIGN_ABSOLUTE: GESTextVAlign = 5;
87
88pub type GESVideoStandardTransitionType = c_int;
89pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE: GESVideoStandardTransitionType = 0;
90pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_LR: GESVideoStandardTransitionType = 1;
91pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_TB: GESVideoStandardTransitionType = 2;
92pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TL: GESVideoStandardTransitionType = 3;
93pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TR: GESVideoStandardTransitionType = 4;
94pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BR: GESVideoStandardTransitionType = 5;
95pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BL: GESVideoStandardTransitionType = 6;
96pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CI: GESVideoStandardTransitionType = 7;
97pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CO: GESVideoStandardTransitionType = 8;
98pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_V: GESVideoStandardTransitionType = 21;
99pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_H: GESVideoStandardTransitionType = 22;
100pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TC: GESVideoStandardTransitionType = 23;
101pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_RC: GESVideoStandardTransitionType = 24;
102pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BC: GESVideoStandardTransitionType = 25;
103pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_LC: GESVideoStandardTransitionType = 26;
104pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TL: GESVideoStandardTransitionType = 41;
105pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TR: GESVideoStandardTransitionType = 42;
106pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_V: GESVideoStandardTransitionType = 43;
107pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_H: GESVideoStandardTransitionType = 44;
108pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DBL: GESVideoStandardTransitionType = 45;
109pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DTL: GESVideoStandardTransitionType = 46;
110pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DBD: GESVideoStandardTransitionType = 47;
111pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DD: GESVideoStandardTransitionType = 48;
112pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_D: GESVideoStandardTransitionType = 61;
113pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_L: GESVideoStandardTransitionType = 62;
114pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_U: GESVideoStandardTransitionType = 63;
115pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_R: GESVideoStandardTransitionType = 64;
116pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_D: GESVideoStandardTransitionType = 65;
117pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_L: GESVideoStandardTransitionType = 66;
118pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_U: GESVideoStandardTransitionType = 67;
119pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_R: GESVideoStandardTransitionType = 68;
120pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_IRIS_RECT: GESVideoStandardTransitionType = 101;
121pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW12: GESVideoStandardTransitionType = 201;
122pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW3: GESVideoStandardTransitionType = 202;
123pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW6: GESVideoStandardTransitionType = 203;
124pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW9: GESVideoStandardTransitionType = 204;
125pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBV: GESVideoStandardTransitionType = 205;
126pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBH: GESVideoStandardTransitionType = 206;
127pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_FB: GESVideoStandardTransitionType = 207;
128pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CT: GESVideoStandardTransitionType = 211;
129pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CR: GESVideoStandardTransitionType = 212;
130pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOV: GESVideoStandardTransitionType = 213;
131pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOH: GESVideoStandardTransitionType = 214;
132pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWT: GESVideoStandardTransitionType = 221;
133pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWR: GESVideoStandardTransitionType = 222;
134pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWB: GESVideoStandardTransitionType = 223;
135pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWL: GESVideoStandardTransitionType = 224;
136pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PV: GESVideoStandardTransitionType = 225;
137pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PD: GESVideoStandardTransitionType = 226;
138pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OV: GESVideoStandardTransitionType = 227;
139pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OH: GESVideoStandardTransitionType = 228;
140pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_T: GESVideoStandardTransitionType = 231;
141pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_R: GESVideoStandardTransitionType = 232;
142pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_B: GESVideoStandardTransitionType = 233;
143pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_L: GESVideoStandardTransitionType = 234;
144pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIV: GESVideoStandardTransitionType = 235;
145pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIH: GESVideoStandardTransitionType = 236;
146pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTL: GESVideoStandardTransitionType = 241;
147pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBL: GESVideoStandardTransitionType = 242;
148pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBR: GESVideoStandardTransitionType = 243;
149pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTR: GESVideoStandardTransitionType = 244;
150pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDTL: GESVideoStandardTransitionType = 245;
151pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDBL: GESVideoStandardTransitionType = 246;
152pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_T: GESVideoStandardTransitionType = 251;
153pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_L: GESVideoStandardTransitionType = 252;
154pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_B: GESVideoStandardTransitionType = 253;
155pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_R: GESVideoStandardTransitionType = 254;
156pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_R: GESVideoStandardTransitionType = 261;
157pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_U: GESVideoStandardTransitionType = 262;
158pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_V: GESVideoStandardTransitionType = 263;
159pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_H: GESVideoStandardTransitionType = 264;
160pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE: GESVideoStandardTransitionType = 512;
161#[cfg(feature = "v1_22")]
162#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
163pub const GES_VIDEO_STANDARD_TRANSITION_TYPE_FADE_IN: GESVideoStandardTransitionType = 513;
164
165pub type GESVideoTestPattern = c_int;
166pub const GES_VIDEO_TEST_PATTERN_SMPTE: GESVideoTestPattern = 0;
167pub const GES_VIDEO_TEST_PATTERN_SNOW: GESVideoTestPattern = 1;
168pub const GES_VIDEO_TEST_PATTERN_BLACK: GESVideoTestPattern = 2;
169pub const GES_VIDEO_TEST_PATTERN_WHITE: GESVideoTestPattern = 3;
170pub const GES_VIDEO_TEST_PATTERN_RED: GESVideoTestPattern = 4;
171pub const GES_VIDEO_TEST_PATTERN_GREEN: GESVideoTestPattern = 5;
172pub const GES_VIDEO_TEST_PATTERN_BLUE: GESVideoTestPattern = 6;
173pub const GES_VIDEO_TEST_PATTERN_CHECKERS1: GESVideoTestPattern = 7;
174pub const GES_VIDEO_TEST_PATTERN_CHECKERS2: GESVideoTestPattern = 8;
175pub const GES_VIDEO_TEST_PATTERN_CHECKERS4: GESVideoTestPattern = 9;
176pub const GES_VIDEO_TEST_PATTERN_CHECKERS8: GESVideoTestPattern = 10;
177pub const GES_VIDEO_TEST_PATTERN_CIRCULAR: GESVideoTestPattern = 11;
178pub const GES_VIDEO_TEST_PATTERN_BLINK: GESVideoTestPattern = 12;
179pub const GES_VIDEO_TEST_PATTERN_SMPTE75: GESVideoTestPattern = 13;
180pub const GES_VIDEO_TEST_ZONE_PLATE: GESVideoTestPattern = 14;
181pub const GES_VIDEO_TEST_GAMUT: GESVideoTestPattern = 15;
182pub const GES_VIDEO_TEST_CHROMA_ZONE_PLATE: GESVideoTestPattern = 16;
183pub const GES_VIDEO_TEST_PATTERN_SOLID: GESVideoTestPattern = 17;
184
185// Constants
186pub const GES_FRAME_NUMBER_NONE: i64 = 9223372036854775807;
187pub const GES_META_DESCRIPTION: &[u8] = b"description\0";
188pub const GES_META_FORMATTER_EXTENSION: &[u8] = b"extension\0";
189pub const GES_META_FORMATTER_MIMETYPE: &[u8] = b"mimetype\0";
190pub const GES_META_FORMATTER_NAME: &[u8] = b"name\0";
191pub const GES_META_FORMATTER_RANK: &[u8] = b"rank\0";
192pub const GES_META_FORMATTER_VERSION: &[u8] = b"version\0";
193pub const GES_META_FORMAT_VERSION: &[u8] = b"format-version\0";
194pub const GES_META_MARKER_COLOR: &[u8] = b"marker-color\0";
195pub const GES_META_VOLUME: &[u8] = b"volume\0";
196pub const GES_META_VOLUME_DEFAULT: c_double = 1.000000;
197pub const GES_MULTI_FILE_URI_PREFIX: &[u8] = b"multifile://\0";
198pub const GES_PADDING: c_int = 4;
199pub const GES_PADDING_LARGE: c_int = 20;
200pub const GES_TIMELINE_ELEMENT_NO_LAYER_PRIORITY: u32 = 4294967295;
201
202// Flags
203pub type GESMarkerFlags = c_uint;
204pub const GES_MARKER_FLAG_NONE: GESMarkerFlags = 0;
205pub const GES_MARKER_FLAG_SNAPPABLE: GESMarkerFlags = 1;
206
207pub type GESMetaFlag = c_uint;
208pub const GES_META_READABLE: GESMetaFlag = 1;
209pub const GES_META_WRITABLE: GESMetaFlag = 2;
210pub const GES_META_READ_WRITE: GESMetaFlag = 3;
211
212pub type GESPipelineFlags = c_uint;
213pub const GES_PIPELINE_MODE_PREVIEW_AUDIO: GESPipelineFlags = 1;
214pub const GES_PIPELINE_MODE_PREVIEW_VIDEO: GESPipelineFlags = 2;
215pub const GES_PIPELINE_MODE_PREVIEW: GESPipelineFlags = 3;
216pub const GES_PIPELINE_MODE_RENDER: GESPipelineFlags = 4;
217pub const GES_PIPELINE_MODE_SMART_RENDER: GESPipelineFlags = 8;
218
219pub type GESTrackType = c_uint;
220pub const GES_TRACK_TYPE_UNKNOWN: GESTrackType = 1;
221pub const GES_TRACK_TYPE_AUDIO: GESTrackType = 2;
222pub const GES_TRACK_TYPE_VIDEO: GESTrackType = 4;
223pub const GES_TRACK_TYPE_TEXT: GESTrackType = 8;
224pub const GES_TRACK_TYPE_CUSTOM: GESTrackType = 16;
225
226// Unions
227#[derive(Copy, Clone)]
228#[repr(C)]
229pub union GESClipClass_ABI {
230    pub _ges_reserved: [gpointer; 20],
231    pub abi: GESClipClass_ABI_abi,
232}
233
234impl ::std::fmt::Debug for GESClipClass_ABI {
235    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
236        f.debug_struct(&format!("GESClipClass_ABI @ {self:p}"))
237            .field("_ges_reserved", unsafe { &self._ges_reserved })
238            .field("abi", unsafe { &self.abi })
239            .finish()
240    }
241}
242
243#[derive(Copy, Clone)]
244#[repr(C)]
245pub union GESTrackElementClass_ABI {
246    pub _ges_reserved: [gpointer; 20],
247    pub abi: GESTrackElementClass_ABI_abi,
248}
249
250impl ::std::fmt::Debug for GESTrackElementClass_ABI {
251    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
252        f.debug_struct(&format!("GESTrackElementClass_ABI @ {self:p}"))
253            .field("_ges_reserved", unsafe { &self._ges_reserved })
254            .field("abi", unsafe { &self.abi })
255            .finish()
256    }
257}
258
259#[derive(Copy, Clone)]
260#[repr(C)]
261pub union GESVideoSourceClass_ABI {
262    pub _ges_reserved: [gpointer; 4],
263    pub abi: GESVideoSourceClass_ABI_abi,
264}
265
266impl ::std::fmt::Debug for GESVideoSourceClass_ABI {
267    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
268        f.debug_struct(&format!("GESVideoSourceClass_ABI @ {self:p}"))
269            .field("_ges_reserved", unsafe { &self._ges_reserved })
270            .field("abi", unsafe { &self.abi })
271            .finish()
272    }
273}
274
275// Callbacks
276pub type GESBaseEffectTimeTranslationFunc = Option<
277    unsafe extern "C" fn(
278        *mut GESBaseEffect,
279        gst::GstClockTime,
280        *mut glib::GHashTable,
281        gpointer,
282    ) -> gst::GstClockTime,
283>;
284pub type GESCreateElementForGapFunc =
285    Option<unsafe extern "C" fn(*mut GESTrack) -> *mut gst::GstElement>;
286pub type GESCreateTrackElementFunc =
287    Option<unsafe extern "C" fn(*mut GESClip, GESTrackType) -> *mut GESTrackElement>;
288pub type GESCreateTrackElementsFunc =
289    Option<unsafe extern "C" fn(*mut GESClip, GESTrackType) -> *mut glib::GList>;
290pub type GESExtractableCheckId =
291    Option<unsafe extern "C" fn(GType, *const c_char, *mut *mut glib::GError) -> *mut c_char>;
292pub type GESFillTrackElementFunc = Option<
293    unsafe extern "C" fn(*mut GESClip, *mut GESTrackElement, *mut gst::GstElement) -> gboolean,
294>;
295pub type GESFormatterCanLoadURIMethod = Option<
296    unsafe extern "C" fn(*mut GESFormatter, *const c_char, *mut *mut glib::GError) -> gboolean,
297>;
298pub type GESFormatterLoadFromURIMethod = Option<
299    unsafe extern "C" fn(
300        *mut GESFormatter,
301        *mut GESTimeline,
302        *const c_char,
303        *mut *mut glib::GError,
304    ) -> gboolean,
305>;
306pub type GESFormatterSaveToURIMethod = Option<
307    unsafe extern "C" fn(
308        *mut GESFormatter,
309        *mut GESTimeline,
310        *const c_char,
311        gboolean,
312        *mut *mut glib::GError,
313    ) -> gboolean,
314>;
315pub type GESMetaForeachFunc = Option<
316    unsafe extern "C" fn(*const GESMetaContainer, *const c_char, *const gobject::GValue, gpointer),
317>;
318
319// Records
320#[derive(Copy, Clone)]
321#[repr(C)]
322pub struct GESAssetClass {
323    pub parent: gobject::GObjectClass,
324    pub start_loading: Option<
325        unsafe extern "C" fn(*mut GESAsset, *mut *mut glib::GError) -> GESAssetLoadingReturn,
326    >,
327    pub extract:
328        Option<unsafe extern "C" fn(*mut GESAsset, *mut *mut glib::GError) -> *mut GESExtractable>,
329    pub inform_proxy: Option<unsafe extern "C" fn(*mut GESAsset, *const c_char)>,
330    pub proxied: Option<unsafe extern "C" fn(*mut GESAsset, *mut GESAsset)>,
331    pub request_id_update: Option<
332        unsafe extern "C" fn(*mut GESAsset, *mut *mut c_char, *mut glib::GError) -> gboolean,
333    >,
334    pub _ges_reserved: [gpointer; 4],
335}
336
337impl ::std::fmt::Debug for GESAssetClass {
338    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
339        f.debug_struct(&format!("GESAssetClass @ {self:p}"))
340            .field("parent", &self.parent)
341            .field("start_loading", &self.start_loading)
342            .field("extract", &self.extract)
343            .field("inform_proxy", &self.inform_proxy)
344            .field("proxied", &self.proxied)
345            .field("request_id_update", &self.request_id_update)
346            .field("_ges_reserved", &self._ges_reserved)
347            .finish()
348    }
349}
350
351#[repr(C)]
352#[allow(dead_code)]
353pub struct _GESAssetPrivate {
354    _data: [u8; 0],
355    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
356}
357
358pub type GESAssetPrivate = _GESAssetPrivate;
359
360#[derive(Copy, Clone)]
361#[repr(C)]
362pub struct GESAudioSourceClass {
363    pub parent_class: GESSourceClass,
364    pub create_source: Option<unsafe extern "C" fn(*mut GESTrackElement) -> *mut gst::GstElement>,
365    pub _ges_reserved: [gpointer; 4],
366}
367
368impl ::std::fmt::Debug for GESAudioSourceClass {
369    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
370        f.debug_struct(&format!("GESAudioSourceClass @ {self:p}"))
371            .field("create_source", &self.create_source)
372            .finish()
373    }
374}
375
376#[repr(C)]
377#[allow(dead_code)]
378pub struct _GESAudioSourcePrivate {
379    _data: [u8; 0],
380    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
381}
382
383pub type GESAudioSourcePrivate = _GESAudioSourcePrivate;
384
385#[derive(Copy, Clone)]
386#[repr(C)]
387pub struct GESAudioTestSourceClass {
388    pub parent_class: GESAudioSourceClass,
389    pub _ges_reserved: [gpointer; 4],
390}
391
392impl ::std::fmt::Debug for GESAudioTestSourceClass {
393    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
394        f.debug_struct(&format!("GESAudioTestSourceClass @ {self:p}"))
395            .finish()
396    }
397}
398
399#[repr(C)]
400#[allow(dead_code)]
401pub struct _GESAudioTestSourcePrivate {
402    _data: [u8; 0],
403    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
404}
405
406pub type GESAudioTestSourcePrivate = _GESAudioTestSourcePrivate;
407
408#[derive(Copy, Clone)]
409#[repr(C)]
410pub struct GESAudioTrackClass {
411    pub parent_class: GESTrackClass,
412    pub _ges_reserved: [gpointer; 4],
413}
414
415impl ::std::fmt::Debug for GESAudioTrackClass {
416    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
417        f.debug_struct(&format!("GESAudioTrackClass @ {self:p}"))
418            .field("parent_class", &self.parent_class)
419            .field("_ges_reserved", &self._ges_reserved)
420            .finish()
421    }
422}
423
424#[repr(C)]
425#[allow(dead_code)]
426pub struct _GESAudioTrackPrivate {
427    _data: [u8; 0],
428    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
429}
430
431pub type GESAudioTrackPrivate = _GESAudioTrackPrivate;
432
433#[derive(Copy, Clone)]
434#[repr(C)]
435pub struct GESAudioTransitionClass {
436    pub parent_class: GESTransitionClass,
437    pub _ges_reserved: [gpointer; 4],
438}
439
440impl ::std::fmt::Debug for GESAudioTransitionClass {
441    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
442        f.debug_struct(&format!("GESAudioTransitionClass @ {self:p}"))
443            .field("parent_class", &self.parent_class)
444            .field("_ges_reserved", &self._ges_reserved)
445            .finish()
446    }
447}
448
449#[repr(C)]
450#[allow(dead_code)]
451pub struct _GESAudioTransitionPrivate {
452    _data: [u8; 0],
453    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
454}
455
456pub type GESAudioTransitionPrivate = _GESAudioTransitionPrivate;
457
458#[derive(Copy, Clone)]
459#[repr(C)]
460pub struct GESAudioUriSourceClass {
461    pub parent_class: GESAudioSourceClass,
462    pub _ges_reserved: [gpointer; 4],
463}
464
465impl ::std::fmt::Debug for GESAudioUriSourceClass {
466    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
467        f.debug_struct(&format!("GESAudioUriSourceClass @ {self:p}"))
468            .finish()
469    }
470}
471
472#[repr(C)]
473#[allow(dead_code)]
474pub struct _GESAudioUriSourcePrivate {
475    _data: [u8; 0],
476    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
477}
478
479pub type GESAudioUriSourcePrivate = _GESAudioUriSourcePrivate;
480
481#[derive(Copy, Clone)]
482#[repr(C)]
483pub struct GESBaseEffectClass {
484    pub parent_class: GESOperationClass,
485    pub _ges_reserved: [gpointer; 4],
486}
487
488impl ::std::fmt::Debug for GESBaseEffectClass {
489    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
490        f.debug_struct(&format!("GESBaseEffectClass @ {self:p}"))
491            .finish()
492    }
493}
494
495#[derive(Copy, Clone)]
496#[repr(C)]
497pub struct GESBaseEffectClipClass {
498    pub parent_class: GESOperationClipClass,
499    pub _ges_reserved: [gpointer; 4],
500}
501
502impl ::std::fmt::Debug for GESBaseEffectClipClass {
503    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
504        f.debug_struct(&format!("GESBaseEffectClipClass @ {self:p}"))
505            .finish()
506    }
507}
508
509#[repr(C)]
510#[allow(dead_code)]
511pub struct _GESBaseEffectClipPrivate {
512    _data: [u8; 0],
513    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
514}
515
516pub type GESBaseEffectClipPrivate = _GESBaseEffectClipPrivate;
517
518#[repr(C)]
519#[allow(dead_code)]
520pub struct _GESBaseEffectPrivate {
521    _data: [u8; 0],
522    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
523}
524
525pub type GESBaseEffectPrivate = _GESBaseEffectPrivate;
526
527#[derive(Copy, Clone)]
528#[repr(C)]
529pub struct GESBaseTransitionClipClass {
530    pub parent_class: GESOperationClipClass,
531    pub _ges_reserved: [gpointer; 4],
532}
533
534impl ::std::fmt::Debug for GESBaseTransitionClipClass {
535    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
536        f.debug_struct(&format!("GESBaseTransitionClipClass @ {self:p}"))
537            .finish()
538    }
539}
540
541#[repr(C)]
542#[allow(dead_code)]
543pub struct _GESBaseTransitionClipPrivate {
544    _data: [u8; 0],
545    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
546}
547
548pub type GESBaseTransitionClipPrivate = _GESBaseTransitionClipPrivate;
549
550#[derive(Copy, Clone)]
551#[repr(C)]
552pub struct GESBaseXmlFormatterClass {
553    pub parent: GESFormatterClass,
554    pub content_parser: glib::GMarkupParser,
555    pub save: Option<
556        unsafe extern "C" fn(
557            *mut GESFormatter,
558            *mut GESTimeline,
559            *mut *mut glib::GError,
560        ) -> *mut glib::GString,
561    >,
562    pub _ges_reserved: [gpointer; 4],
563}
564
565impl ::std::fmt::Debug for GESBaseXmlFormatterClass {
566    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
567        f.debug_struct(&format!("GESBaseXmlFormatterClass @ {self:p}"))
568            .field("parent", &self.parent)
569            .field("content_parser", &self.content_parser)
570            .field("save", &self.save)
571            .field("_ges_reserved", &self._ges_reserved)
572            .finish()
573    }
574}
575
576#[repr(C)]
577#[allow(dead_code)]
578pub struct _GESBaseXmlFormatterPrivate {
579    _data: [u8; 0],
580    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
581}
582
583pub type GESBaseXmlFormatterPrivate = _GESBaseXmlFormatterPrivate;
584
585#[derive(Copy, Clone)]
586#[repr(C)]
587pub struct GESClipAssetClass {
588    pub parent: GESAssetClass,
589    pub get_natural_framerate:
590        Option<unsafe extern "C" fn(*mut GESClipAsset, *mut c_int, *mut c_int) -> gboolean>,
591    pub _ges_reserved: [gpointer; 3],
592}
593
594impl ::std::fmt::Debug for GESClipAssetClass {
595    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
596        f.debug_struct(&format!("GESClipAssetClass @ {self:p}"))
597            .field("parent", &self.parent)
598            .field("get_natural_framerate", &self.get_natural_framerate)
599            .field("_ges_reserved", &self._ges_reserved)
600            .finish()
601    }
602}
603
604#[repr(C)]
605#[allow(dead_code)]
606pub struct _GESClipAssetPrivate {
607    _data: [u8; 0],
608    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
609}
610
611pub type GESClipAssetPrivate = _GESClipAssetPrivate;
612
613#[derive(Copy, Clone)]
614#[repr(C)]
615pub struct GESClipClass {
616    pub parent_class: GESContainerClass,
617    pub create_track_element: GESCreateTrackElementFunc,
618    pub create_track_elements: GESCreateTrackElementsFunc,
619    pub ABI: GESClipClass_ABI,
620}
621
622impl ::std::fmt::Debug for GESClipClass {
623    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
624        f.debug_struct(&format!("GESClipClass @ {self:p}"))
625            .field("create_track_element", &self.create_track_element)
626            .field("create_track_elements", &self.create_track_elements)
627            .field("ABI", &self.ABI)
628            .finish()
629    }
630}
631
632#[derive(Copy, Clone)]
633#[repr(C)]
634pub struct GESClipClass_ABI_abi {
635    pub can_add_effects: gboolean,
636}
637
638impl ::std::fmt::Debug for GESClipClass_ABI_abi {
639    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
640        f.debug_struct(&format!("GESClipClass_ABI_abi @ {self:p}"))
641            .field("can_add_effects", &self.can_add_effects)
642            .finish()
643    }
644}
645
646#[repr(C)]
647#[allow(dead_code)]
648pub struct _GESClipPrivate {
649    _data: [u8; 0],
650    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
651}
652
653pub type GESClipPrivate = _GESClipPrivate;
654
655#[derive(Copy, Clone)]
656#[repr(C)]
657pub struct GESCommandLineFormatterClass {
658    pub parent_class: GESFormatterClass,
659}
660
661impl ::std::fmt::Debug for GESCommandLineFormatterClass {
662    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
663        f.debug_struct(&format!("GESCommandLineFormatterClass @ {self:p}"))
664            .field("parent_class", &self.parent_class)
665            .finish()
666    }
667}
668
669#[repr(C)]
670#[allow(dead_code)]
671pub struct _GESCommandLineFormatterPrivate {
672    _data: [u8; 0],
673    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
674}
675
676pub type GESCommandLineFormatterPrivate = _GESCommandLineFormatterPrivate;
677
678#[derive(Copy, Clone)]
679#[repr(C)]
680pub struct GESContainerClass {
681    pub parent_class: GESTimelineElementClass,
682    pub child_added: Option<unsafe extern "C" fn(*mut GESContainer, *mut GESTimelineElement)>,
683    pub child_removed: Option<unsafe extern "C" fn(*mut GESContainer, *mut GESTimelineElement)>,
684    pub add_child:
685        Option<unsafe extern "C" fn(*mut GESContainer, *mut GESTimelineElement) -> gboolean>,
686    pub remove_child:
687        Option<unsafe extern "C" fn(*mut GESContainer, *mut GESTimelineElement) -> gboolean>,
688    pub ungroup: Option<unsafe extern "C" fn(*mut GESContainer, gboolean) -> *mut glib::GList>,
689    pub group: Option<unsafe extern "C" fn(*mut glib::GList) -> *mut GESContainer>,
690    pub edit: Option<
691        unsafe extern "C" fn(
692            *mut GESContainer,
693            *mut glib::GList,
694            c_int,
695            GESEditMode,
696            GESEdge,
697            u64,
698        ) -> gboolean,
699    >,
700    pub grouping_priority: c_uint,
701    pub _ges_reserved: [gpointer; 20],
702}
703
704impl ::std::fmt::Debug for GESContainerClass {
705    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
706        f.debug_struct(&format!("GESContainerClass @ {self:p}"))
707            .field("child_added", &self.child_added)
708            .field("child_removed", &self.child_removed)
709            .field("add_child", &self.add_child)
710            .field("remove_child", &self.remove_child)
711            .field("ungroup", &self.ungroup)
712            .field("group", &self.group)
713            .field("edit", &self.edit)
714            .finish()
715    }
716}
717
718#[repr(C)]
719#[allow(dead_code)]
720pub struct _GESContainerPrivate {
721    _data: [u8; 0],
722    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
723}
724
725pub type GESContainerPrivate = _GESContainerPrivate;
726
727#[derive(Copy, Clone)]
728#[repr(C)]
729pub struct GESDiscovererManagerClass {
730    pub parent_class: gobject::GObjectClass,
731}
732
733impl ::std::fmt::Debug for GESDiscovererManagerClass {
734    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
735        f.debug_struct(&format!("GESDiscovererManagerClass @ {self:p}"))
736            .field("parent_class", &self.parent_class)
737            .finish()
738    }
739}
740
741#[repr(C)]
742#[allow(dead_code)]
743pub struct _GESDiscovererManagerPrivate {
744    _data: [u8; 0],
745    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
746}
747
748pub type GESDiscovererManagerPrivate = _GESDiscovererManagerPrivate;
749
750#[derive(Copy, Clone)]
751#[repr(C)]
752pub struct GESEffectAssetClass {
753    pub parent_class: GESTrackElementAssetClass,
754    pub _ges_reserved: [gpointer; 4],
755}
756
757impl ::std::fmt::Debug for GESEffectAssetClass {
758    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
759        f.debug_struct(&format!("GESEffectAssetClass @ {self:p}"))
760            .field("parent_class", &self.parent_class)
761            .field("_ges_reserved", &self._ges_reserved)
762            .finish()
763    }
764}
765
766#[repr(C)]
767#[allow(dead_code)]
768pub struct _GESEffectAssetPrivate {
769    _data: [u8; 0],
770    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
771}
772
773pub type GESEffectAssetPrivate = _GESEffectAssetPrivate;
774
775#[derive(Copy, Clone)]
776#[repr(C)]
777pub struct GESEffectClass {
778    pub parent_class: GESBaseEffectClass,
779    pub rate_properties: *mut glib::GList,
780    pub _ges_reserved: [gpointer; 4],
781}
782
783impl ::std::fmt::Debug for GESEffectClass {
784    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
785        f.debug_struct(&format!("GESEffectClass @ {self:p}"))
786            .finish()
787    }
788}
789
790#[derive(Copy, Clone)]
791#[repr(C)]
792pub struct GESEffectClipClass {
793    pub parent_class: GESBaseEffectClipClass,
794    pub _ges_reserved: [gpointer; 4],
795}
796
797impl ::std::fmt::Debug for GESEffectClipClass {
798    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
799        f.debug_struct(&format!("GESEffectClipClass @ {self:p}"))
800            .finish()
801    }
802}
803
804#[repr(C)]
805#[allow(dead_code)]
806pub struct _GESEffectClipPrivate {
807    _data: [u8; 0],
808    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
809}
810
811pub type GESEffectClipPrivate = _GESEffectClipPrivate;
812
813#[repr(C)]
814#[allow(dead_code)]
815pub struct _GESEffectPrivate {
816    _data: [u8; 0],
817    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
818}
819
820pub type GESEffectPrivate = _GESEffectPrivate;
821
822#[derive(Copy, Clone)]
823#[repr(C)]
824pub struct GESExtractableInterface {
825    pub parent: gobject::GTypeInterface,
826    pub asset_type: GType,
827    pub check_id: GESExtractableCheckId,
828    pub can_update_asset: gboolean,
829    pub set_asset: Option<unsafe extern "C" fn(*mut GESExtractable, *mut GESAsset)>,
830    pub set_asset_full:
831        Option<unsafe extern "C" fn(*mut GESExtractable, *mut GESAsset) -> gboolean>,
832    pub get_parameters_from_id:
833        Option<unsafe extern "C" fn(*const c_char, *mut c_uint) -> *mut gobject::GParameter>,
834    pub get_id: Option<unsafe extern "C" fn(*mut GESExtractable) -> *mut c_char>,
835    pub get_real_extractable_type: Option<unsafe extern "C" fn(GType, *const c_char) -> GType>,
836    pub register_metas: Option<
837        unsafe extern "C" fn(
838            *mut GESExtractableInterface,
839            *mut gobject::GObjectClass,
840            *mut GESAsset,
841        ) -> gboolean,
842    >,
843    pub _ges_reserved: [gpointer; 4],
844}
845
846impl ::std::fmt::Debug for GESExtractableInterface {
847    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
848        f.debug_struct(&format!("GESExtractableInterface @ {self:p}"))
849            .field("parent", &self.parent)
850            .field("asset_type", &self.asset_type)
851            .field("check_id", &self.check_id)
852            .field("can_update_asset", &self.can_update_asset)
853            .field("set_asset", &self.set_asset)
854            .field("set_asset_full", &self.set_asset_full)
855            .field("get_parameters_from_id", &self.get_parameters_from_id)
856            .field("get_id", &self.get_id)
857            .field("get_real_extractable_type", &self.get_real_extractable_type)
858            .field("register_metas", &self.register_metas)
859            .field("_ges_reserved", &self._ges_reserved)
860            .finish()
861    }
862}
863
864#[derive(Copy, Clone)]
865#[repr(C)]
866pub struct GESFormatterClass {
867    pub parent_class: gobject::GInitiallyUnownedClass,
868    pub can_load_uri: GESFormatterCanLoadURIMethod,
869    pub load_from_uri: GESFormatterLoadFromURIMethod,
870    pub save_to_uri: GESFormatterSaveToURIMethod,
871    pub name: *mut c_char,
872    pub description: *mut c_char,
873    pub extension: *mut c_char,
874    pub mimetype: *mut c_char,
875    pub version: c_double,
876    pub rank: gst::GstRank,
877    pub _ges_reserved: [gpointer; 4],
878}
879
880impl ::std::fmt::Debug for GESFormatterClass {
881    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
882        f.debug_struct(&format!("GESFormatterClass @ {self:p}"))
883            .field("parent_class", &self.parent_class)
884            .field("can_load_uri", &self.can_load_uri)
885            .field("load_from_uri", &self.load_from_uri)
886            .field("save_to_uri", &self.save_to_uri)
887            .finish()
888    }
889}
890
891#[repr(C)]
892#[allow(dead_code)]
893pub struct _GESFormatterPrivate {
894    _data: [u8; 0],
895    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
896}
897
898pub type GESFormatterPrivate = _GESFormatterPrivate;
899
900#[derive(Copy, Clone)]
901#[repr(C)]
902pub struct GESFrameCompositionMeta {
903    pub meta: gst::GstMeta,
904    pub alpha: c_double,
905    pub posx: c_double,
906    pub posy: c_double,
907    pub height: c_double,
908    pub width: c_double,
909    pub zorder: c_uint,
910    pub operator: c_int,
911}
912
913impl ::std::fmt::Debug for GESFrameCompositionMeta {
914    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
915        f.debug_struct(&format!("GESFrameCompositionMeta @ {self:p}"))
916            .field("meta", &self.meta)
917            .field("alpha", &self.alpha)
918            .field("posx", &self.posx)
919            .field("posy", &self.posy)
920            .field("height", &self.height)
921            .field("width", &self.width)
922            .field("zorder", &self.zorder)
923            .field("operator", &self.operator)
924            .finish()
925    }
926}
927
928#[derive(Copy, Clone)]
929#[repr(C)]
930pub struct GESGroupClass {
931    pub parent_class: GESContainerClass,
932    pub _ges_reserved: [gpointer; 4],
933}
934
935impl ::std::fmt::Debug for GESGroupClass {
936    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
937        f.debug_struct(&format!("GESGroupClass @ {self:p}"))
938            .field("parent_class", &self.parent_class)
939            .field("_ges_reserved", &self._ges_reserved)
940            .finish()
941    }
942}
943
944#[repr(C)]
945#[allow(dead_code)]
946pub struct _GESGroupPrivate {
947    _data: [u8; 0],
948    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
949}
950
951pub type GESGroupPrivate = _GESGroupPrivate;
952
953#[derive(Copy, Clone)]
954#[repr(C)]
955pub struct GESImageSourceClass {
956    pub parent_class: GESVideoSourceClass,
957    pub _ges_reserved: [gpointer; 4],
958}
959
960impl ::std::fmt::Debug for GESImageSourceClass {
961    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
962        f.debug_struct(&format!("GESImageSourceClass @ {self:p}"))
963            .field("parent_class", &self.parent_class)
964            .field("_ges_reserved", &self._ges_reserved)
965            .finish()
966    }
967}
968
969#[repr(C)]
970#[allow(dead_code)]
971pub struct _GESImageSourcePrivate {
972    _data: [u8; 0],
973    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
974}
975
976pub type GESImageSourcePrivate = _GESImageSourcePrivate;
977
978#[derive(Copy, Clone)]
979#[repr(C)]
980pub struct GESLayerClass {
981    pub parent_class: gobject::GInitiallyUnownedClass,
982    pub get_objects: Option<unsafe extern "C" fn(*mut GESLayer) -> *mut glib::GList>,
983    pub object_added: Option<unsafe extern "C" fn(*mut GESLayer, *mut GESClip)>,
984    pub object_removed: Option<unsafe extern "C" fn(*mut GESLayer, *mut GESClip)>,
985    pub _ges_reserved: [gpointer; 4],
986}
987
988impl ::std::fmt::Debug for GESLayerClass {
989    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
990        f.debug_struct(&format!("GESLayerClass @ {self:p}"))
991            .field("get_objects", &self.get_objects)
992            .field("object_added", &self.object_added)
993            .field("object_removed", &self.object_removed)
994            .finish()
995    }
996}
997
998#[repr(C)]
999#[allow(dead_code)]
1000pub struct _GESLayerPrivate {
1001    _data: [u8; 0],
1002    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1003}
1004
1005pub type GESLayerPrivate = _GESLayerPrivate;
1006
1007#[derive(Copy, Clone)]
1008#[repr(C)]
1009pub struct GESMarkerClass {
1010    pub parent_class: gobject::GObjectClass,
1011}
1012
1013impl ::std::fmt::Debug for GESMarkerClass {
1014    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1015        f.debug_struct(&format!("GESMarkerClass @ {self:p}"))
1016            .field("parent_class", &self.parent_class)
1017            .finish()
1018    }
1019}
1020
1021#[derive(Copy, Clone)]
1022#[repr(C)]
1023pub struct GESMarkerListClass {
1024    pub parent_class: gobject::GObjectClass,
1025}
1026
1027impl ::std::fmt::Debug for GESMarkerListClass {
1028    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1029        f.debug_struct(&format!("GESMarkerListClass @ {self:p}"))
1030            .field("parent_class", &self.parent_class)
1031            .finish()
1032    }
1033}
1034
1035#[derive(Copy, Clone)]
1036#[repr(C)]
1037pub struct GESMetaContainerInterface {
1038    pub parent_iface: gobject::GTypeInterface,
1039    pub _ges_reserved: [gpointer; 4],
1040}
1041
1042impl ::std::fmt::Debug for GESMetaContainerInterface {
1043    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1044        f.debug_struct(&format!("GESMetaContainerInterface @ {self:p}"))
1045            .field("parent_iface", &self.parent_iface)
1046            .field("_ges_reserved", &self._ges_reserved)
1047            .finish()
1048    }
1049}
1050
1051#[derive(Copy, Clone)]
1052#[repr(C)]
1053pub struct GESMultiFileSourceClass {
1054    pub parent_class: GESVideoSourceClass,
1055    pub _ges_reserved: [gpointer; 4],
1056}
1057
1058impl ::std::fmt::Debug for GESMultiFileSourceClass {
1059    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1060        f.debug_struct(&format!("GESMultiFileSourceClass @ {self:p}"))
1061            .field("parent_class", &self.parent_class)
1062            .field("_ges_reserved", &self._ges_reserved)
1063            .finish()
1064    }
1065}
1066
1067#[repr(C)]
1068#[allow(dead_code)]
1069pub struct _GESMultiFileSourcePrivate {
1070    _data: [u8; 0],
1071    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1072}
1073
1074pub type GESMultiFileSourcePrivate = _GESMultiFileSourcePrivate;
1075
1076#[derive(Copy, Clone)]
1077#[repr(C)]
1078pub struct GESOperationClass {
1079    pub parent_class: GESTrackElementClass,
1080    pub _ges_reserved: [gpointer; 4],
1081}
1082
1083impl ::std::fmt::Debug for GESOperationClass {
1084    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1085        f.debug_struct(&format!("GESOperationClass @ {self:p}"))
1086            .finish()
1087    }
1088}
1089
1090#[derive(Copy, Clone)]
1091#[repr(C)]
1092pub struct GESOperationClipClass {
1093    pub parent_class: GESClipClass,
1094    pub _ges_reserved: [gpointer; 4],
1095}
1096
1097impl ::std::fmt::Debug for GESOperationClipClass {
1098    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1099        f.debug_struct(&format!("GESOperationClipClass @ {self:p}"))
1100            .finish()
1101    }
1102}
1103
1104#[repr(C)]
1105#[allow(dead_code)]
1106pub struct _GESOperationClipPrivate {
1107    _data: [u8; 0],
1108    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1109}
1110
1111pub type GESOperationClipPrivate = _GESOperationClipPrivate;
1112
1113#[repr(C)]
1114#[allow(dead_code)]
1115pub struct _GESOperationPrivate {
1116    _data: [u8; 0],
1117    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1118}
1119
1120pub type GESOperationPrivate = _GESOperationPrivate;
1121
1122#[derive(Copy, Clone)]
1123#[repr(C)]
1124pub struct GESOverlayClipClass {
1125    pub parent_class: GESOperationClipClass,
1126    pub _ges_reserved: [gpointer; 4],
1127}
1128
1129impl ::std::fmt::Debug for GESOverlayClipClass {
1130    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1131        f.debug_struct(&format!("GESOverlayClipClass @ {self:p}"))
1132            .field("parent_class", &self.parent_class)
1133            .finish()
1134    }
1135}
1136
1137#[repr(C)]
1138#[allow(dead_code)]
1139pub struct _GESOverlayClipPrivate {
1140    _data: [u8; 0],
1141    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1142}
1143
1144pub type GESOverlayClipPrivate = _GESOverlayClipPrivate;
1145
1146#[derive(Copy, Clone)]
1147#[repr(C)]
1148pub struct GESPipelineClass {
1149    pub parent_class: gst::GstPipelineClass,
1150    pub _ges_reserved: [gpointer; 4],
1151}
1152
1153impl ::std::fmt::Debug for GESPipelineClass {
1154    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1155        f.debug_struct(&format!("GESPipelineClass @ {self:p}"))
1156            .finish()
1157    }
1158}
1159
1160#[repr(C)]
1161#[allow(dead_code)]
1162pub struct _GESPipelinePrivate {
1163    _data: [u8; 0],
1164    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1165}
1166
1167pub type GESPipelinePrivate = _GESPipelinePrivate;
1168
1169#[repr(C)]
1170#[allow(dead_code)]
1171pub struct _GESPitiviFormatterPrivate {
1172    _data: [u8; 0],
1173    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1174}
1175
1176pub type GESPitiviFormatterPrivate = _GESPitiviFormatterPrivate;
1177
1178#[derive(Copy, Clone)]
1179#[repr(C)]
1180pub struct GESProjectClass {
1181    pub parent_class: GESAssetClass,
1182    pub asset_added: Option<unsafe extern "C" fn(*mut GESProject, *mut GESAsset)>,
1183    pub asset_loading: Option<unsafe extern "C" fn(*mut GESProject, *mut GESAsset)>,
1184    pub asset_removed: Option<unsafe extern "C" fn(*mut GESProject, *mut GESAsset)>,
1185    pub missing_uri: Option<
1186        unsafe extern "C" fn(*mut GESProject, *mut glib::GError, *mut GESAsset) -> *mut c_char,
1187    >,
1188    pub loading_error: Option<
1189        unsafe extern "C" fn(*mut GESProject, *mut glib::GError, *mut c_char, GType) -> gboolean,
1190    >,
1191    pub loaded: Option<unsafe extern "C" fn(*mut GESProject, *mut GESTimeline) -> gboolean>,
1192    pub loading: Option<unsafe extern "C" fn(*mut GESProject, *mut GESTimeline)>,
1193    pub _ges_reserved: [gpointer; 3],
1194}
1195
1196impl ::std::fmt::Debug for GESProjectClass {
1197    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1198        f.debug_struct(&format!("GESProjectClass @ {self:p}"))
1199            .field("parent_class", &self.parent_class)
1200            .field("asset_added", &self.asset_added)
1201            .field("asset_loading", &self.asset_loading)
1202            .field("asset_removed", &self.asset_removed)
1203            .field("missing_uri", &self.missing_uri)
1204            .field("loading_error", &self.loading_error)
1205            .field("loaded", &self.loaded)
1206            .field("loading", &self.loading)
1207            .field("_ges_reserved", &self._ges_reserved)
1208            .finish()
1209    }
1210}
1211
1212#[repr(C)]
1213#[allow(dead_code)]
1214pub struct _GESProjectPrivate {
1215    _data: [u8; 0],
1216    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1217}
1218
1219pub type GESProjectPrivate = _GESProjectPrivate;
1220
1221#[derive(Copy, Clone)]
1222#[repr(C)]
1223pub struct GESSourceClass {
1224    pub parent_class: GESTrackElementClass,
1225    pub select_pad: Option<unsafe extern "C" fn(*mut GESSource, *mut gst::GstPad) -> gboolean>,
1226    pub create_source: Option<unsafe extern "C" fn(*mut GESSource) -> *mut gst::GstElement>,
1227    pub _ges_reserved: [gpointer; 2],
1228}
1229
1230impl ::std::fmt::Debug for GESSourceClass {
1231    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1232        f.debug_struct(&format!("GESSourceClass @ {self:p}"))
1233            .field("select_pad", &self.select_pad)
1234            .field("create_source", &self.create_source)
1235            .finish()
1236    }
1237}
1238
1239#[derive(Copy, Clone)]
1240#[repr(C)]
1241pub struct GESSourceClipAssetClass {
1242    pub parent_class: GESClipAssetClass,
1243}
1244
1245impl ::std::fmt::Debug for GESSourceClipAssetClass {
1246    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1247        f.debug_struct(&format!("GESSourceClipAssetClass @ {self:p}"))
1248            .field("parent_class", &self.parent_class)
1249            .finish()
1250    }
1251}
1252
1253#[derive(Copy, Clone)]
1254#[repr(C)]
1255pub struct GESSourceClipClass {
1256    pub parent_class: GESClipClass,
1257    pub _ges_reserved: [gpointer; 4],
1258}
1259
1260impl ::std::fmt::Debug for GESSourceClipClass {
1261    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1262        f.debug_struct(&format!("GESSourceClipClass @ {self:p}"))
1263            .finish()
1264    }
1265}
1266
1267#[repr(C)]
1268#[allow(dead_code)]
1269pub struct _GESSourceClipPrivate {
1270    _data: [u8; 0],
1271    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1272}
1273
1274pub type GESSourceClipPrivate = _GESSourceClipPrivate;
1275
1276#[repr(C)]
1277#[allow(dead_code)]
1278pub struct _GESSourcePrivate {
1279    _data: [u8; 0],
1280    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1281}
1282
1283pub type GESSourcePrivate = _GESSourcePrivate;
1284
1285#[derive(Copy, Clone)]
1286#[repr(C)]
1287pub struct GESTestClipClass {
1288    pub parent_class: GESSourceClipClass,
1289    pub _ges_reserved: [gpointer; 4],
1290}
1291
1292impl ::std::fmt::Debug for GESTestClipClass {
1293    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1294        f.debug_struct(&format!("GESTestClipClass @ {self:p}"))
1295            .finish()
1296    }
1297}
1298
1299#[repr(C)]
1300#[allow(dead_code)]
1301pub struct _GESTestClipPrivate {
1302    _data: [u8; 0],
1303    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1304}
1305
1306pub type GESTestClipPrivate = _GESTestClipPrivate;
1307
1308#[derive(Copy, Clone)]
1309#[repr(C)]
1310pub struct GESTextOverlayClass {
1311    pub parent_class: GESOperationClass,
1312    pub _ges_reserved: [gpointer; 4],
1313}
1314
1315impl ::std::fmt::Debug for GESTextOverlayClass {
1316    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1317        f.debug_struct(&format!("GESTextOverlayClass @ {self:p}"))
1318            .field("parent_class", &self.parent_class)
1319            .finish()
1320    }
1321}
1322
1323#[derive(Copy, Clone)]
1324#[repr(C)]
1325pub struct GESTextOverlayClipClass {
1326    pub parent_class: GESOverlayClipClass,
1327    pub _ges_reserved: [gpointer; 4],
1328}
1329
1330impl ::std::fmt::Debug for GESTextOverlayClipClass {
1331    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1332        f.debug_struct(&format!("GESTextOverlayClipClass @ {self:p}"))
1333            .finish()
1334    }
1335}
1336
1337#[repr(C)]
1338#[allow(dead_code)]
1339pub struct _GESTextOverlayClipPrivate {
1340    _data: [u8; 0],
1341    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1342}
1343
1344pub type GESTextOverlayClipPrivate = _GESTextOverlayClipPrivate;
1345
1346#[repr(C)]
1347#[allow(dead_code)]
1348pub struct _GESTextOverlayPrivate {
1349    _data: [u8; 0],
1350    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1351}
1352
1353pub type GESTextOverlayPrivate = _GESTextOverlayPrivate;
1354
1355#[derive(Copy, Clone)]
1356#[repr(C)]
1357pub struct GESTimelineClass {
1358    pub parent_class: gst::GstBinClass,
1359    pub track_added: Option<unsafe extern "C" fn(*mut GESTimeline, *mut GESTrack)>,
1360    pub track_removed: Option<unsafe extern "C" fn(*mut GESTimeline, *mut GESTrack)>,
1361    pub layer_added: Option<unsafe extern "C" fn(*mut GESTimeline, *mut GESLayer)>,
1362    pub layer_removed: Option<unsafe extern "C" fn(*mut GESTimeline, *mut GESLayer)>,
1363    pub group_added: Option<unsafe extern "C" fn(*mut GESTimeline, *mut GESGroup)>,
1364    pub group_removed:
1365        Option<unsafe extern "C" fn(*mut GESTimeline, *mut GESGroup, *mut glib::GPtrArray)>,
1366    pub _ges_reserved: [gpointer; 4],
1367}
1368
1369impl ::std::fmt::Debug for GESTimelineClass {
1370    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1371        f.debug_struct(&format!("GESTimelineClass @ {self:p}"))
1372            .field("parent_class", &self.parent_class)
1373            .field("track_added", &self.track_added)
1374            .field("track_removed", &self.track_removed)
1375            .field("layer_added", &self.layer_added)
1376            .field("layer_removed", &self.layer_removed)
1377            .field("group_added", &self.group_added)
1378            .field("group_removed", &self.group_removed)
1379            .finish()
1380    }
1381}
1382
1383#[derive(Copy, Clone)]
1384#[repr(C)]
1385pub struct GESTimelineElementClass {
1386    pub parent_class: gobject::GInitiallyUnownedClass,
1387    pub set_parent:
1388        Option<unsafe extern "C" fn(*mut GESTimelineElement, *mut GESTimelineElement) -> gboolean>,
1389    pub set_start:
1390        Option<unsafe extern "C" fn(*mut GESTimelineElement, gst::GstClockTime) -> gboolean>,
1391    pub set_inpoint:
1392        Option<unsafe extern "C" fn(*mut GESTimelineElement, gst::GstClockTime) -> gboolean>,
1393    pub set_duration:
1394        Option<unsafe extern "C" fn(*mut GESTimelineElement, gst::GstClockTime) -> gboolean>,
1395    pub set_max_duration:
1396        Option<unsafe extern "C" fn(*mut GESTimelineElement, gst::GstClockTime) -> gboolean>,
1397    pub set_priority: Option<unsafe extern "C" fn(*mut GESTimelineElement, u32) -> gboolean>,
1398    pub ripple: Option<unsafe extern "C" fn(*mut GESTimelineElement, u64) -> gboolean>,
1399    pub ripple_end: Option<unsafe extern "C" fn(*mut GESTimelineElement, u64) -> gboolean>,
1400    pub roll_start: Option<unsafe extern "C" fn(*mut GESTimelineElement, u64) -> gboolean>,
1401    pub roll_end: Option<unsafe extern "C" fn(*mut GESTimelineElement, u64) -> gboolean>,
1402    pub trim: Option<unsafe extern "C" fn(*mut GESTimelineElement, u64) -> gboolean>,
1403    pub deep_copy: Option<unsafe extern "C" fn(*mut GESTimelineElement, *mut GESTimelineElement)>,
1404    pub paste: Option<
1405        unsafe extern "C" fn(
1406            *mut GESTimelineElement,
1407            *mut GESTimelineElement,
1408            gst::GstClockTime,
1409        ) -> *mut GESTimelineElement,
1410    >,
1411    pub list_children_properties: Option<
1412        unsafe extern "C" fn(*mut GESTimelineElement, *mut c_uint) -> *mut *mut gobject::GParamSpec,
1413    >,
1414    pub lookup_child: Option<
1415        unsafe extern "C" fn(
1416            *mut GESTimelineElement,
1417            *const c_char,
1418            *mut *mut gobject::GObject,
1419            *mut *mut gobject::GParamSpec,
1420        ) -> gboolean,
1421    >,
1422    pub get_track_types: Option<unsafe extern "C" fn(*mut GESTimelineElement) -> GESTrackType>,
1423    pub set_child_property: Option<
1424        unsafe extern "C" fn(
1425            *mut GESTimelineElement,
1426            *mut gobject::GObject,
1427            *mut gobject::GParamSpec,
1428            *mut gobject::GValue,
1429        ),
1430    >,
1431    pub get_layer_priority: Option<unsafe extern "C" fn(*mut GESTimelineElement) -> u32>,
1432    pub get_natural_framerate:
1433        Option<unsafe extern "C" fn(*mut GESTimelineElement, *mut c_int, *mut c_int) -> gboolean>,
1434    pub set_child_property_full: Option<
1435        unsafe extern "C" fn(
1436            *mut GESTimelineElement,
1437            *mut gobject::GObject,
1438            *mut gobject::GParamSpec,
1439            *const gobject::GValue,
1440            *mut *mut glib::GError,
1441        ) -> gboolean,
1442    >,
1443    pub _ges_reserved: [gpointer; 14],
1444}
1445
1446impl ::std::fmt::Debug for GESTimelineElementClass {
1447    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1448        f.debug_struct(&format!("GESTimelineElementClass @ {self:p}"))
1449            .field("parent_class", &self.parent_class)
1450            .field("set_parent", &self.set_parent)
1451            .field("set_start", &self.set_start)
1452            .field("set_inpoint", &self.set_inpoint)
1453            .field("set_duration", &self.set_duration)
1454            .field("set_max_duration", &self.set_max_duration)
1455            .field("set_priority", &self.set_priority)
1456            .field("ripple", &self.ripple)
1457            .field("ripple_end", &self.ripple_end)
1458            .field("roll_start", &self.roll_start)
1459            .field("roll_end", &self.roll_end)
1460            .field("trim", &self.trim)
1461            .field("deep_copy", &self.deep_copy)
1462            .field("paste", &self.paste)
1463            .field("list_children_properties", &self.list_children_properties)
1464            .field("lookup_child", &self.lookup_child)
1465            .field("get_track_types", &self.get_track_types)
1466            .field("set_child_property", &self.set_child_property)
1467            .field("get_layer_priority", &self.get_layer_priority)
1468            .field("get_natural_framerate", &self.get_natural_framerate)
1469            .field("set_child_property_full", &self.set_child_property_full)
1470            .field("_ges_reserved", &self._ges_reserved)
1471            .finish()
1472    }
1473}
1474
1475#[repr(C)]
1476#[allow(dead_code)]
1477pub struct _GESTimelineElementPrivate {
1478    _data: [u8; 0],
1479    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1480}
1481
1482pub type GESTimelineElementPrivate = _GESTimelineElementPrivate;
1483
1484#[repr(C)]
1485#[allow(dead_code)]
1486pub struct _GESTimelinePrivate {
1487    _data: [u8; 0],
1488    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1489}
1490
1491pub type GESTimelinePrivate = _GESTimelinePrivate;
1492
1493#[derive(Copy, Clone)]
1494#[repr(C)]
1495pub struct GESTitleClipClass {
1496    pub parent_class: GESSourceClipClass,
1497    pub _ges_reserved: [gpointer; 4],
1498}
1499
1500impl ::std::fmt::Debug for GESTitleClipClass {
1501    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1502        f.debug_struct(&format!("GESTitleClipClass @ {self:p}"))
1503            .finish()
1504    }
1505}
1506
1507#[repr(C)]
1508#[allow(dead_code)]
1509pub struct _GESTitleClipPrivate {
1510    _data: [u8; 0],
1511    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1512}
1513
1514pub type GESTitleClipPrivate = _GESTitleClipPrivate;
1515
1516#[derive(Copy, Clone)]
1517#[repr(C)]
1518pub struct GESTitleSourceClass {
1519    pub parent_class: GESVideoSourceClass,
1520    pub _ges_reserved: [gpointer; 3],
1521}
1522
1523impl ::std::fmt::Debug for GESTitleSourceClass {
1524    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1525        f.debug_struct(&format!("GESTitleSourceClass @ {self:p}"))
1526            .field("parent_class", &self.parent_class)
1527            .finish()
1528    }
1529}
1530
1531#[repr(C)]
1532#[allow(dead_code)]
1533pub struct _GESTitleSourcePrivate {
1534    _data: [u8; 0],
1535    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1536}
1537
1538pub type GESTitleSourcePrivate = _GESTitleSourcePrivate;
1539
1540#[derive(Copy, Clone)]
1541#[repr(C)]
1542pub struct GESTrackClass {
1543    pub parent_class: gst::GstBinClass,
1544    pub get_mixing_element: Option<unsafe extern "C" fn(*mut GESTrack) -> *mut gst::GstElement>,
1545    pub _ges_reserved: [gpointer; 4],
1546}
1547
1548impl ::std::fmt::Debug for GESTrackClass {
1549    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1550        f.debug_struct(&format!("GESTrackClass @ {self:p}"))
1551            .field("get_mixing_element", &self.get_mixing_element)
1552            .finish()
1553    }
1554}
1555
1556#[derive(Copy, Clone)]
1557#[repr(C)]
1558pub struct GESTrackElementAssetClass {
1559    pub parent_class: GESAssetClass,
1560    pub get_natural_framerate:
1561        Option<unsafe extern "C" fn(*mut GESTrackElementAsset, *mut c_int, *mut c_int) -> gboolean>,
1562    pub _ges_reserved: [gpointer; 3],
1563}
1564
1565impl ::std::fmt::Debug for GESTrackElementAssetClass {
1566    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1567        f.debug_struct(&format!("GESTrackElementAssetClass @ {self:p}"))
1568            .field("parent_class", &self.parent_class)
1569            .field("get_natural_framerate", &self.get_natural_framerate)
1570            .field("_ges_reserved", &self._ges_reserved)
1571            .finish()
1572    }
1573}
1574
1575#[repr(C)]
1576#[allow(dead_code)]
1577pub struct _GESTrackElementAssetPrivate {
1578    _data: [u8; 0],
1579    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1580}
1581
1582pub type GESTrackElementAssetPrivate = _GESTrackElementAssetPrivate;
1583
1584#[derive(Copy, Clone)]
1585#[repr(C)]
1586pub struct GESTrackElementClass {
1587    pub parent_class: GESTimelineElementClass,
1588    pub nleobject_factorytype: *const c_char,
1589    pub create_gnl_object:
1590        Option<unsafe extern "C" fn(*mut GESTrackElement) -> *mut gst::GstElement>,
1591    pub create_element: Option<unsafe extern "C" fn(*mut GESTrackElement) -> *mut gst::GstElement>,
1592    pub active_changed: Option<unsafe extern "C" fn(*mut GESTrackElement, gboolean)>,
1593    pub changed: Option<unsafe extern "C" fn(*mut GESTrackElement)>,
1594    pub list_children_properties: Option<
1595        unsafe extern "C" fn(*mut GESTrackElement, *mut c_uint) -> *mut *mut gobject::GParamSpec,
1596    >,
1597    pub lookup_child: Option<
1598        unsafe extern "C" fn(
1599            *mut GESTrackElement,
1600            *const c_char,
1601            *mut *mut gst::GstElement,
1602            *mut *mut gobject::GParamSpec,
1603        ) -> gboolean,
1604    >,
1605    pub ABI: GESTrackElementClass_ABI,
1606}
1607
1608impl ::std::fmt::Debug for GESTrackElementClass {
1609    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1610        f.debug_struct(&format!("GESTrackElementClass @ {self:p}"))
1611            .field("nleobject_factorytype", &self.nleobject_factorytype)
1612            .field("create_gnl_object", &self.create_gnl_object)
1613            .field("create_element", &self.create_element)
1614            .field("active_changed", &self.active_changed)
1615            .field("changed", &self.changed)
1616            .field("list_children_properties", &self.list_children_properties)
1617            .field("lookup_child", &self.lookup_child)
1618            .field("ABI", &self.ABI)
1619            .finish()
1620    }
1621}
1622
1623#[derive(Copy, Clone)]
1624#[repr(C)]
1625pub struct GESTrackElementClass_ABI_abi {
1626    pub default_has_internal_source: gboolean,
1627    pub default_track_type: GESTrackType,
1628}
1629
1630impl ::std::fmt::Debug for GESTrackElementClass_ABI_abi {
1631    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1632        f.debug_struct(&format!("GESTrackElementClass_ABI_abi @ {self:p}"))
1633            .field(
1634                "default_has_internal_source",
1635                &self.default_has_internal_source,
1636            )
1637            .field("default_track_type", &self.default_track_type)
1638            .finish()
1639    }
1640}
1641
1642#[repr(C)]
1643#[allow(dead_code)]
1644pub struct _GESTrackElementPrivate {
1645    _data: [u8; 0],
1646    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1647}
1648
1649pub type GESTrackElementPrivate = _GESTrackElementPrivate;
1650
1651#[repr(C)]
1652#[allow(dead_code)]
1653pub struct _GESTrackPrivate {
1654    _data: [u8; 0],
1655    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1656}
1657
1658pub type GESTrackPrivate = _GESTrackPrivate;
1659
1660#[derive(Copy, Clone)]
1661#[repr(C)]
1662pub struct GESTransitionClass {
1663    pub parent_class: GESOperationClass,
1664    pub _ges_reserved: [gpointer; 4],
1665}
1666
1667impl ::std::fmt::Debug for GESTransitionClass {
1668    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1669        f.debug_struct(&format!("GESTransitionClass @ {self:p}"))
1670            .finish()
1671    }
1672}
1673
1674#[derive(Copy, Clone)]
1675#[repr(C)]
1676pub struct GESTransitionClipClass {
1677    pub parent_class: GESBaseTransitionClipClass,
1678    pub _ges_reserved: [gpointer; 4],
1679}
1680
1681impl ::std::fmt::Debug for GESTransitionClipClass {
1682    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1683        f.debug_struct(&format!("GESTransitionClipClass @ {self:p}"))
1684            .finish()
1685    }
1686}
1687
1688#[repr(C)]
1689#[allow(dead_code)]
1690pub struct _GESTransitionClipPrivate {
1691    _data: [u8; 0],
1692    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1693}
1694
1695pub type GESTransitionClipPrivate = _GESTransitionClipPrivate;
1696
1697#[repr(C)]
1698#[allow(dead_code)]
1699pub struct _GESTransitionPrivate {
1700    _data: [u8; 0],
1701    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1702}
1703
1704pub type GESTransitionPrivate = _GESTransitionPrivate;
1705
1706#[derive(Copy, Clone)]
1707#[repr(C)]
1708pub struct GESUriClipAssetClass {
1709    pub parent_class: GESSourceClipAssetClass,
1710    pub discoverer: *mut gst_pbutils::GstDiscoverer,
1711    pub sync_discoverer: *mut gst_pbutils::GstDiscoverer,
1712    pub discovered: Option<
1713        unsafe extern "C" fn(
1714            *mut gst_pbutils::GstDiscoverer,
1715            *mut gst_pbutils::GstDiscovererInfo,
1716            *mut glib::GError,
1717            gpointer,
1718        ),
1719    >,
1720    pub _ges_reserved: [gpointer; 3],
1721}
1722
1723impl ::std::fmt::Debug for GESUriClipAssetClass {
1724    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1725        f.debug_struct(&format!("GESUriClipAssetClass @ {self:p}"))
1726            .field("parent_class", &self.parent_class)
1727            .field("discovered", &self.discovered)
1728            .finish()
1729    }
1730}
1731
1732#[repr(C)]
1733#[allow(dead_code)]
1734pub struct _GESUriClipAssetPrivate {
1735    _data: [u8; 0],
1736    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1737}
1738
1739pub type GESUriClipAssetPrivate = _GESUriClipAssetPrivate;
1740
1741#[derive(Copy, Clone)]
1742#[repr(C)]
1743pub struct GESUriClipClass {
1744    pub parent_class: GESSourceClipClass,
1745    pub _ges_reserved: [gpointer; 4],
1746}
1747
1748impl ::std::fmt::Debug for GESUriClipClass {
1749    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1750        f.debug_struct(&format!("GESUriClipClass @ {self:p}"))
1751            .finish()
1752    }
1753}
1754
1755#[repr(C)]
1756#[allow(dead_code)]
1757pub struct _GESUriClipPrivate {
1758    _data: [u8; 0],
1759    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1760}
1761
1762pub type GESUriClipPrivate = _GESUriClipPrivate;
1763
1764#[repr(C)]
1765#[allow(dead_code)]
1766pub struct _GESUriSource {
1767    _data: [u8; 0],
1768    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1769}
1770
1771pub type GESUriSource = _GESUriSource;
1772
1773#[derive(Copy, Clone)]
1774#[repr(C)]
1775pub struct GESUriSourceAssetClass {
1776    pub parent_class: GESTrackElementAssetClass,
1777    pub _ges_reserved: [gpointer; 4],
1778}
1779
1780impl ::std::fmt::Debug for GESUriSourceAssetClass {
1781    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1782        f.debug_struct(&format!("GESUriSourceAssetClass @ {self:p}"))
1783            .field("parent_class", &self.parent_class)
1784            .field("_ges_reserved", &self._ges_reserved)
1785            .finish()
1786    }
1787}
1788
1789#[repr(C)]
1790#[allow(dead_code)]
1791pub struct _GESUriSourceAssetPrivate {
1792    _data: [u8; 0],
1793    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1794}
1795
1796pub type GESUriSourceAssetPrivate = _GESUriSourceAssetPrivate;
1797
1798#[derive(Copy, Clone)]
1799#[repr(C)]
1800pub struct GESVideoSourceClass {
1801    pub parent_class: GESSourceClass,
1802    pub create_source: Option<unsafe extern "C" fn(*mut GESTrackElement) -> *mut gst::GstElement>,
1803    pub ABI: GESVideoSourceClass_ABI,
1804}
1805
1806impl ::std::fmt::Debug for GESVideoSourceClass {
1807    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1808        f.debug_struct(&format!("GESVideoSourceClass @ {self:p}"))
1809            .field("create_source", &self.create_source)
1810            .field("ABI", &self.ABI)
1811            .finish()
1812    }
1813}
1814
1815#[derive(Copy, Clone)]
1816#[repr(C)]
1817pub struct GESVideoSourceClass_ABI_abi {
1818    pub disable_scale_in_compositor: gboolean,
1819    pub needs_converters: Option<unsafe extern "C" fn(*mut GESVideoSource) -> gboolean>,
1820    pub get_natural_size:
1821        Option<unsafe extern "C" fn(*mut GESVideoSource, *mut c_int, *mut c_int) -> gboolean>,
1822    pub create_filters: Option<
1823        unsafe extern "C" fn(*mut GESVideoSource, *mut glib::GPtrArray, gboolean) -> gboolean,
1824    >,
1825}
1826
1827impl ::std::fmt::Debug for GESVideoSourceClass_ABI_abi {
1828    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1829        f.debug_struct(&format!("GESVideoSourceClass_ABI_abi @ {self:p}"))
1830            .field(
1831                "disable_scale_in_compositor",
1832                &self.disable_scale_in_compositor,
1833            )
1834            .field("needs_converters", &self.needs_converters)
1835            .field("get_natural_size", &self.get_natural_size)
1836            .field("create_filters", &self.create_filters)
1837            .finish()
1838    }
1839}
1840
1841#[repr(C)]
1842#[allow(dead_code)]
1843pub struct _GESVideoSourcePrivate {
1844    _data: [u8; 0],
1845    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1846}
1847
1848pub type GESVideoSourcePrivate = _GESVideoSourcePrivate;
1849
1850#[derive(Copy, Clone)]
1851#[repr(C)]
1852pub struct GESVideoTestSourceClass {
1853    pub parent_class: GESVideoSourceClass,
1854    pub _ges_reserved: [gpointer; 4],
1855}
1856
1857impl ::std::fmt::Debug for GESVideoTestSourceClass {
1858    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1859        f.debug_struct(&format!("GESVideoTestSourceClass @ {self:p}"))
1860            .field("parent_class", &self.parent_class)
1861            .field("_ges_reserved", &self._ges_reserved)
1862            .finish()
1863    }
1864}
1865
1866#[repr(C)]
1867#[allow(dead_code)]
1868pub struct _GESVideoTestSourcePrivate {
1869    _data: [u8; 0],
1870    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1871}
1872
1873pub type GESVideoTestSourcePrivate = _GESVideoTestSourcePrivate;
1874
1875#[derive(Copy, Clone)]
1876#[repr(C)]
1877pub struct GESVideoTrackClass {
1878    pub parent_class: GESTrackClass,
1879    pub _ges_reserved: [gpointer; 4],
1880}
1881
1882impl ::std::fmt::Debug for GESVideoTrackClass {
1883    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1884        f.debug_struct(&format!("GESVideoTrackClass @ {self:p}"))
1885            .field("parent_class", &self.parent_class)
1886            .field("_ges_reserved", &self._ges_reserved)
1887            .finish()
1888    }
1889}
1890
1891#[repr(C)]
1892#[allow(dead_code)]
1893pub struct _GESVideoTrackPrivate {
1894    _data: [u8; 0],
1895    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1896}
1897
1898pub type GESVideoTrackPrivate = _GESVideoTrackPrivate;
1899
1900#[derive(Copy, Clone)]
1901#[repr(C)]
1902pub struct GESVideoTransitionClass {
1903    pub parent_class: GESTransitionClass,
1904    pub _ges_reserved: [gpointer; 4],
1905}
1906
1907impl ::std::fmt::Debug for GESVideoTransitionClass {
1908    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1909        f.debug_struct(&format!("GESVideoTransitionClass @ {self:p}"))
1910            .field("parent_class", &self.parent_class)
1911            .finish()
1912    }
1913}
1914
1915#[repr(C)]
1916#[allow(dead_code)]
1917pub struct _GESVideoTransitionPrivate {
1918    _data: [u8; 0],
1919    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1920}
1921
1922pub type GESVideoTransitionPrivate = _GESVideoTransitionPrivate;
1923
1924#[derive(Copy, Clone)]
1925#[repr(C)]
1926pub struct GESVideoUriSourceClass {
1927    pub parent_class: GESVideoSourceClass,
1928    pub _ges_reserved: [gpointer; 4],
1929}
1930
1931impl ::std::fmt::Debug for GESVideoUriSourceClass {
1932    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1933        f.debug_struct(&format!("GESVideoUriSourceClass @ {self:p}"))
1934            .finish()
1935    }
1936}
1937
1938#[repr(C)]
1939#[allow(dead_code)]
1940pub struct _GESVideoUriSourcePrivate {
1941    _data: [u8; 0],
1942    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1943}
1944
1945pub type GESVideoUriSourcePrivate = _GESVideoUriSourcePrivate;
1946
1947#[derive(Copy, Clone)]
1948#[repr(C)]
1949pub struct GESXmlFormatterClass {
1950    pub parent: GESBaseXmlFormatterClass,
1951    pub _ges_reserved: [gpointer; 4],
1952}
1953
1954impl ::std::fmt::Debug for GESXmlFormatterClass {
1955    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1956        f.debug_struct(&format!("GESXmlFormatterClass @ {self:p}"))
1957            .field("parent", &self.parent)
1958            .field("_ges_reserved", &self._ges_reserved)
1959            .finish()
1960    }
1961}
1962
1963#[repr(C)]
1964#[allow(dead_code)]
1965pub struct _GESXmlFormatterPrivate {
1966    _data: [u8; 0],
1967    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1968}
1969
1970pub type GESXmlFormatterPrivate = _GESXmlFormatterPrivate;
1971
1972// Classes
1973#[derive(Copy, Clone)]
1974#[repr(C)]
1975pub struct GESAsset {
1976    pub parent: gobject::GObject,
1977    pub priv_: *mut GESAssetPrivate,
1978    pub _ges_reserved: [gpointer; 4],
1979}
1980
1981impl ::std::fmt::Debug for GESAsset {
1982    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1983        f.debug_struct(&format!("GESAsset @ {self:p}"))
1984            .field("parent", &self.parent)
1985            .finish()
1986    }
1987}
1988
1989#[derive(Copy, Clone)]
1990#[repr(C)]
1991pub struct GESAudioSource {
1992    pub parent: GESSource,
1993    pub priv_: *mut GESAudioSourcePrivate,
1994    pub _ges_reserved: [gpointer; 4],
1995}
1996
1997impl ::std::fmt::Debug for GESAudioSource {
1998    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1999        f.debug_struct(&format!("GESAudioSource @ {self:p}"))
2000            .finish()
2001    }
2002}
2003
2004#[derive(Copy, Clone)]
2005#[repr(C)]
2006pub struct GESAudioTestSource {
2007    pub parent: GESAudioSource,
2008    pub priv_: *mut GESAudioTestSourcePrivate,
2009    pub _ges_reserved: [gpointer; 4],
2010}
2011
2012impl ::std::fmt::Debug for GESAudioTestSource {
2013    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2014        f.debug_struct(&format!("GESAudioTestSource @ {self:p}"))
2015            .field("parent", &self.parent)
2016            .finish()
2017    }
2018}
2019
2020#[derive(Copy, Clone)]
2021#[repr(C)]
2022pub struct GESAudioTrack {
2023    pub parent_instance: GESTrack,
2024    pub priv_: *mut GESAudioTrackPrivate,
2025    pub _ges_reserved: [gpointer; 4],
2026}
2027
2028impl ::std::fmt::Debug for GESAudioTrack {
2029    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2030        f.debug_struct(&format!("GESAudioTrack @ {self:p}"))
2031            .field("parent_instance", &self.parent_instance)
2032            .finish()
2033    }
2034}
2035
2036#[derive(Copy, Clone)]
2037#[repr(C)]
2038pub struct GESAudioTransition {
2039    pub parent: GESTransition,
2040    pub priv_: *mut GESAudioTransitionPrivate,
2041    pub _ges_reserved: [gpointer; 4],
2042}
2043
2044impl ::std::fmt::Debug for GESAudioTransition {
2045    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2046        f.debug_struct(&format!("GESAudioTransition @ {self:p}"))
2047            .field("parent", &self.parent)
2048            .finish()
2049    }
2050}
2051
2052#[derive(Copy, Clone)]
2053#[repr(C)]
2054pub struct GESAudioUriSource {
2055    pub parent: GESAudioSource,
2056    pub uri: *mut c_char,
2057    pub priv_: *mut GESUriSource,
2058    pub _ges_reserved: [gpointer; 4],
2059}
2060
2061impl ::std::fmt::Debug for GESAudioUriSource {
2062    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2063        f.debug_struct(&format!("GESAudioUriSource @ {self:p}"))
2064            .finish()
2065    }
2066}
2067
2068#[derive(Copy, Clone)]
2069#[repr(C)]
2070pub struct GESBaseEffect {
2071    pub parent: GESOperation,
2072    pub priv_: *mut GESBaseEffectPrivate,
2073    pub _ges_reserved: [gpointer; 4],
2074}
2075
2076impl ::std::fmt::Debug for GESBaseEffect {
2077    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2078        f.debug_struct(&format!("GESBaseEffect @ {self:p}"))
2079            .finish()
2080    }
2081}
2082
2083#[derive(Copy, Clone)]
2084#[repr(C)]
2085pub struct GESBaseEffectClip {
2086    pub parent: GESOperationClip,
2087    pub priv_: *mut GESBaseEffectClipPrivate,
2088    pub _ges_reserved: [gpointer; 4],
2089}
2090
2091impl ::std::fmt::Debug for GESBaseEffectClip {
2092    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2093        f.debug_struct(&format!("GESBaseEffectClip @ {self:p}"))
2094            .finish()
2095    }
2096}
2097
2098#[derive(Copy, Clone)]
2099#[repr(C)]
2100pub struct GESBaseTransitionClip {
2101    pub parent: GESOperationClip,
2102    pub priv_: *mut GESBaseTransitionClipPrivate,
2103    pub _ges_reserved: [gpointer; 4],
2104}
2105
2106impl ::std::fmt::Debug for GESBaseTransitionClip {
2107    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2108        f.debug_struct(&format!("GESBaseTransitionClip @ {self:p}"))
2109            .finish()
2110    }
2111}
2112
2113#[derive(Copy, Clone)]
2114#[repr(C)]
2115pub struct GESBaseXmlFormatter {
2116    pub parent: GESFormatter,
2117    pub priv_: *mut GESBaseXmlFormatterPrivate,
2118    pub xmlcontent: *mut c_char,
2119    pub _ges_reserved: [gpointer; 3],
2120}
2121
2122impl ::std::fmt::Debug for GESBaseXmlFormatter {
2123    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2124        f.debug_struct(&format!("GESBaseXmlFormatter @ {self:p}"))
2125            .field("parent", &self.parent)
2126            .finish()
2127    }
2128}
2129
2130#[derive(Copy, Clone)]
2131#[repr(C)]
2132pub struct GESClip {
2133    pub parent: GESContainer,
2134    pub priv_: *mut GESClipPrivate,
2135    pub _ges_reserved: [gpointer; 20],
2136}
2137
2138impl ::std::fmt::Debug for GESClip {
2139    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2140        f.debug_struct(&format!("GESClip @ {self:p}"))
2141            .field("parent", &self.parent)
2142            .finish()
2143    }
2144}
2145
2146#[derive(Copy, Clone)]
2147#[repr(C)]
2148pub struct GESClipAsset {
2149    pub parent: GESAsset,
2150    pub priv_: *mut GESClipAssetPrivate,
2151    pub _ges_reserved: [gpointer; 4],
2152}
2153
2154impl ::std::fmt::Debug for GESClipAsset {
2155    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2156        f.debug_struct(&format!("GESClipAsset @ {self:p}"))
2157            .field("parent", &self.parent)
2158            .finish()
2159    }
2160}
2161
2162#[derive(Copy, Clone)]
2163#[repr(C)]
2164pub struct GESCommandLineFormatter {
2165    pub parent_instance: GESFormatter,
2166    pub priv_: *mut GESCommandLineFormatterPrivate,
2167}
2168
2169impl ::std::fmt::Debug for GESCommandLineFormatter {
2170    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2171        f.debug_struct(&format!("GESCommandLineFormatter @ {self:p}"))
2172            .field("parent_instance", &self.parent_instance)
2173            .field("priv_", &self.priv_)
2174            .finish()
2175    }
2176}
2177
2178#[derive(Copy, Clone)]
2179#[repr(C)]
2180pub struct GESContainer {
2181    pub parent: GESTimelineElement,
2182    pub children: *mut glib::GList,
2183    pub height: u32,
2184    pub children_control_mode: GESChildrenControlMode,
2185    pub initiated_move: *mut GESTimelineElement,
2186    pub priv_: *mut GESContainerPrivate,
2187    pub _ges_reserved: [gpointer; 20],
2188}
2189
2190impl ::std::fmt::Debug for GESContainer {
2191    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2192        f.debug_struct(&format!("GESContainer @ {self:p}"))
2193            .field("parent", &self.parent)
2194            .field("children", &self.children)
2195            .field("height", &self.height)
2196            .field("children_control_mode", &self.children_control_mode)
2197            .field("initiated_move", &self.initiated_move)
2198            .finish()
2199    }
2200}
2201
2202#[repr(C)]
2203#[allow(dead_code)]
2204pub struct GESDiscovererManager {
2205    _data: [u8; 0],
2206    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2207}
2208
2209impl ::std::fmt::Debug for GESDiscovererManager {
2210    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2211        f.debug_struct(&format!("GESDiscovererManager @ {self:p}"))
2212            .finish()
2213    }
2214}
2215
2216#[derive(Copy, Clone)]
2217#[repr(C)]
2218pub struct GESEffect {
2219    pub parent: GESBaseEffect,
2220    pub priv_: *mut GESEffectPrivate,
2221    pub _ges_reserved: [gpointer; 4],
2222}
2223
2224impl ::std::fmt::Debug for GESEffect {
2225    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2226        f.debug_struct(&format!("GESEffect @ {self:p}")).finish()
2227    }
2228}
2229
2230#[derive(Copy, Clone)]
2231#[repr(C)]
2232pub struct GESEffectAsset {
2233    pub parent_instance: GESTrackElementAsset,
2234    pub priv_: *mut GESEffectAssetPrivate,
2235    pub _ges_reserved: [gpointer; 4],
2236}
2237
2238impl ::std::fmt::Debug for GESEffectAsset {
2239    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2240        f.debug_struct(&format!("GESEffectAsset @ {self:p}"))
2241            .field("parent_instance", &self.parent_instance)
2242            .field("priv_", &self.priv_)
2243            .field("_ges_reserved", &self._ges_reserved)
2244            .finish()
2245    }
2246}
2247
2248#[derive(Copy, Clone)]
2249#[repr(C)]
2250pub struct GESEffectClip {
2251    pub parent: GESBaseEffectClip,
2252    pub priv_: *mut GESEffectClipPrivate,
2253    pub _ges_reserved: [gpointer; 4],
2254}
2255
2256impl ::std::fmt::Debug for GESEffectClip {
2257    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2258        f.debug_struct(&format!("GESEffectClip @ {self:p}"))
2259            .finish()
2260    }
2261}
2262
2263#[derive(Copy, Clone)]
2264#[repr(C)]
2265pub struct GESFormatter {
2266    pub parent: gobject::GInitiallyUnowned,
2267    pub priv_: *mut GESFormatterPrivate,
2268    pub project: *mut GESProject,
2269    pub timeline: *mut GESTimeline,
2270    pub _ges_reserved: [gpointer; 4],
2271}
2272
2273impl ::std::fmt::Debug for GESFormatter {
2274    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2275        f.debug_struct(&format!("GESFormatter @ {self:p}"))
2276            .field("parent", &self.parent)
2277            .finish()
2278    }
2279}
2280
2281#[derive(Copy, Clone)]
2282#[repr(C)]
2283pub struct GESGroup {
2284    pub parent: GESContainer,
2285    pub priv_: *mut GESGroupPrivate,
2286    pub _ges_reserved: [gpointer; 4],
2287}
2288
2289impl ::std::fmt::Debug for GESGroup {
2290    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2291        f.debug_struct(&format!("GESGroup @ {self:p}"))
2292            .field("parent", &self.parent)
2293            .finish()
2294    }
2295}
2296
2297#[derive(Copy, Clone)]
2298#[repr(C)]
2299pub struct GESImageSource {
2300    pub parent: GESVideoSource,
2301    pub uri: *mut c_char,
2302    pub priv_: *mut GESImageSourcePrivate,
2303    pub _ges_reserved: [gpointer; 4],
2304}
2305
2306impl ::std::fmt::Debug for GESImageSource {
2307    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2308        f.debug_struct(&format!("GESImageSource @ {self:p}"))
2309            .finish()
2310    }
2311}
2312
2313#[derive(Copy, Clone)]
2314#[repr(C)]
2315pub struct GESLayer {
2316    pub parent: gobject::GInitiallyUnowned,
2317    pub timeline: *mut GESTimeline,
2318    pub min_nle_priority: u32,
2319    pub max_nle_priority: u32,
2320    pub priv_: *mut GESLayerPrivate,
2321    pub _ges_reserved: [gpointer; 4],
2322}
2323
2324impl ::std::fmt::Debug for GESLayer {
2325    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2326        f.debug_struct(&format!("GESLayer @ {self:p}"))
2327            .field("parent", &self.parent)
2328            .field("timeline", &self.timeline)
2329            .field("min_nle_priority", &self.min_nle_priority)
2330            .field("max_nle_priority", &self.max_nle_priority)
2331            .field("priv_", &self.priv_)
2332            .field("_ges_reserved", &self._ges_reserved)
2333            .finish()
2334    }
2335}
2336
2337#[repr(C)]
2338#[allow(dead_code)]
2339pub struct GESMarker {
2340    _data: [u8; 0],
2341    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2342}
2343
2344impl ::std::fmt::Debug for GESMarker {
2345    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2346        f.debug_struct(&format!("GESMarker @ {self:p}")).finish()
2347    }
2348}
2349
2350#[repr(C)]
2351#[allow(dead_code)]
2352pub struct GESMarkerList {
2353    _data: [u8; 0],
2354    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2355}
2356
2357impl ::std::fmt::Debug for GESMarkerList {
2358    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2359        f.debug_struct(&format!("GESMarkerList @ {self:p}"))
2360            .finish()
2361    }
2362}
2363
2364#[derive(Copy, Clone)]
2365#[repr(C)]
2366pub struct GESMultiFileSource {
2367    pub parent: GESVideoSource,
2368    pub uri: *mut c_char,
2369    pub priv_: *mut GESMultiFileSourcePrivate,
2370    pub _ges_reserved: [gpointer; 4],
2371}
2372
2373impl ::std::fmt::Debug for GESMultiFileSource {
2374    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2375        f.debug_struct(&format!("GESMultiFileSource @ {self:p}"))
2376            .finish()
2377    }
2378}
2379
2380#[derive(Copy, Clone)]
2381#[repr(C)]
2382pub struct GESOperation {
2383    pub parent: GESTrackElement,
2384    pub priv_: *mut GESOperationPrivate,
2385    pub _ges_reserved: [gpointer; 4],
2386}
2387
2388impl ::std::fmt::Debug for GESOperation {
2389    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2390        f.debug_struct(&format!("GESOperation @ {self:p}")).finish()
2391    }
2392}
2393
2394#[derive(Copy, Clone)]
2395#[repr(C)]
2396pub struct GESOperationClip {
2397    pub parent: GESClip,
2398    pub priv_: *mut GESOperationClipPrivate,
2399    pub _ges_reserved: [gpointer; 4],
2400}
2401
2402impl ::std::fmt::Debug for GESOperationClip {
2403    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2404        f.debug_struct(&format!("GESOperationClip @ {self:p}"))
2405            .finish()
2406    }
2407}
2408
2409#[derive(Copy, Clone)]
2410#[repr(C)]
2411pub struct GESOverlayClip {
2412    pub parent: GESOperationClip,
2413    pub priv_: *mut GESOverlayClipPrivate,
2414    pub _ges_reserved: [gpointer; 4],
2415}
2416
2417impl ::std::fmt::Debug for GESOverlayClip {
2418    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2419        f.debug_struct(&format!("GESOverlayClip @ {self:p}"))
2420            .finish()
2421    }
2422}
2423
2424#[derive(Copy, Clone)]
2425#[repr(C)]
2426pub struct GESPipeline {
2427    pub parent: gst::GstPipeline,
2428    pub priv_: *mut GESPipelinePrivate,
2429    pub _ges_reserved: [gpointer; 4],
2430}
2431
2432impl ::std::fmt::Debug for GESPipeline {
2433    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2434        f.debug_struct(&format!("GESPipeline @ {self:p}")).finish()
2435    }
2436}
2437
2438#[derive(Copy, Clone)]
2439#[repr(C)]
2440pub struct GESProject {
2441    pub parent: GESAsset,
2442    pub priv_: *mut GESProjectPrivate,
2443    pub __ges_reserved: [gpointer; 20],
2444}
2445
2446impl ::std::fmt::Debug for GESProject {
2447    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2448        f.debug_struct(&format!("GESProject @ {self:p}"))
2449            .field("parent", &self.parent)
2450            .finish()
2451    }
2452}
2453
2454#[derive(Copy, Clone)]
2455#[repr(C)]
2456pub struct GESSource {
2457    pub parent: GESTrackElement,
2458    pub priv_: *mut GESSourcePrivate,
2459    pub _ges_reserved: [gpointer; 4],
2460}
2461
2462impl ::std::fmt::Debug for GESSource {
2463    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2464        f.debug_struct(&format!("GESSource @ {self:p}")).finish()
2465    }
2466}
2467
2468#[derive(Copy, Clone)]
2469#[repr(C)]
2470pub struct GESSourceClip {
2471    pub parent: GESClip,
2472    pub priv_: *mut GESSourceClipPrivate,
2473    pub _ges_reserved: [gpointer; 4],
2474}
2475
2476impl ::std::fmt::Debug for GESSourceClip {
2477    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2478        f.debug_struct(&format!("GESSourceClip @ {self:p}"))
2479            .field("parent", &self.parent)
2480            .finish()
2481    }
2482}
2483
2484#[derive(Copy, Clone)]
2485#[repr(C)]
2486pub struct GESSourceClipAsset {
2487    pub parent_instance: GESClipAsset,
2488}
2489
2490impl ::std::fmt::Debug for GESSourceClipAsset {
2491    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2492        f.debug_struct(&format!("GESSourceClipAsset @ {self:p}"))
2493            .field("parent_instance", &self.parent_instance)
2494            .finish()
2495    }
2496}
2497
2498#[derive(Copy, Clone)]
2499#[repr(C)]
2500pub struct GESTestClip {
2501    pub parent: GESSourceClip,
2502    pub priv_: *mut GESTestClipPrivate,
2503    pub _ges_reserved: [gpointer; 4],
2504}
2505
2506impl ::std::fmt::Debug for GESTestClip {
2507    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2508        f.debug_struct(&format!("GESTestClip @ {self:p}"))
2509            .field("parent", &self.parent)
2510            .finish()
2511    }
2512}
2513
2514#[derive(Copy, Clone)]
2515#[repr(C)]
2516pub struct GESTextOverlay {
2517    pub parent: GESOperation,
2518    pub priv_: *mut GESTextOverlayPrivate,
2519    pub _ges_reserved: [gpointer; 4],
2520}
2521
2522impl ::std::fmt::Debug for GESTextOverlay {
2523    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2524        f.debug_struct(&format!("GESTextOverlay @ {self:p}"))
2525            .field("parent", &self.parent)
2526            .finish()
2527    }
2528}
2529
2530#[derive(Copy, Clone)]
2531#[repr(C)]
2532pub struct GESTextOverlayClip {
2533    pub parent: GESOverlayClip,
2534    pub priv_: *mut GESTextOverlayClipPrivate,
2535    pub _ges_reserved: [gpointer; 4],
2536}
2537
2538impl ::std::fmt::Debug for GESTextOverlayClip {
2539    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2540        f.debug_struct(&format!("GESTextOverlayClip @ {self:p}"))
2541            .field("parent", &self.parent)
2542            .finish()
2543    }
2544}
2545
2546#[derive(Copy, Clone)]
2547#[repr(C)]
2548pub struct GESTimeline {
2549    pub parent: gst::GstBin,
2550    pub layers: *mut glib::GList,
2551    pub tracks: *mut glib::GList,
2552    pub priv_: *mut GESTimelinePrivate,
2553    pub _ges_reserved: [gpointer; 4],
2554}
2555
2556impl ::std::fmt::Debug for GESTimeline {
2557    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2558        f.debug_struct(&format!("GESTimeline @ {self:p}"))
2559            .field("parent", &self.parent)
2560            .field("layers", &self.layers)
2561            .field("tracks", &self.tracks)
2562            .finish()
2563    }
2564}
2565
2566#[derive(Copy, Clone)]
2567#[repr(C)]
2568pub struct GESTimelineElement {
2569    pub parent_instance: gobject::GInitiallyUnowned,
2570    pub parent: *mut GESTimelineElement,
2571    pub asset: *mut GESAsset,
2572    pub start: gst::GstClockTime,
2573    pub inpoint: gst::GstClockTime,
2574    pub duration: gst::GstClockTime,
2575    pub maxduration: gst::GstClockTime,
2576    pub priority: u32,
2577    pub timeline: *mut GESTimeline,
2578    pub name: *mut c_char,
2579    pub priv_: *mut GESTimelineElementPrivate,
2580    pub _ges_reserved: [gpointer; 20],
2581}
2582
2583impl ::std::fmt::Debug for GESTimelineElement {
2584    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2585        f.debug_struct(&format!("GESTimelineElement @ {self:p}"))
2586            .field("parent_instance", &self.parent_instance)
2587            .field("parent", &self.parent)
2588            .field("asset", &self.asset)
2589            .field("start", &self.start)
2590            .field("inpoint", &self.inpoint)
2591            .field("duration", &self.duration)
2592            .field("maxduration", &self.maxduration)
2593            .field("priority", &self.priority)
2594            .field("timeline", &self.timeline)
2595            .field("name", &self.name)
2596            .finish()
2597    }
2598}
2599
2600#[derive(Copy, Clone)]
2601#[repr(C)]
2602pub struct GESTitleClip {
2603    pub parent: GESSourceClip,
2604    pub priv_: *mut GESTitleClipPrivate,
2605    pub _ges_reserved: [gpointer; 4],
2606}
2607
2608impl ::std::fmt::Debug for GESTitleClip {
2609    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2610        f.debug_struct(&format!("GESTitleClip @ {self:p}"))
2611            .field("parent", &self.parent)
2612            .finish()
2613    }
2614}
2615
2616#[derive(Copy, Clone)]
2617#[repr(C)]
2618pub struct GESTitleSource {
2619    pub parent: GESVideoSource,
2620    pub priv_: *mut GESTitleSourcePrivate,
2621    pub _ges_reserved: [gpointer; 4],
2622}
2623
2624impl ::std::fmt::Debug for GESTitleSource {
2625    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2626        f.debug_struct(&format!("GESTitleSource @ {self:p}"))
2627            .field("parent", &self.parent)
2628            .finish()
2629    }
2630}
2631
2632#[derive(Copy, Clone)]
2633#[repr(C)]
2634pub struct GESTrack {
2635    pub parent: gst::GstBin,
2636    pub type_: GESTrackType,
2637    pub priv_: *mut GESTrackPrivate,
2638    pub _ges_reserved: [gpointer; 4],
2639}
2640
2641impl ::std::fmt::Debug for GESTrack {
2642    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2643        f.debug_struct(&format!("GESTrack @ {self:p}"))
2644            .field("parent", &self.parent)
2645            .field("type_", &self.type_)
2646            .finish()
2647    }
2648}
2649
2650#[derive(Copy, Clone)]
2651#[repr(C)]
2652pub struct GESTrackElement {
2653    pub parent: GESTimelineElement,
2654    pub active: gboolean,
2655    pub priv_: *mut GESTrackElementPrivate,
2656    pub asset: *mut GESAsset,
2657    pub _ges_reserved: [gpointer; 20],
2658}
2659
2660impl ::std::fmt::Debug for GESTrackElement {
2661    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2662        f.debug_struct(&format!("GESTrackElement @ {self:p}"))
2663            .field("parent", &self.parent)
2664            .finish()
2665    }
2666}
2667
2668#[derive(Copy, Clone)]
2669#[repr(C)]
2670pub struct GESTrackElementAsset {
2671    pub parent: GESAsset,
2672    pub priv_: *mut GESTrackElementAssetPrivate,
2673    pub __ges_reserved: [gpointer; 4],
2674}
2675
2676impl ::std::fmt::Debug for GESTrackElementAsset {
2677    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2678        f.debug_struct(&format!("GESTrackElementAsset @ {self:p}"))
2679            .field("parent", &self.parent)
2680            .finish()
2681    }
2682}
2683
2684#[derive(Copy, Clone)]
2685#[repr(C)]
2686pub struct GESTransition {
2687    pub parent: GESOperation,
2688    pub priv_: *mut GESTransitionPrivate,
2689    pub _ges_reserved: [gpointer; 4],
2690}
2691
2692impl ::std::fmt::Debug for GESTransition {
2693    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2694        f.debug_struct(&format!("GESTransition @ {self:p}"))
2695            .finish()
2696    }
2697}
2698
2699#[derive(Copy, Clone)]
2700#[repr(C)]
2701pub struct GESTransitionClip {
2702    pub parent: GESBaseTransitionClip,
2703    pub vtype: GESVideoStandardTransitionType,
2704    pub priv_: *mut GESTransitionClipPrivate,
2705    pub _ges_reserved: [gpointer; 4],
2706}
2707
2708impl ::std::fmt::Debug for GESTransitionClip {
2709    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2710        f.debug_struct(&format!("GESTransitionClip @ {self:p}"))
2711            .field("vtype", &self.vtype)
2712            .finish()
2713    }
2714}
2715
2716#[derive(Copy, Clone)]
2717#[repr(C)]
2718pub struct GESUriClip {
2719    pub parent: GESSourceClip,
2720    pub priv_: *mut GESUriClipPrivate,
2721    pub _ges_reserved: [gpointer; 4],
2722}
2723
2724impl ::std::fmt::Debug for GESUriClip {
2725    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2726        f.debug_struct(&format!("GESUriClip @ {self:p}"))
2727            .field("parent", &self.parent)
2728            .finish()
2729    }
2730}
2731
2732#[derive(Copy, Clone)]
2733#[repr(C)]
2734pub struct GESUriClipAsset {
2735    pub parent: GESSourceClipAsset,
2736    pub priv_: *mut GESUriClipAssetPrivate,
2737    pub __ges_reserved: [gpointer; 4],
2738}
2739
2740impl ::std::fmt::Debug for GESUriClipAsset {
2741    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2742        f.debug_struct(&format!("GESUriClipAsset @ {self:p}"))
2743            .field("parent", &self.parent)
2744            .finish()
2745    }
2746}
2747
2748#[derive(Copy, Clone)]
2749#[repr(C)]
2750pub struct GESUriSourceAsset {
2751    pub parent: GESTrackElementAsset,
2752    pub priv_: *mut GESUriSourceAssetPrivate,
2753    pub __ges_reserved: [gpointer; 4],
2754}
2755
2756impl ::std::fmt::Debug for GESUriSourceAsset {
2757    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2758        f.debug_struct(&format!("GESUriSourceAsset @ {self:p}"))
2759            .field("parent", &self.parent)
2760            .finish()
2761    }
2762}
2763
2764#[derive(Copy, Clone)]
2765#[repr(C)]
2766pub struct GESVideoSource {
2767    pub parent: GESSource,
2768    pub priv_: *mut GESVideoSourcePrivate,
2769    pub _ges_reserved: [gpointer; 4],
2770}
2771
2772impl ::std::fmt::Debug for GESVideoSource {
2773    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2774        f.debug_struct(&format!("GESVideoSource @ {self:p}"))
2775            .finish()
2776    }
2777}
2778
2779#[derive(Copy, Clone)]
2780#[repr(C)]
2781pub struct GESVideoTestSource {
2782    pub parent: GESVideoSource,
2783    pub priv_: *mut GESVideoTestSourcePrivate,
2784    pub _ges_reserved: [gpointer; 4],
2785}
2786
2787impl ::std::fmt::Debug for GESVideoTestSource {
2788    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2789        f.debug_struct(&format!("GESVideoTestSource @ {self:p}"))
2790            .finish()
2791    }
2792}
2793
2794#[derive(Copy, Clone)]
2795#[repr(C)]
2796pub struct GESVideoTrack {
2797    pub parent_instance: GESTrack,
2798    pub priv_: *mut GESVideoTrackPrivate,
2799    pub _ges_reserved: [gpointer; 4],
2800}
2801
2802impl ::std::fmt::Debug for GESVideoTrack {
2803    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2804        f.debug_struct(&format!("GESVideoTrack @ {self:p}"))
2805            .field("parent_instance", &self.parent_instance)
2806            .finish()
2807    }
2808}
2809
2810#[derive(Copy, Clone)]
2811#[repr(C)]
2812pub struct GESVideoTransition {
2813    pub parent: GESTransition,
2814    pub priv_: *mut GESVideoTransitionPrivate,
2815    pub _ges_reserved: [gpointer; 4],
2816}
2817
2818impl ::std::fmt::Debug for GESVideoTransition {
2819    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2820        f.debug_struct(&format!("GESVideoTransition @ {self:p}"))
2821            .field("parent", &self.parent)
2822            .finish()
2823    }
2824}
2825
2826#[derive(Copy, Clone)]
2827#[repr(C)]
2828pub struct GESVideoUriSource {
2829    pub parent: GESVideoSource,
2830    pub uri: *mut c_char,
2831    pub priv_: *mut GESUriSource,
2832    pub _ges_reserved: [gpointer; 4],
2833}
2834
2835impl ::std::fmt::Debug for GESVideoUriSource {
2836    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2837        f.debug_struct(&format!("GESVideoUriSource @ {self:p}"))
2838            .finish()
2839    }
2840}
2841
2842#[derive(Copy, Clone)]
2843#[repr(C)]
2844pub struct GESXmlFormatter {
2845    pub parent: GESBaseXmlFormatter,
2846    pub priv_: *mut GESXmlFormatterPrivate,
2847    pub _ges_reserved: [gpointer; 4],
2848}
2849
2850impl ::std::fmt::Debug for GESXmlFormatter {
2851    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2852        f.debug_struct(&format!("GESXmlFormatter @ {self:p}"))
2853            .field("parent", &self.parent)
2854            .field("priv_", &self.priv_)
2855            .field("_ges_reserved", &self._ges_reserved)
2856            .finish()
2857    }
2858}
2859
2860// Interfaces
2861#[repr(C)]
2862#[allow(dead_code)]
2863pub struct GESExtractable {
2864    _data: [u8; 0],
2865    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2866}
2867
2868impl ::std::fmt::Debug for GESExtractable {
2869    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2870        write!(f, "GESExtractable @ {self:p}")
2871    }
2872}
2873
2874#[repr(C)]
2875#[allow(dead_code)]
2876pub struct GESMetaContainer {
2877    _data: [u8; 0],
2878    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2879}
2880
2881impl ::std::fmt::Debug for GESMetaContainer {
2882    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2883        write!(f, "GESMetaContainer @ {self:p}")
2884    }
2885}
2886
2887extern "C" {
2888
2889    //=========================================================================
2890    // GESEdge
2891    //=========================================================================
2892    pub fn ges_edge_get_type() -> GType;
2893    #[cfg(feature = "v1_16")]
2894    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2895    pub fn ges_edge_name(edge: GESEdge) -> *const c_char;
2896
2897    //=========================================================================
2898    // GESEditMode
2899    //=========================================================================
2900    pub fn ges_edit_mode_get_type() -> GType;
2901    #[cfg(feature = "v1_18")]
2902    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2903    pub fn ges_edit_mode_name(mode: GESEditMode) -> *const c_char;
2904
2905    //=========================================================================
2906    // GESTextHAlign
2907    //=========================================================================
2908    pub fn ges_text_halign_get_type() -> GType;
2909
2910    //=========================================================================
2911    // GESTextVAlign
2912    //=========================================================================
2913    pub fn ges_text_valign_get_type() -> GType;
2914
2915    //=========================================================================
2916    // GESVideoStandardTransitionType
2917    //=========================================================================
2918    pub fn ges_video_standard_transition_type_get_type() -> GType;
2919
2920    //=========================================================================
2921    // GESVideoTestPattern
2922    //=========================================================================
2923    pub fn ges_video_test_pattern_get_type() -> GType;
2924
2925    //=========================================================================
2926    // GESMarkerFlags
2927    //=========================================================================
2928    #[cfg(feature = "v1_20")]
2929    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2930    pub fn ges_marker_flags_get_type() -> GType;
2931
2932    //=========================================================================
2933    // GESMetaFlag
2934    //=========================================================================
2935    pub fn ges_meta_flag_get_type() -> GType;
2936
2937    //=========================================================================
2938    // GESPipelineFlags
2939    //=========================================================================
2940    pub fn ges_pipeline_flags_get_type() -> GType;
2941
2942    //=========================================================================
2943    // GESTrackType
2944    //=========================================================================
2945    pub fn ges_track_type_get_type() -> GType;
2946    pub fn ges_track_type_name(type_: GESTrackType) -> *const c_char;
2947
2948    //=========================================================================
2949    // GESEffectClass
2950    //=========================================================================
2951    pub fn ges_effect_class_register_rate_property(
2952        klass: *mut GESEffectClass,
2953        element_name: *const c_char,
2954        property_name: *const c_char,
2955    ) -> gboolean;
2956
2957    //=========================================================================
2958    // GESFormatterClass
2959    //=========================================================================
2960    pub fn ges_formatter_class_register_metas(
2961        klass: *mut GESFormatterClass,
2962        name: *const c_char,
2963        description: *const c_char,
2964        extensions: *const c_char,
2965        caps: *const c_char,
2966        version: c_double,
2967        rank: gst::GstRank,
2968    );
2969
2970    //=========================================================================
2971    // GESUriClipAssetClass
2972    //=========================================================================
2973    pub fn ges_uri_clip_asset_class_set_timeout(
2974        klass: *mut GESUriClipAssetClass,
2975        timeout: gst::GstClockTime,
2976    );
2977
2978    //=========================================================================
2979    // GESAsset
2980    //=========================================================================
2981    pub fn ges_asset_get_type() -> GType;
2982    pub fn ges_asset_needs_reload(extractable_type: GType, id: *const c_char) -> gboolean;
2983    pub fn ges_asset_request(
2984        extractable_type: GType,
2985        id: *const c_char,
2986        error: *mut *mut glib::GError,
2987    ) -> *mut GESAsset;
2988    pub fn ges_asset_request_async(
2989        extractable_type: GType,
2990        id: *const c_char,
2991        cancellable: *mut gio::GCancellable,
2992        callback: gio::GAsyncReadyCallback,
2993        user_data: gpointer,
2994    );
2995    pub fn ges_asset_request_finish(
2996        res: *mut gio::GAsyncResult,
2997        error: *mut *mut glib::GError,
2998    ) -> *mut GESAsset;
2999    pub fn ges_asset_extract(
3000        self_: *mut GESAsset,
3001        error: *mut *mut glib::GError,
3002    ) -> *mut GESExtractable;
3003    pub fn ges_asset_get_error(self_: *mut GESAsset) -> *mut glib::GError;
3004    pub fn ges_asset_get_extractable_type(self_: *mut GESAsset) -> GType;
3005    pub fn ges_asset_get_id(self_: *mut GESAsset) -> *const c_char;
3006    pub fn ges_asset_get_proxy(asset: *mut GESAsset) -> *mut GESAsset;
3007    pub fn ges_asset_get_proxy_target(proxy: *mut GESAsset) -> *mut GESAsset;
3008    pub fn ges_asset_list_proxies(asset: *mut GESAsset) -> *mut glib::GList;
3009    pub fn ges_asset_set_proxy(asset: *mut GESAsset, proxy: *mut GESAsset) -> gboolean;
3010    pub fn ges_asset_unproxy(asset: *mut GESAsset, proxy: *mut GESAsset) -> gboolean;
3011
3012    //=========================================================================
3013    // GESAudioSource
3014    //=========================================================================
3015    pub fn ges_audio_source_get_type() -> GType;
3016
3017    //=========================================================================
3018    // GESAudioTestSource
3019    //=========================================================================
3020    pub fn ges_audio_test_source_get_type() -> GType;
3021    pub fn ges_audio_test_source_get_freq(self_: *mut GESAudioTestSource) -> c_double;
3022    pub fn ges_audio_test_source_get_volume(self_: *mut GESAudioTestSource) -> c_double;
3023    pub fn ges_audio_test_source_set_freq(self_: *mut GESAudioTestSource, freq: c_double);
3024    pub fn ges_audio_test_source_set_volume(self_: *mut GESAudioTestSource, volume: c_double);
3025
3026    //=========================================================================
3027    // GESAudioTrack
3028    //=========================================================================
3029    pub fn ges_audio_track_get_type() -> GType;
3030    pub fn ges_audio_track_new() -> *mut GESAudioTrack;
3031
3032    //=========================================================================
3033    // GESAudioTransition
3034    //=========================================================================
3035    pub fn ges_audio_transition_get_type() -> GType;
3036    pub fn ges_audio_transition_new() -> *mut GESAudioTransition;
3037
3038    //=========================================================================
3039    // GESAudioUriSource
3040    //=========================================================================
3041    pub fn ges_audio_uri_source_get_type() -> GType;
3042
3043    //=========================================================================
3044    // GESBaseEffect
3045    //=========================================================================
3046    pub fn ges_base_effect_get_type() -> GType;
3047    #[cfg(feature = "v1_18")]
3048    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3049    pub fn ges_base_effect_is_time_effect(effect: *mut GESBaseEffect) -> gboolean;
3050    #[cfg(feature = "v1_18")]
3051    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3052    pub fn ges_base_effect_register_time_property(
3053        effect: *mut GESBaseEffect,
3054        child_property_name: *const c_char,
3055    ) -> gboolean;
3056    #[cfg(feature = "v1_18")]
3057    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3058    pub fn ges_base_effect_set_time_translation_funcs(
3059        effect: *mut GESBaseEffect,
3060        source_to_sink_func: GESBaseEffectTimeTranslationFunc,
3061        sink_to_source_func: GESBaseEffectTimeTranslationFunc,
3062        user_data: gpointer,
3063        destroy: glib::GDestroyNotify,
3064    ) -> gboolean;
3065
3066    //=========================================================================
3067    // GESBaseEffectClip
3068    //=========================================================================
3069    pub fn ges_base_effect_clip_get_type() -> GType;
3070
3071    //=========================================================================
3072    // GESBaseTransitionClip
3073    //=========================================================================
3074    pub fn ges_base_transition_clip_get_type() -> GType;
3075
3076    //=========================================================================
3077    // GESBaseXmlFormatter
3078    //=========================================================================
3079    pub fn ges_base_xml_formatter_get_type() -> GType;
3080
3081    //=========================================================================
3082    // GESClip
3083    //=========================================================================
3084    pub fn ges_clip_get_type() -> GType;
3085    pub fn ges_clip_add_asset(clip: *mut GESClip, asset: *mut GESAsset) -> *mut GESTrackElement;
3086    #[cfg(feature = "v1_18")]
3087    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3088    pub fn ges_clip_add_child_to_track(
3089        clip: *mut GESClip,
3090        child: *mut GESTrackElement,
3091        track: *mut GESTrack,
3092        error: *mut *mut glib::GError,
3093    ) -> *mut GESTrackElement;
3094    #[cfg(feature = "v1_18")]
3095    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3096    pub fn ges_clip_add_top_effect(
3097        clip: *mut GESClip,
3098        effect: *mut GESBaseEffect,
3099        index: c_int,
3100        error: *mut *mut glib::GError,
3101    ) -> gboolean;
3102    pub fn ges_clip_find_track_element(
3103        clip: *mut GESClip,
3104        track: *mut GESTrack,
3105        type_: GType,
3106    ) -> *mut GESTrackElement;
3107    pub fn ges_clip_find_track_elements(
3108        clip: *mut GESClip,
3109        track: *mut GESTrack,
3110        track_type: GESTrackType,
3111        type_: GType,
3112    ) -> *mut glib::GList;
3113    #[cfg(feature = "v1_18")]
3114    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3115    pub fn ges_clip_get_duration_limit(clip: *mut GESClip) -> gst::GstClockTime;
3116    #[cfg(feature = "v1_18")]
3117    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3118    pub fn ges_clip_get_internal_time_from_timeline_time(
3119        clip: *mut GESClip,
3120        child: *mut GESTrackElement,
3121        timeline_time: gst::GstClockTime,
3122        error: *mut *mut glib::GError,
3123    ) -> gst::GstClockTime;
3124    pub fn ges_clip_get_layer(clip: *mut GESClip) -> *mut GESLayer;
3125    pub fn ges_clip_get_supported_formats(clip: *mut GESClip) -> GESTrackType;
3126    #[cfg(feature = "v1_18")]
3127    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3128    pub fn ges_clip_get_timeline_time_from_internal_time(
3129        clip: *mut GESClip,
3130        child: *mut GESTrackElement,
3131        internal_time: gst::GstClockTime,
3132        error: *mut *mut glib::GError,
3133    ) -> gst::GstClockTime;
3134    #[cfg(feature = "v1_18")]
3135    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3136    pub fn ges_clip_get_timeline_time_from_source_frame(
3137        clip: *mut GESClip,
3138        frame_number: GESFrameNumber,
3139        error: *mut *mut glib::GError,
3140    ) -> gst::GstClockTime;
3141    pub fn ges_clip_get_top_effect_index(clip: *mut GESClip, effect: *mut GESBaseEffect) -> c_int;
3142    pub fn ges_clip_get_top_effect_position(
3143        clip: *mut GESClip,
3144        effect: *mut GESBaseEffect,
3145    ) -> c_int;
3146    pub fn ges_clip_get_top_effects(clip: *mut GESClip) -> *mut glib::GList;
3147    pub fn ges_clip_move_to_layer(clip: *mut GESClip, layer: *mut GESLayer) -> gboolean;
3148    #[cfg(feature = "v1_18")]
3149    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3150    pub fn ges_clip_move_to_layer_full(
3151        clip: *mut GESClip,
3152        layer: *mut GESLayer,
3153        error: *mut *mut glib::GError,
3154    ) -> gboolean;
3155    #[cfg(feature = "v1_18")]
3156    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3157    pub fn ges_clip_remove_top_effect(
3158        clip: *mut GESClip,
3159        effect: *mut GESBaseEffect,
3160        error: *mut *mut glib::GError,
3161    ) -> gboolean;
3162    pub fn ges_clip_set_supported_formats(clip: *mut GESClip, supportedformats: GESTrackType);
3163    pub fn ges_clip_set_top_effect_index(
3164        clip: *mut GESClip,
3165        effect: *mut GESBaseEffect,
3166        newindex: c_uint,
3167    ) -> gboolean;
3168    #[cfg(feature = "v1_18")]
3169    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3170    pub fn ges_clip_set_top_effect_index_full(
3171        clip: *mut GESClip,
3172        effect: *mut GESBaseEffect,
3173        newindex: c_uint,
3174        error: *mut *mut glib::GError,
3175    ) -> gboolean;
3176    pub fn ges_clip_set_top_effect_priority(
3177        clip: *mut GESClip,
3178        effect: *mut GESBaseEffect,
3179        newpriority: c_uint,
3180    ) -> gboolean;
3181    pub fn ges_clip_split(clip: *mut GESClip, position: u64) -> *mut GESClip;
3182    #[cfg(feature = "v1_18")]
3183    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3184    pub fn ges_clip_split_full(
3185        clip: *mut GESClip,
3186        position: u64,
3187        error: *mut *mut glib::GError,
3188    ) -> *mut GESClip;
3189
3190    //=========================================================================
3191    // GESClipAsset
3192    //=========================================================================
3193    pub fn ges_clip_asset_get_type() -> GType;
3194    #[cfg(feature = "v1_18")]
3195    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3196    pub fn ges_clip_asset_get_frame_time(
3197        self_: *mut GESClipAsset,
3198        frame_number: GESFrameNumber,
3199    ) -> gst::GstClockTime;
3200    #[cfg(feature = "v1_18")]
3201    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3202    pub fn ges_clip_asset_get_natural_framerate(
3203        self_: *mut GESClipAsset,
3204        framerate_n: *mut c_int,
3205        framerate_d: *mut c_int,
3206    ) -> gboolean;
3207    pub fn ges_clip_asset_get_supported_formats(self_: *mut GESClipAsset) -> GESTrackType;
3208    pub fn ges_clip_asset_set_supported_formats(
3209        self_: *mut GESClipAsset,
3210        supportedformats: GESTrackType,
3211    );
3212
3213    //=========================================================================
3214    // GESCommandLineFormatter
3215    //=========================================================================
3216    pub fn ges_command_line_formatter_get_type() -> GType;
3217    pub fn ges_command_line_formatter_get_help(
3218        nargs: c_int,
3219        commands: *mut *mut c_char,
3220    ) -> *mut c_char;
3221    pub fn ges_command_line_formatter_get_timeline_uri(timeline: *mut GESTimeline) -> *mut c_char;
3222
3223    //=========================================================================
3224    // GESContainer
3225    //=========================================================================
3226    pub fn ges_container_get_type() -> GType;
3227    pub fn ges_container_group(containers: *mut glib::GList) -> *mut GESContainer;
3228    pub fn ges_container_add(
3229        container: *mut GESContainer,
3230        child: *mut GESTimelineElement,
3231    ) -> gboolean;
3232    pub fn ges_container_edit(
3233        container: *mut GESContainer,
3234        layers: *mut glib::GList,
3235        new_layer_priority: c_int,
3236        mode: GESEditMode,
3237        edge: GESEdge,
3238        position: u64,
3239    ) -> gboolean;
3240    pub fn ges_container_get_children(
3241        container: *mut GESContainer,
3242        recursive: gboolean,
3243    ) -> *mut glib::GList;
3244    pub fn ges_container_remove(
3245        container: *mut GESContainer,
3246        child: *mut GESTimelineElement,
3247    ) -> gboolean;
3248    pub fn ges_container_ungroup(
3249        container: *mut GESContainer,
3250        recursive: gboolean,
3251    ) -> *mut glib::GList;
3252
3253    //=========================================================================
3254    // GESDiscovererManager
3255    //=========================================================================
3256    #[cfg(feature = "v1_24")]
3257    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
3258    pub fn ges_discoverer_manager_get_type() -> GType;
3259    #[cfg(feature = "v1_24")]
3260    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
3261    pub fn ges_discoverer_manager_get_default() -> *mut GESDiscovererManager;
3262    #[cfg(feature = "v1_24")]
3263    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
3264    pub fn ges_discoverer_manager_get_timeout(
3265        self_: *mut GESDiscovererManager,
3266    ) -> gst::GstClockTime;
3267    #[cfg(feature = "v1_24")]
3268    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
3269    pub fn ges_discoverer_manager_get_use_cache(self_: *mut GESDiscovererManager) -> gboolean;
3270    #[cfg(feature = "v1_24")]
3271    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
3272    pub fn ges_discoverer_manager_set_timeout(
3273        self_: *mut GESDiscovererManager,
3274        timeout: gst::GstClockTime,
3275    );
3276    #[cfg(feature = "v1_24")]
3277    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
3278    pub fn ges_discoverer_manager_set_use_cache(
3279        self_: *mut GESDiscovererManager,
3280        use_cache: gboolean,
3281    );
3282
3283    //=========================================================================
3284    // GESEffect
3285    //=========================================================================
3286    pub fn ges_effect_get_type() -> GType;
3287    pub fn ges_effect_new(bin_description: *const c_char) -> *mut GESEffect;
3288
3289    //=========================================================================
3290    // GESEffectAsset
3291    //=========================================================================
3292    pub fn ges_effect_asset_get_type() -> GType;
3293
3294    //=========================================================================
3295    // GESEffectClip
3296    //=========================================================================
3297    pub fn ges_effect_clip_get_type() -> GType;
3298    pub fn ges_effect_clip_new(
3299        video_bin_description: *const c_char,
3300        audio_bin_description: *const c_char,
3301    ) -> *mut GESEffectClip;
3302
3303    //=========================================================================
3304    // GESFormatter
3305    //=========================================================================
3306    pub fn ges_formatter_get_type() -> GType;
3307    pub fn ges_formatter_can_load_uri(
3308        uri: *const c_char,
3309        error: *mut *mut glib::GError,
3310    ) -> gboolean;
3311    pub fn ges_formatter_can_save_uri(
3312        uri: *const c_char,
3313        error: *mut *mut glib::GError,
3314    ) -> gboolean;
3315    pub fn ges_formatter_get_default() -> *mut GESAsset;
3316    pub fn ges_formatter_load_from_uri(
3317        formatter: *mut GESFormatter,
3318        timeline: *mut GESTimeline,
3319        uri: *const c_char,
3320        error: *mut *mut glib::GError,
3321    ) -> gboolean;
3322    pub fn ges_formatter_save_to_uri(
3323        formatter: *mut GESFormatter,
3324        timeline: *mut GESTimeline,
3325        uri: *const c_char,
3326        overwrite: gboolean,
3327        error: *mut *mut glib::GError,
3328    ) -> gboolean;
3329
3330    //=========================================================================
3331    // GESGroup
3332    //=========================================================================
3333    pub fn ges_group_get_type() -> GType;
3334    pub fn ges_group_new() -> *mut GESGroup;
3335
3336    //=========================================================================
3337    // GESImageSource
3338    //=========================================================================
3339    pub fn ges_image_source_get_type() -> GType;
3340
3341    //=========================================================================
3342    // GESLayer
3343    //=========================================================================
3344    pub fn ges_layer_get_type() -> GType;
3345    pub fn ges_layer_new() -> *mut GESLayer;
3346    pub fn ges_layer_add_asset(
3347        layer: *mut GESLayer,
3348        asset: *mut GESAsset,
3349        start: gst::GstClockTime,
3350        inpoint: gst::GstClockTime,
3351        duration: gst::GstClockTime,
3352        track_types: GESTrackType,
3353    ) -> *mut GESClip;
3354    #[cfg(feature = "v1_18")]
3355    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3356    pub fn ges_layer_add_asset_full(
3357        layer: *mut GESLayer,
3358        asset: *mut GESAsset,
3359        start: gst::GstClockTime,
3360        inpoint: gst::GstClockTime,
3361        duration: gst::GstClockTime,
3362        track_types: GESTrackType,
3363        error: *mut *mut glib::GError,
3364    ) -> *mut GESClip;
3365    pub fn ges_layer_add_clip(layer: *mut GESLayer, clip: *mut GESClip) -> gboolean;
3366    #[cfg(feature = "v1_18")]
3367    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3368    pub fn ges_layer_add_clip_full(
3369        layer: *mut GESLayer,
3370        clip: *mut GESClip,
3371        error: *mut *mut glib::GError,
3372    ) -> gboolean;
3373    #[cfg(feature = "v1_18")]
3374    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3375    pub fn ges_layer_get_active_for_track(layer: *mut GESLayer, track: *mut GESTrack) -> gboolean;
3376    pub fn ges_layer_get_auto_transition(layer: *mut GESLayer) -> gboolean;
3377    pub fn ges_layer_get_clips(layer: *mut GESLayer) -> *mut glib::GList;
3378    pub fn ges_layer_get_clips_in_interval(
3379        layer: *mut GESLayer,
3380        start: gst::GstClockTime,
3381        end: gst::GstClockTime,
3382    ) -> *mut glib::GList;
3383    pub fn ges_layer_get_duration(layer: *mut GESLayer) -> gst::GstClockTime;
3384    pub fn ges_layer_get_priority(layer: *mut GESLayer) -> c_uint;
3385    pub fn ges_layer_get_timeline(layer: *mut GESLayer) -> *mut GESTimeline;
3386    pub fn ges_layer_is_empty(layer: *mut GESLayer) -> gboolean;
3387    pub fn ges_layer_remove_clip(layer: *mut GESLayer, clip: *mut GESClip) -> gboolean;
3388    #[cfg(feature = "v1_18")]
3389    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3390    pub fn ges_layer_set_active_for_tracks(
3391        layer: *mut GESLayer,
3392        active: gboolean,
3393        tracks: *mut glib::GList,
3394    ) -> gboolean;
3395    pub fn ges_layer_set_auto_transition(layer: *mut GESLayer, auto_transition: gboolean);
3396    pub fn ges_layer_set_priority(layer: *mut GESLayer, priority: c_uint);
3397    pub fn ges_layer_set_timeline(layer: *mut GESLayer, timeline: *mut GESTimeline);
3398
3399    //=========================================================================
3400    // GESMarker
3401    //=========================================================================
3402    #[cfg(feature = "v1_18")]
3403    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3404    pub fn ges_marker_get_type() -> GType;
3405
3406    //=========================================================================
3407    // GESMarkerList
3408    //=========================================================================
3409    #[cfg(feature = "v1_18")]
3410    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3411    pub fn ges_marker_list_get_type() -> GType;
3412    #[cfg(feature = "v1_18")]
3413    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3414    pub fn ges_marker_list_new() -> *mut GESMarkerList;
3415    #[cfg(feature = "v1_18")]
3416    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3417    pub fn ges_marker_list_add(
3418        list: *mut GESMarkerList,
3419        position: gst::GstClockTime,
3420    ) -> *mut GESMarker;
3421    #[cfg(feature = "v1_18")]
3422    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3423    pub fn ges_marker_list_get_markers(list: *mut GESMarkerList) -> *mut glib::GList;
3424    #[cfg(feature = "v1_18")]
3425    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3426    pub fn ges_marker_list_move(
3427        list: *mut GESMarkerList,
3428        marker: *mut GESMarker,
3429        position: gst::GstClockTime,
3430    ) -> gboolean;
3431    #[cfg(feature = "v1_18")]
3432    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3433    pub fn ges_marker_list_remove(list: *mut GESMarkerList, marker: *mut GESMarker) -> gboolean;
3434    #[cfg(feature = "v1_18")]
3435    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3436    pub fn ges_marker_list_size(list: *mut GESMarkerList) -> c_uint;
3437
3438    //=========================================================================
3439    // GESMultiFileSource
3440    //=========================================================================
3441    pub fn ges_multi_file_source_get_type() -> GType;
3442    pub fn ges_multi_file_source_new(uri: *mut c_char) -> *mut GESMultiFileSource;
3443
3444    //=========================================================================
3445    // GESOperation
3446    //=========================================================================
3447    pub fn ges_operation_get_type() -> GType;
3448
3449    //=========================================================================
3450    // GESOperationClip
3451    //=========================================================================
3452    pub fn ges_operation_clip_get_type() -> GType;
3453
3454    //=========================================================================
3455    // GESOverlayClip
3456    //=========================================================================
3457    pub fn ges_overlay_clip_get_type() -> GType;
3458
3459    //=========================================================================
3460    // GESPipeline
3461    //=========================================================================
3462    pub fn ges_pipeline_get_type() -> GType;
3463    pub fn ges_pipeline_new() -> *mut GESPipeline;
3464    pub fn ges_pipeline_get_mode(pipeline: *mut GESPipeline) -> GESPipelineFlags;
3465    pub fn ges_pipeline_get_thumbnail(
3466        self_: *mut GESPipeline,
3467        caps: *mut gst::GstCaps,
3468    ) -> *mut gst::GstSample;
3469    pub fn ges_pipeline_get_thumbnail_rgb24(
3470        self_: *mut GESPipeline,
3471        width: c_int,
3472        height: c_int,
3473    ) -> *mut gst::GstSample;
3474    pub fn ges_pipeline_preview_get_audio_sink(self_: *mut GESPipeline) -> *mut gst::GstElement;
3475    pub fn ges_pipeline_preview_get_video_sink(self_: *mut GESPipeline) -> *mut gst::GstElement;
3476    pub fn ges_pipeline_preview_set_audio_sink(self_: *mut GESPipeline, sink: *mut gst::GstElement);
3477    pub fn ges_pipeline_preview_set_video_sink(self_: *mut GESPipeline, sink: *mut gst::GstElement);
3478    pub fn ges_pipeline_save_thumbnail(
3479        self_: *mut GESPipeline,
3480        width: c_int,
3481        height: c_int,
3482        format: *const c_char,
3483        location: *const c_char,
3484        error: *mut *mut glib::GError,
3485    ) -> gboolean;
3486    pub fn ges_pipeline_set_mode(pipeline: *mut GESPipeline, mode: GESPipelineFlags) -> gboolean;
3487    pub fn ges_pipeline_set_render_settings(
3488        pipeline: *mut GESPipeline,
3489        output_uri: *const c_char,
3490        profile: *mut gst_pbutils::GstEncodingProfile,
3491    ) -> gboolean;
3492    pub fn ges_pipeline_set_timeline(
3493        pipeline: *mut GESPipeline,
3494        timeline: *mut GESTimeline,
3495    ) -> gboolean;
3496
3497    //=========================================================================
3498    // GESPitiviFormatter
3499    //=========================================================================
3500
3501    //=========================================================================
3502    // GESProject
3503    //=========================================================================
3504    pub fn ges_project_get_type() -> GType;
3505    pub fn ges_project_new(uri: *const c_char) -> *mut GESProject;
3506    pub fn ges_project_add_asset(project: *mut GESProject, asset: *mut GESAsset) -> gboolean;
3507    pub fn ges_project_add_encoding_profile(
3508        project: *mut GESProject,
3509        profile: *mut gst_pbutils::GstEncodingProfile,
3510    ) -> gboolean;
3511    #[cfg(feature = "v1_18")]
3512    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3513    pub fn ges_project_add_formatter(project: *mut GESProject, formatter: *mut GESFormatter);
3514    pub fn ges_project_create_asset(
3515        project: *mut GESProject,
3516        id: *const c_char,
3517        extractable_type: GType,
3518    ) -> gboolean;
3519    pub fn ges_project_create_asset_sync(
3520        project: *mut GESProject,
3521        id: *const c_char,
3522        extractable_type: GType,
3523        error: *mut *mut glib::GError,
3524    ) -> *mut GESAsset;
3525    pub fn ges_project_get_asset(
3526        project: *mut GESProject,
3527        id: *const c_char,
3528        extractable_type: GType,
3529    ) -> *mut GESAsset;
3530    pub fn ges_project_get_loading_assets(project: *mut GESProject) -> *mut glib::GList;
3531    pub fn ges_project_get_uri(project: *mut GESProject) -> *mut c_char;
3532    pub fn ges_project_list_assets(project: *mut GESProject, filter: GType) -> *mut glib::GList;
3533    pub fn ges_project_list_encoding_profiles(project: *mut GESProject) -> *const glib::GList;
3534    pub fn ges_project_load(
3535        project: *mut GESProject,
3536        timeline: *mut GESTimeline,
3537        error: *mut *mut glib::GError,
3538    ) -> gboolean;
3539    pub fn ges_project_remove_asset(project: *mut GESProject, asset: *mut GESAsset) -> gboolean;
3540    pub fn ges_project_save(
3541        project: *mut GESProject,
3542        timeline: *mut GESTimeline,
3543        uri: *const c_char,
3544        formatter_asset: *mut GESAsset,
3545        overwrite: gboolean,
3546        error: *mut *mut glib::GError,
3547    ) -> gboolean;
3548
3549    //=========================================================================
3550    // GESSource
3551    //=========================================================================
3552    pub fn ges_source_get_type() -> GType;
3553
3554    //=========================================================================
3555    // GESSourceClip
3556    //=========================================================================
3557    pub fn ges_source_clip_get_type() -> GType;
3558    #[cfg(feature = "v1_18")]
3559    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3560    pub fn ges_source_clip_new_time_overlay() -> *mut GESSourceClip;
3561
3562    //=========================================================================
3563    // GESSourceClipAsset
3564    //=========================================================================
3565    #[cfg(feature = "v1_18")]
3566    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3567    pub fn ges_source_clip_asset_get_type() -> GType;
3568
3569    //=========================================================================
3570    // GESTestClip
3571    //=========================================================================
3572    pub fn ges_test_clip_get_type() -> GType;
3573    pub fn ges_test_clip_new() -> *mut GESTestClip;
3574    pub fn ges_test_clip_new_for_nick(nick: *mut c_char) -> *mut GESTestClip;
3575    pub fn ges_test_clip_get_frequency(self_: *mut GESTestClip) -> c_double;
3576    pub fn ges_test_clip_get_volume(self_: *mut GESTestClip) -> c_double;
3577    pub fn ges_test_clip_get_vpattern(self_: *mut GESTestClip) -> GESVideoTestPattern;
3578    pub fn ges_test_clip_is_muted(self_: *mut GESTestClip) -> gboolean;
3579    pub fn ges_test_clip_set_frequency(self_: *mut GESTestClip, freq: c_double);
3580    pub fn ges_test_clip_set_mute(self_: *mut GESTestClip, mute: gboolean);
3581    pub fn ges_test_clip_set_volume(self_: *mut GESTestClip, volume: c_double);
3582    pub fn ges_test_clip_set_vpattern(self_: *mut GESTestClip, vpattern: GESVideoTestPattern);
3583
3584    //=========================================================================
3585    // GESTextOverlay
3586    //=========================================================================
3587    pub fn ges_text_overlay_get_type() -> GType;
3588    pub fn ges_text_overlay_new() -> *mut GESTextOverlay;
3589    pub fn ges_text_overlay_get_color(self_: *mut GESTextOverlay) -> u32;
3590    pub fn ges_text_overlay_get_font_desc(self_: *mut GESTextOverlay) -> *const c_char;
3591    pub fn ges_text_overlay_get_halignment(self_: *mut GESTextOverlay) -> GESTextHAlign;
3592    pub fn ges_text_overlay_get_text(self_: *mut GESTextOverlay) -> *const c_char;
3593    pub fn ges_text_overlay_get_valignment(self_: *mut GESTextOverlay) -> GESTextVAlign;
3594    pub fn ges_text_overlay_get_xpos(self_: *mut GESTextOverlay) -> c_double;
3595    pub fn ges_text_overlay_get_ypos(self_: *mut GESTextOverlay) -> c_double;
3596    pub fn ges_text_overlay_set_color(self_: *mut GESTextOverlay, color: u32);
3597    pub fn ges_text_overlay_set_font_desc(self_: *mut GESTextOverlay, font_desc: *const c_char);
3598    pub fn ges_text_overlay_set_halignment(self_: *mut GESTextOverlay, halign: GESTextHAlign);
3599    pub fn ges_text_overlay_set_text(self_: *mut GESTextOverlay, text: *const c_char);
3600    pub fn ges_text_overlay_set_valignment(self_: *mut GESTextOverlay, valign: GESTextVAlign);
3601    pub fn ges_text_overlay_set_xpos(self_: *mut GESTextOverlay, position: c_double);
3602    pub fn ges_text_overlay_set_ypos(self_: *mut GESTextOverlay, position: c_double);
3603
3604    //=========================================================================
3605    // GESTextOverlayClip
3606    //=========================================================================
3607    pub fn ges_text_overlay_clip_get_type() -> GType;
3608    pub fn ges_text_overlay_clip_new() -> *mut GESTextOverlayClip;
3609    pub fn ges_text_overlay_clip_get_color(self_: *mut GESTextOverlayClip) -> u32;
3610    pub fn ges_text_overlay_clip_get_font_desc(self_: *mut GESTextOverlayClip) -> *const c_char;
3611    pub fn ges_text_overlay_clip_get_halignment(self_: *mut GESTextOverlayClip) -> GESTextHAlign;
3612    pub fn ges_text_overlay_clip_get_text(self_: *mut GESTextOverlayClip) -> *const c_char;
3613    pub fn ges_text_overlay_clip_get_valignment(self_: *mut GESTextOverlayClip) -> GESTextVAlign;
3614    pub fn ges_text_overlay_clip_get_xpos(self_: *mut GESTextOverlayClip) -> c_double;
3615    pub fn ges_text_overlay_clip_get_ypos(self_: *mut GESTextOverlayClip) -> c_double;
3616    pub fn ges_text_overlay_clip_set_color(self_: *mut GESTextOverlayClip, color: u32);
3617    pub fn ges_text_overlay_clip_set_font_desc(
3618        self_: *mut GESTextOverlayClip,
3619        font_desc: *const c_char,
3620    );
3621    pub fn ges_text_overlay_clip_set_halign(self_: *mut GESTextOverlayClip, halign: GESTextHAlign);
3622    pub fn ges_text_overlay_clip_set_text(self_: *mut GESTextOverlayClip, text: *const c_char);
3623    pub fn ges_text_overlay_clip_set_valign(self_: *mut GESTextOverlayClip, valign: GESTextVAlign);
3624    pub fn ges_text_overlay_clip_set_xpos(self_: *mut GESTextOverlayClip, position: c_double);
3625    pub fn ges_text_overlay_clip_set_ypos(self_: *mut GESTextOverlayClip, position: c_double);
3626
3627    //=========================================================================
3628    // GESTimeline
3629    //=========================================================================
3630    pub fn ges_timeline_get_type() -> GType;
3631    pub fn ges_timeline_new() -> *mut GESTimeline;
3632    pub fn ges_timeline_new_audio_video() -> *mut GESTimeline;
3633    pub fn ges_timeline_new_from_uri(
3634        uri: *const c_char,
3635        error: *mut *mut glib::GError,
3636    ) -> *mut GESTimeline;
3637    pub fn ges_timeline_add_layer(timeline: *mut GESTimeline, layer: *mut GESLayer) -> gboolean;
3638    pub fn ges_timeline_add_track(timeline: *mut GESTimeline, track: *mut GESTrack) -> gboolean;
3639    pub fn ges_timeline_append_layer(timeline: *mut GESTimeline) -> *mut GESLayer;
3640    pub fn ges_timeline_commit(timeline: *mut GESTimeline) -> gboolean;
3641    pub fn ges_timeline_commit_sync(timeline: *mut GESTimeline) -> gboolean;
3642    #[cfg(feature = "v1_22")]
3643    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
3644    pub fn ges_timeline_disable_edit_apis(self_: *mut GESTimeline, disable_edit_apis: gboolean);
3645    #[cfg(feature = "v1_20")]
3646    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3647    pub fn ges_timeline_freeze_commit(timeline: *mut GESTimeline);
3648    pub fn ges_timeline_get_auto_transition(timeline: *mut GESTimeline) -> gboolean;
3649    pub fn ges_timeline_get_duration(timeline: *mut GESTimeline) -> gst::GstClockTime;
3650    #[cfg(feature = "v1_22")]
3651    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
3652    pub fn ges_timeline_get_edit_apis_disabled(self_: *mut GESTimeline) -> gboolean;
3653    pub fn ges_timeline_get_element(
3654        timeline: *mut GESTimeline,
3655        name: *const c_char,
3656    ) -> *mut GESTimelineElement;
3657    #[cfg(feature = "v1_18")]
3658    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3659    pub fn ges_timeline_get_frame_at(
3660        self_: *mut GESTimeline,
3661        timestamp: gst::GstClockTime,
3662    ) -> GESFrameNumber;
3663    #[cfg(feature = "v1_18")]
3664    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3665    pub fn ges_timeline_get_frame_time(
3666        self_: *mut GESTimeline,
3667        frame_number: GESFrameNumber,
3668    ) -> gst::GstClockTime;
3669    pub fn ges_timeline_get_groups(timeline: *mut GESTimeline) -> *mut glib::GList;
3670    pub fn ges_timeline_get_layer(timeline: *mut GESTimeline, priority: c_uint) -> *mut GESLayer;
3671    pub fn ges_timeline_get_layers(timeline: *mut GESTimeline) -> *mut glib::GList;
3672    pub fn ges_timeline_get_pad_for_track(
3673        timeline: *mut GESTimeline,
3674        track: *mut GESTrack,
3675    ) -> *mut gst::GstPad;
3676    pub fn ges_timeline_get_snapping_distance(timeline: *mut GESTimeline) -> gst::GstClockTime;
3677    pub fn ges_timeline_get_track_for_pad(
3678        timeline: *mut GESTimeline,
3679        pad: *mut gst::GstPad,
3680    ) -> *mut GESTrack;
3681    pub fn ges_timeline_get_tracks(timeline: *mut GESTimeline) -> *mut glib::GList;
3682    pub fn ges_timeline_is_empty(timeline: *mut GESTimeline) -> gboolean;
3683    pub fn ges_timeline_load_from_uri(
3684        timeline: *mut GESTimeline,
3685        uri: *const c_char,
3686        error: *mut *mut glib::GError,
3687    ) -> gboolean;
3688    #[cfg(feature = "v1_16")]
3689    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3690    pub fn ges_timeline_move_layer(
3691        timeline: *mut GESTimeline,
3692        layer: *mut GESLayer,
3693        new_layer_priority: c_uint,
3694    ) -> gboolean;
3695    pub fn ges_timeline_paste_element(
3696        timeline: *mut GESTimeline,
3697        element: *mut GESTimelineElement,
3698        position: gst::GstClockTime,
3699        layer_priority: c_int,
3700    ) -> *mut GESTimelineElement;
3701    pub fn ges_timeline_remove_layer(timeline: *mut GESTimeline, layer: *mut GESLayer) -> gboolean;
3702    pub fn ges_timeline_remove_track(timeline: *mut GESTimeline, track: *mut GESTrack) -> gboolean;
3703    pub fn ges_timeline_save_to_uri(
3704        timeline: *mut GESTimeline,
3705        uri: *const c_char,
3706        formatter_asset: *mut GESAsset,
3707        overwrite: gboolean,
3708        error: *mut *mut glib::GError,
3709    ) -> gboolean;
3710    pub fn ges_timeline_set_auto_transition(timeline: *mut GESTimeline, auto_transition: gboolean);
3711    pub fn ges_timeline_set_snapping_distance(
3712        timeline: *mut GESTimeline,
3713        snapping_distance: gst::GstClockTime,
3714    );
3715    #[cfg(feature = "v1_20")]
3716    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3717    pub fn ges_timeline_thaw_commit(timeline: *mut GESTimeline);
3718
3719    //=========================================================================
3720    // GESTimelineElement
3721    //=========================================================================
3722    pub fn ges_timeline_element_get_type() -> GType;
3723    pub fn ges_timeline_element_add_child_property(
3724        self_: *mut GESTimelineElement,
3725        pspec: *mut gobject::GParamSpec,
3726        child: *mut gobject::GObject,
3727    ) -> gboolean;
3728    pub fn ges_timeline_element_copy(
3729        self_: *mut GESTimelineElement,
3730        deep: gboolean,
3731    ) -> *mut GESTimelineElement;
3732    #[cfg(feature = "v1_18")]
3733    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3734    pub fn ges_timeline_element_edit(
3735        self_: *mut GESTimelineElement,
3736        layers: *mut glib::GList,
3737        new_layer_priority: i64,
3738        mode: GESEditMode,
3739        edge: GESEdge,
3740        position: u64,
3741    ) -> gboolean;
3742    #[cfg(feature = "v1_18")]
3743    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3744    pub fn ges_timeline_element_edit_full(
3745        self_: *mut GESTimelineElement,
3746        new_layer_priority: i64,
3747        mode: GESEditMode,
3748        edge: GESEdge,
3749        position: u64,
3750        error: *mut *mut glib::GError,
3751    ) -> gboolean;
3752    pub fn ges_timeline_element_get_child_properties(
3753        self_: *mut GESTimelineElement,
3754        first_property_name: *const c_char,
3755        ...
3756    );
3757    pub fn ges_timeline_element_get_child_property(
3758        self_: *mut GESTimelineElement,
3759        property_name: *const c_char,
3760        value: *mut gobject::GValue,
3761    ) -> gboolean;
3762    pub fn ges_timeline_element_get_child_property_by_pspec(
3763        self_: *mut GESTimelineElement,
3764        pspec: *mut gobject::GParamSpec,
3765        value: *mut gobject::GValue,
3766    );
3767    //pub fn ges_timeline_element_get_child_property_valist(self_: *mut GESTimelineElement, first_property_name: *const c_char, var_args: /*Unimplemented*/va_list);
3768    pub fn ges_timeline_element_get_duration(self_: *mut GESTimelineElement) -> gst::GstClockTime;
3769    pub fn ges_timeline_element_get_inpoint(self_: *mut GESTimelineElement) -> gst::GstClockTime;
3770    #[cfg(feature = "v1_16")]
3771    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3772    pub fn ges_timeline_element_get_layer_priority(self_: *mut GESTimelineElement) -> u32;
3773    pub fn ges_timeline_element_get_max_duration(
3774        self_: *mut GESTimelineElement,
3775    ) -> gst::GstClockTime;
3776    pub fn ges_timeline_element_get_name(self_: *mut GESTimelineElement) -> *mut c_char;
3777    #[cfg(feature = "v1_18")]
3778    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3779    pub fn ges_timeline_element_get_natural_framerate(
3780        self_: *mut GESTimelineElement,
3781        framerate_n: *mut c_int,
3782        framerate_d: *mut c_int,
3783    ) -> gboolean;
3784    pub fn ges_timeline_element_get_parent(
3785        self_: *mut GESTimelineElement,
3786    ) -> *mut GESTimelineElement;
3787    pub fn ges_timeline_element_get_priority(self_: *mut GESTimelineElement) -> u32;
3788    pub fn ges_timeline_element_get_start(self_: *mut GESTimelineElement) -> gst::GstClockTime;
3789    pub fn ges_timeline_element_get_timeline(self_: *mut GESTimelineElement) -> *mut GESTimeline;
3790    pub fn ges_timeline_element_get_toplevel_parent(
3791        self_: *mut GESTimelineElement,
3792    ) -> *mut GESTimelineElement;
3793    pub fn ges_timeline_element_get_track_types(self_: *mut GESTimelineElement) -> GESTrackType;
3794    pub fn ges_timeline_element_list_children_properties(
3795        self_: *mut GESTimelineElement,
3796        n_properties: *mut c_uint,
3797    ) -> *mut *mut gobject::GParamSpec;
3798    pub fn ges_timeline_element_lookup_child(
3799        self_: *mut GESTimelineElement,
3800        prop_name: *const c_char,
3801        child: *mut *mut gobject::GObject,
3802        pspec: *mut *mut gobject::GParamSpec,
3803    ) -> gboolean;
3804    pub fn ges_timeline_element_paste(
3805        self_: *mut GESTimelineElement,
3806        paste_position: gst::GstClockTime,
3807    ) -> *mut GESTimelineElement;
3808    pub fn ges_timeline_element_remove_child_property(
3809        self_: *mut GESTimelineElement,
3810        pspec: *mut gobject::GParamSpec,
3811    ) -> gboolean;
3812    pub fn ges_timeline_element_ripple(
3813        self_: *mut GESTimelineElement,
3814        start: gst::GstClockTime,
3815    ) -> gboolean;
3816    pub fn ges_timeline_element_ripple_end(
3817        self_: *mut GESTimelineElement,
3818        end: gst::GstClockTime,
3819    ) -> gboolean;
3820    pub fn ges_timeline_element_roll_end(
3821        self_: *mut GESTimelineElement,
3822        end: gst::GstClockTime,
3823    ) -> gboolean;
3824    pub fn ges_timeline_element_roll_start(
3825        self_: *mut GESTimelineElement,
3826        start: gst::GstClockTime,
3827    ) -> gboolean;
3828    pub fn ges_timeline_element_set_child_properties(
3829        self_: *mut GESTimelineElement,
3830        first_property_name: *const c_char,
3831        ...
3832    );
3833    pub fn ges_timeline_element_set_child_property(
3834        self_: *mut GESTimelineElement,
3835        property_name: *const c_char,
3836        value: *const gobject::GValue,
3837    ) -> gboolean;
3838    pub fn ges_timeline_element_set_child_property_by_pspec(
3839        self_: *mut GESTimelineElement,
3840        pspec: *mut gobject::GParamSpec,
3841        value: *const gobject::GValue,
3842    );
3843    #[cfg(feature = "v1_18")]
3844    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3845    pub fn ges_timeline_element_set_child_property_full(
3846        self_: *mut GESTimelineElement,
3847        property_name: *const c_char,
3848        value: *const gobject::GValue,
3849        error: *mut *mut glib::GError,
3850    ) -> gboolean;
3851    //pub fn ges_timeline_element_set_child_property_valist(self_: *mut GESTimelineElement, first_property_name: *const c_char, var_args: /*Unimplemented*/va_list);
3852    pub fn ges_timeline_element_set_duration(
3853        self_: *mut GESTimelineElement,
3854        duration: gst::GstClockTime,
3855    ) -> gboolean;
3856    pub fn ges_timeline_element_set_inpoint(
3857        self_: *mut GESTimelineElement,
3858        inpoint: gst::GstClockTime,
3859    ) -> gboolean;
3860    pub fn ges_timeline_element_set_max_duration(
3861        self_: *mut GESTimelineElement,
3862        maxduration: gst::GstClockTime,
3863    ) -> gboolean;
3864    pub fn ges_timeline_element_set_name(
3865        self_: *mut GESTimelineElement,
3866        name: *const c_char,
3867    ) -> gboolean;
3868    pub fn ges_timeline_element_set_parent(
3869        self_: *mut GESTimelineElement,
3870        parent: *mut GESTimelineElement,
3871    ) -> gboolean;
3872    pub fn ges_timeline_element_set_priority(
3873        self_: *mut GESTimelineElement,
3874        priority: u32,
3875    ) -> gboolean;
3876    pub fn ges_timeline_element_set_start(
3877        self_: *mut GESTimelineElement,
3878        start: gst::GstClockTime,
3879    ) -> gboolean;
3880    pub fn ges_timeline_element_set_timeline(
3881        self_: *mut GESTimelineElement,
3882        timeline: *mut GESTimeline,
3883    ) -> gboolean;
3884    pub fn ges_timeline_element_trim(
3885        self_: *mut GESTimelineElement,
3886        start: gst::GstClockTime,
3887    ) -> gboolean;
3888
3889    //=========================================================================
3890    // GESTitleClip
3891    //=========================================================================
3892    pub fn ges_title_clip_get_type() -> GType;
3893    pub fn ges_title_clip_new() -> *mut GESTitleClip;
3894    pub fn ges_title_clip_get_background_color(self_: *mut GESTitleClip) -> u32;
3895    pub fn ges_title_clip_get_font_desc(self_: *mut GESTitleClip) -> *const c_char;
3896    pub fn ges_title_clip_get_halignment(self_: *mut GESTitleClip) -> GESTextHAlign;
3897    pub fn ges_title_clip_get_text(self_: *mut GESTitleClip) -> *const c_char;
3898    pub fn ges_title_clip_get_text_color(self_: *mut GESTitleClip) -> u32;
3899    pub fn ges_title_clip_get_valignment(self_: *mut GESTitleClip) -> GESTextVAlign;
3900    pub fn ges_title_clip_get_xpos(self_: *mut GESTitleClip) -> c_double;
3901    pub fn ges_title_clip_get_ypos(self_: *mut GESTitleClip) -> c_double;
3902    pub fn ges_title_clip_set_background(self_: *mut GESTitleClip, background: u32);
3903    pub fn ges_title_clip_set_color(self_: *mut GESTitleClip, color: u32);
3904    pub fn ges_title_clip_set_font_desc(self_: *mut GESTitleClip, font_desc: *const c_char);
3905    pub fn ges_title_clip_set_halignment(self_: *mut GESTitleClip, halign: GESTextHAlign);
3906    pub fn ges_title_clip_set_text(self_: *mut GESTitleClip, text: *const c_char);
3907    pub fn ges_title_clip_set_valignment(self_: *mut GESTitleClip, valign: GESTextVAlign);
3908    pub fn ges_title_clip_set_xpos(self_: *mut GESTitleClip, position: c_double);
3909    pub fn ges_title_clip_set_ypos(self_: *mut GESTitleClip, position: c_double);
3910
3911    //=========================================================================
3912    // GESTitleSource
3913    //=========================================================================
3914    pub fn ges_title_source_get_type() -> GType;
3915    pub fn ges_title_source_get_background_color(source: *mut GESTitleSource) -> u32;
3916    pub fn ges_title_source_get_font_desc(source: *mut GESTitleSource) -> *const c_char;
3917    pub fn ges_title_source_get_halignment(source: *mut GESTitleSource) -> GESTextHAlign;
3918    pub fn ges_title_source_get_text(source: *mut GESTitleSource) -> *const c_char;
3919    pub fn ges_title_source_get_text_color(source: *mut GESTitleSource) -> u32;
3920    pub fn ges_title_source_get_valignment(source: *mut GESTitleSource) -> GESTextVAlign;
3921    pub fn ges_title_source_get_xpos(source: *mut GESTitleSource) -> c_double;
3922    pub fn ges_title_source_get_ypos(source: *mut GESTitleSource) -> c_double;
3923    pub fn ges_title_source_set_background_color(self_: *mut GESTitleSource, color: u32);
3924    pub fn ges_title_source_set_font_desc(self_: *mut GESTitleSource, font_desc: *const c_char);
3925    pub fn ges_title_source_set_halignment(self_: *mut GESTitleSource, halign: GESTextHAlign);
3926    pub fn ges_title_source_set_text(self_: *mut GESTitleSource, text: *const c_char);
3927    pub fn ges_title_source_set_text_color(self_: *mut GESTitleSource, color: u32);
3928    pub fn ges_title_source_set_valignment(self_: *mut GESTitleSource, valign: GESTextVAlign);
3929    pub fn ges_title_source_set_xpos(self_: *mut GESTitleSource, position: c_double);
3930    pub fn ges_title_source_set_ypos(self_: *mut GESTitleSource, position: c_double);
3931
3932    //=========================================================================
3933    // GESTrack
3934    //=========================================================================
3935    pub fn ges_track_get_type() -> GType;
3936    pub fn ges_track_new(type_: GESTrackType, caps: *mut gst::GstCaps) -> *mut GESTrack;
3937    pub fn ges_track_add_element(track: *mut GESTrack, object: *mut GESTrackElement) -> gboolean;
3938    #[cfg(feature = "v1_18")]
3939    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3940    pub fn ges_track_add_element_full(
3941        track: *mut GESTrack,
3942        object: *mut GESTrackElement,
3943        error: *mut *mut glib::GError,
3944    ) -> gboolean;
3945    pub fn ges_track_commit(track: *mut GESTrack) -> gboolean;
3946    pub fn ges_track_get_caps(track: *mut GESTrack) -> *const gst::GstCaps;
3947    pub fn ges_track_get_elements(track: *mut GESTrack) -> *mut glib::GList;
3948    pub fn ges_track_get_mixing(track: *mut GESTrack) -> gboolean;
3949    #[cfg(feature = "v1_18")]
3950    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3951    pub fn ges_track_get_restriction_caps(track: *mut GESTrack) -> *mut gst::GstCaps;
3952    pub fn ges_track_get_timeline(track: *mut GESTrack) -> *const GESTimeline;
3953    pub fn ges_track_remove_element(track: *mut GESTrack, object: *mut GESTrackElement)
3954        -> gboolean;
3955    #[cfg(feature = "v1_18")]
3956    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3957    pub fn ges_track_remove_element_full(
3958        track: *mut GESTrack,
3959        object: *mut GESTrackElement,
3960        error: *mut *mut glib::GError,
3961    ) -> gboolean;
3962    pub fn ges_track_set_create_element_for_gap_func(
3963        track: *mut GESTrack,
3964        func: GESCreateElementForGapFunc,
3965    );
3966    pub fn ges_track_set_mixing(track: *mut GESTrack, mixing: gboolean);
3967    pub fn ges_track_set_restriction_caps(track: *mut GESTrack, caps: *const gst::GstCaps);
3968    pub fn ges_track_set_timeline(track: *mut GESTrack, timeline: *mut GESTimeline);
3969    pub fn ges_track_update_restriction_caps(track: *mut GESTrack, caps: *const gst::GstCaps);
3970
3971    //=========================================================================
3972    // GESTrackElement
3973    //=========================================================================
3974    pub fn ges_track_element_get_type() -> GType;
3975    pub fn ges_track_element_add_children_props(
3976        self_: *mut GESTrackElement,
3977        element: *mut gst::GstElement,
3978        wanted_categories: *mut *const c_char,
3979        blacklist: *mut *const c_char,
3980        whitelist: *mut *const c_char,
3981    );
3982    #[cfg(feature = "v1_18")]
3983    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3984    pub fn ges_track_element_clamp_control_source(
3985        object: *mut GESTrackElement,
3986        property_name: *const c_char,
3987    );
3988    pub fn ges_track_element_edit(
3989        object: *mut GESTrackElement,
3990        layers: *mut glib::GList,
3991        mode: GESEditMode,
3992        edge: GESEdge,
3993        position: u64,
3994    ) -> gboolean;
3995    pub fn ges_track_element_get_all_control_bindings(
3996        trackelement: *mut GESTrackElement,
3997    ) -> *mut glib::GHashTable;
3998    #[cfg(feature = "v1_18")]
3999    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4000    pub fn ges_track_element_get_auto_clamp_control_sources(
4001        object: *mut GESTrackElement,
4002    ) -> gboolean;
4003    pub fn ges_track_element_get_child_properties(
4004        object: *mut GESTrackElement,
4005        first_property_name: *const c_char,
4006        ...
4007    );
4008    pub fn ges_track_element_get_child_property(
4009        object: *mut GESTrackElement,
4010        property_name: *const c_char,
4011        value: *mut gobject::GValue,
4012    ) -> gboolean;
4013    pub fn ges_track_element_get_child_property_by_pspec(
4014        object: *mut GESTrackElement,
4015        pspec: *mut gobject::GParamSpec,
4016        value: *mut gobject::GValue,
4017    );
4018    //pub fn ges_track_element_get_child_property_valist(object: *mut GESTrackElement, first_property_name: *const c_char, var_args: /*Unimplemented*/va_list);
4019    pub fn ges_track_element_get_control_binding(
4020        object: *mut GESTrackElement,
4021        property_name: *const c_char,
4022    ) -> *mut gst::GstControlBinding;
4023    pub fn ges_track_element_get_element(object: *mut GESTrackElement) -> *mut gst::GstElement;
4024    pub fn ges_track_element_get_gnlobject(object: *mut GESTrackElement) -> *mut gst::GstElement;
4025    pub fn ges_track_element_get_nleobject(object: *mut GESTrackElement) -> *mut gst::GstElement;
4026    pub fn ges_track_element_get_track(object: *mut GESTrackElement) -> *mut GESTrack;
4027    pub fn ges_track_element_get_track_type(object: *mut GESTrackElement) -> GESTrackType;
4028    #[cfg(feature = "v1_18")]
4029    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4030    pub fn ges_track_element_has_internal_source(object: *mut GESTrackElement) -> gboolean;
4031    pub fn ges_track_element_is_active(object: *mut GESTrackElement) -> gboolean;
4032    #[cfg(feature = "v1_18")]
4033    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4034    pub fn ges_track_element_is_core(object: *mut GESTrackElement) -> gboolean;
4035    pub fn ges_track_element_list_children_properties(
4036        object: *mut GESTrackElement,
4037        n_properties: *mut c_uint,
4038    ) -> *mut *mut gobject::GParamSpec;
4039    pub fn ges_track_element_lookup_child(
4040        object: *mut GESTrackElement,
4041        prop_name: *const c_char,
4042        element: *mut *mut gst::GstElement,
4043        pspec: *mut *mut gobject::GParamSpec,
4044    ) -> gboolean;
4045    pub fn ges_track_element_remove_control_binding(
4046        object: *mut GESTrackElement,
4047        property_name: *const c_char,
4048    ) -> gboolean;
4049    pub fn ges_track_element_set_active(object: *mut GESTrackElement, active: gboolean)
4050        -> gboolean;
4051    #[cfg(feature = "v1_18")]
4052    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4053    pub fn ges_track_element_set_auto_clamp_control_sources(
4054        object: *mut GESTrackElement,
4055        auto_clamp: gboolean,
4056    );
4057    pub fn ges_track_element_set_child_properties(
4058        object: *mut GESTrackElement,
4059        first_property_name: *const c_char,
4060        ...
4061    );
4062    pub fn ges_track_element_set_child_property(
4063        object: *mut GESTrackElement,
4064        property_name: *const c_char,
4065        value: *mut gobject::GValue,
4066    ) -> gboolean;
4067    pub fn ges_track_element_set_child_property_by_pspec(
4068        object: *mut GESTrackElement,
4069        pspec: *mut gobject::GParamSpec,
4070        value: *mut gobject::GValue,
4071    );
4072    //pub fn ges_track_element_set_child_property_valist(object: *mut GESTrackElement, first_property_name: *const c_char, var_args: /*Unimplemented*/va_list);
4073    pub fn ges_track_element_set_control_source(
4074        object: *mut GESTrackElement,
4075        source: *mut gst::GstControlSource,
4076        property_name: *const c_char,
4077        binding_type: *const c_char,
4078    ) -> gboolean;
4079    #[cfg(feature = "v1_18")]
4080    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4081    pub fn ges_track_element_set_has_internal_source(
4082        object: *mut GESTrackElement,
4083        has_internal_source: gboolean,
4084    ) -> gboolean;
4085    pub fn ges_track_element_set_track_type(object: *mut GESTrackElement, type_: GESTrackType);
4086
4087    //=========================================================================
4088    // GESTrackElementAsset
4089    //=========================================================================
4090    pub fn ges_track_element_asset_get_type() -> GType;
4091    #[cfg(feature = "v1_18")]
4092    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4093    pub fn ges_track_element_asset_get_natural_framerate(
4094        self_: *mut GESTrackElementAsset,
4095        framerate_n: *mut c_int,
4096        framerate_d: *mut c_int,
4097    ) -> gboolean;
4098    pub fn ges_track_element_asset_get_track_type(asset: *mut GESTrackElementAsset)
4099        -> GESTrackType;
4100    pub fn ges_track_element_asset_set_track_type(
4101        asset: *mut GESTrackElementAsset,
4102        type_: GESTrackType,
4103    );
4104
4105    //=========================================================================
4106    // GESTransition
4107    //=========================================================================
4108    pub fn ges_transition_get_type() -> GType;
4109
4110    //=========================================================================
4111    // GESTransitionClip
4112    //=========================================================================
4113    pub fn ges_transition_clip_get_type() -> GType;
4114    pub fn ges_transition_clip_new(vtype: GESVideoStandardTransitionType)
4115        -> *mut GESTransitionClip;
4116    pub fn ges_transition_clip_new_for_nick(nick: *mut c_char) -> *mut GESTransitionClip;
4117
4118    //=========================================================================
4119    // GESUriClip
4120    //=========================================================================
4121    pub fn ges_uri_clip_get_type() -> GType;
4122    pub fn ges_uri_clip_new(uri: *const c_char) -> *mut GESUriClip;
4123    pub fn ges_uri_clip_get_uri(self_: *mut GESUriClip) -> *const c_char;
4124    pub fn ges_uri_clip_is_image(self_: *mut GESUriClip) -> gboolean;
4125    pub fn ges_uri_clip_is_muted(self_: *mut GESUriClip) -> gboolean;
4126    pub fn ges_uri_clip_set_is_image(self_: *mut GESUriClip, is_image: gboolean);
4127    pub fn ges_uri_clip_set_mute(self_: *mut GESUriClip, mute: gboolean);
4128
4129    //=========================================================================
4130    // GESUriClipAsset
4131    //=========================================================================
4132    pub fn ges_uri_clip_asset_get_type() -> GType;
4133    #[cfg(feature = "v1_16")]
4134    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
4135    pub fn ges_uri_clip_asset_finish(
4136        res: *mut gio::GAsyncResult,
4137        error: *mut *mut glib::GError,
4138    ) -> *mut GESUriClipAsset;
4139    pub fn ges_uri_clip_asset_new(
4140        uri: *const c_char,
4141        cancellable: *mut gio::GCancellable,
4142        callback: gio::GAsyncReadyCallback,
4143        user_data: gpointer,
4144    );
4145    pub fn ges_uri_clip_asset_request_sync(
4146        uri: *const c_char,
4147        error: *mut *mut glib::GError,
4148    ) -> *mut GESUriClipAsset;
4149    pub fn ges_uri_clip_asset_get_duration(self_: *mut GESUriClipAsset) -> gst::GstClockTime;
4150    pub fn ges_uri_clip_asset_get_info(
4151        self_: *const GESUriClipAsset,
4152    ) -> *mut gst_pbutils::GstDiscovererInfo;
4153    #[cfg(feature = "v1_18")]
4154    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4155    pub fn ges_uri_clip_asset_get_max_duration(self_: *mut GESUriClipAsset) -> gst::GstClockTime;
4156    pub fn ges_uri_clip_asset_get_stream_assets(self_: *mut GESUriClipAsset) -> *const glib::GList;
4157    #[cfg(feature = "v1_18")]
4158    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4159    pub fn ges_uri_clip_asset_is_image(self_: *mut GESUriClipAsset) -> gboolean;
4160
4161    //=========================================================================
4162    // GESUriSourceAsset
4163    //=========================================================================
4164    pub fn ges_uri_source_asset_get_type() -> GType;
4165    pub fn ges_uri_source_asset_get_filesource_asset(
4166        asset: *mut GESUriSourceAsset,
4167    ) -> *const GESUriClipAsset;
4168    pub fn ges_uri_source_asset_get_stream_info(
4169        asset: *mut GESUriSourceAsset,
4170    ) -> *mut gst_pbutils::GstDiscovererStreamInfo;
4171    pub fn ges_uri_source_asset_get_stream_uri(asset: *mut GESUriSourceAsset) -> *const c_char;
4172    #[cfg(feature = "v1_18")]
4173    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4174    pub fn ges_uri_source_asset_is_image(asset: *mut GESUriSourceAsset) -> gboolean;
4175
4176    //=========================================================================
4177    // GESVideoSource
4178    //=========================================================================
4179    pub fn ges_video_source_get_type() -> GType;
4180    #[cfg(feature = "v1_18")]
4181    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4182    pub fn ges_video_source_get_natural_size(
4183        self_: *mut GESVideoSource,
4184        width: *mut c_int,
4185        height: *mut c_int,
4186    ) -> gboolean;
4187
4188    //=========================================================================
4189    // GESVideoTestSource
4190    //=========================================================================
4191    pub fn ges_video_test_source_get_type() -> GType;
4192    pub fn ges_video_test_source_get_pattern(
4193        source: *mut GESVideoTestSource,
4194    ) -> GESVideoTestPattern;
4195    pub fn ges_video_test_source_set_pattern(
4196        self_: *mut GESVideoTestSource,
4197        pattern: GESVideoTestPattern,
4198    );
4199
4200    //=========================================================================
4201    // GESVideoTrack
4202    //=========================================================================
4203    pub fn ges_video_track_get_type() -> GType;
4204    pub fn ges_video_track_new() -> *mut GESVideoTrack;
4205
4206    //=========================================================================
4207    // GESVideoTransition
4208    //=========================================================================
4209    pub fn ges_video_transition_get_type() -> GType;
4210    pub fn ges_video_transition_new() -> *mut GESVideoTransition;
4211    pub fn ges_video_transition_get_border(self_: *mut GESVideoTransition) -> c_int;
4212    pub fn ges_video_transition_get_transition_type(
4213        trans: *mut GESVideoTransition,
4214    ) -> GESVideoStandardTransitionType;
4215    pub fn ges_video_transition_is_inverted(self_: *mut GESVideoTransition) -> gboolean;
4216    pub fn ges_video_transition_set_border(self_: *mut GESVideoTransition, value: c_uint);
4217    pub fn ges_video_transition_set_inverted(self_: *mut GESVideoTransition, inverted: gboolean);
4218    pub fn ges_video_transition_set_transition_type(
4219        self_: *mut GESVideoTransition,
4220        type_: GESVideoStandardTransitionType,
4221    ) -> gboolean;
4222
4223    //=========================================================================
4224    // GESVideoUriSource
4225    //=========================================================================
4226    pub fn ges_video_uri_source_get_type() -> GType;
4227
4228    //=========================================================================
4229    // GESXmlFormatter
4230    //=========================================================================
4231    pub fn ges_xml_formatter_get_type() -> GType;
4232
4233    //=========================================================================
4234    // GESExtractable
4235    //=========================================================================
4236    pub fn ges_extractable_get_type() -> GType;
4237    pub fn ges_extractable_get_asset(self_: *mut GESExtractable) -> *mut GESAsset;
4238    pub fn ges_extractable_get_id(self_: *mut GESExtractable) -> *mut c_char;
4239    pub fn ges_extractable_set_asset(self_: *mut GESExtractable, asset: *mut GESAsset) -> gboolean;
4240
4241    //=========================================================================
4242    // GESMetaContainer
4243    //=========================================================================
4244    pub fn ges_meta_container_get_type() -> GType;
4245    pub fn ges_meta_container_add_metas_from_string(
4246        container: *mut GESMetaContainer,
4247        str: *const c_char,
4248    ) -> gboolean;
4249    pub fn ges_meta_container_check_meta_registered(
4250        container: *mut GESMetaContainer,
4251        meta_item: *const c_char,
4252        flags: *mut GESMetaFlag,
4253        type_: *mut GType,
4254    ) -> gboolean;
4255    pub fn ges_meta_container_foreach(
4256        container: *mut GESMetaContainer,
4257        func: GESMetaForeachFunc,
4258        user_data: gpointer,
4259    );
4260    pub fn ges_meta_container_get_boolean(
4261        container: *mut GESMetaContainer,
4262        meta_item: *const c_char,
4263        dest: *mut gboolean,
4264    ) -> gboolean;
4265    pub fn ges_meta_container_get_date(
4266        container: *mut GESMetaContainer,
4267        meta_item: *const c_char,
4268        dest: *mut *mut glib::GDate,
4269    ) -> gboolean;
4270    pub fn ges_meta_container_get_date_time(
4271        container: *mut GESMetaContainer,
4272        meta_item: *const c_char,
4273        dest: *mut *mut gst::GstDateTime,
4274    ) -> gboolean;
4275    pub fn ges_meta_container_get_double(
4276        container: *mut GESMetaContainer,
4277        meta_item: *const c_char,
4278        dest: *mut c_double,
4279    ) -> gboolean;
4280    pub fn ges_meta_container_get_float(
4281        container: *mut GESMetaContainer,
4282        meta_item: *const c_char,
4283        dest: *mut c_float,
4284    ) -> gboolean;
4285    pub fn ges_meta_container_get_int(
4286        container: *mut GESMetaContainer,
4287        meta_item: *const c_char,
4288        dest: *mut c_int,
4289    ) -> gboolean;
4290    pub fn ges_meta_container_get_int64(
4291        container: *mut GESMetaContainer,
4292        meta_item: *const c_char,
4293        dest: *mut i64,
4294    ) -> gboolean;
4295    #[cfg(feature = "v1_18")]
4296    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4297    pub fn ges_meta_container_get_marker_list(
4298        container: *mut GESMetaContainer,
4299        key: *const c_char,
4300    ) -> *mut GESMarkerList;
4301    pub fn ges_meta_container_get_meta(
4302        container: *mut GESMetaContainer,
4303        key: *const c_char,
4304    ) -> *const gobject::GValue;
4305    pub fn ges_meta_container_get_string(
4306        container: *mut GESMetaContainer,
4307        meta_item: *const c_char,
4308    ) -> *const c_char;
4309    pub fn ges_meta_container_get_uint(
4310        container: *mut GESMetaContainer,
4311        meta_item: *const c_char,
4312        dest: *mut c_uint,
4313    ) -> gboolean;
4314    pub fn ges_meta_container_get_uint64(
4315        container: *mut GESMetaContainer,
4316        meta_item: *const c_char,
4317        dest: *mut u64,
4318    ) -> gboolean;
4319    pub fn ges_meta_container_metas_to_string(container: *mut GESMetaContainer) -> *mut c_char;
4320    pub fn ges_meta_container_register_meta(
4321        container: *mut GESMetaContainer,
4322        flags: GESMetaFlag,
4323        meta_item: *const c_char,
4324        value: *const gobject::GValue,
4325    ) -> gboolean;
4326    pub fn ges_meta_container_register_meta_boolean(
4327        container: *mut GESMetaContainer,
4328        flags: GESMetaFlag,
4329        meta_item: *const c_char,
4330        value: gboolean,
4331    ) -> gboolean;
4332    pub fn ges_meta_container_register_meta_date(
4333        container: *mut GESMetaContainer,
4334        flags: GESMetaFlag,
4335        meta_item: *const c_char,
4336        value: *const glib::GDate,
4337    ) -> gboolean;
4338    pub fn ges_meta_container_register_meta_date_time(
4339        container: *mut GESMetaContainer,
4340        flags: GESMetaFlag,
4341        meta_item: *const c_char,
4342        value: *const gst::GstDateTime,
4343    ) -> gboolean;
4344    pub fn ges_meta_container_register_meta_double(
4345        container: *mut GESMetaContainer,
4346        flags: GESMetaFlag,
4347        meta_item: *const c_char,
4348        value: c_double,
4349    ) -> gboolean;
4350    pub fn ges_meta_container_register_meta_float(
4351        container: *mut GESMetaContainer,
4352        flags: GESMetaFlag,
4353        meta_item: *const c_char,
4354        value: c_float,
4355    ) -> gboolean;
4356    pub fn ges_meta_container_register_meta_int(
4357        container: *mut GESMetaContainer,
4358        flags: GESMetaFlag,
4359        meta_item: *const c_char,
4360        value: c_int,
4361    ) -> gboolean;
4362    pub fn ges_meta_container_register_meta_int64(
4363        container: *mut GESMetaContainer,
4364        flags: GESMetaFlag,
4365        meta_item: *const c_char,
4366        value: i64,
4367    ) -> gboolean;
4368    pub fn ges_meta_container_register_meta_string(
4369        container: *mut GESMetaContainer,
4370        flags: GESMetaFlag,
4371        meta_item: *const c_char,
4372        value: *const c_char,
4373    ) -> gboolean;
4374    pub fn ges_meta_container_register_meta_uint(
4375        container: *mut GESMetaContainer,
4376        flags: GESMetaFlag,
4377        meta_item: *const c_char,
4378        value: c_uint,
4379    ) -> gboolean;
4380    pub fn ges_meta_container_register_meta_uint64(
4381        container: *mut GESMetaContainer,
4382        flags: GESMetaFlag,
4383        meta_item: *const c_char,
4384        value: u64,
4385    ) -> gboolean;
4386    #[cfg(feature = "v1_18")]
4387    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4388    pub fn ges_meta_container_register_static_meta(
4389        container: *mut GESMetaContainer,
4390        flags: GESMetaFlag,
4391        meta_item: *const c_char,
4392        type_: GType,
4393    ) -> gboolean;
4394    pub fn ges_meta_container_set_boolean(
4395        container: *mut GESMetaContainer,
4396        meta_item: *const c_char,
4397        value: gboolean,
4398    ) -> gboolean;
4399    pub fn ges_meta_container_set_date(
4400        container: *mut GESMetaContainer,
4401        meta_item: *const c_char,
4402        value: *const glib::GDate,
4403    ) -> gboolean;
4404    pub fn ges_meta_container_set_date_time(
4405        container: *mut GESMetaContainer,
4406        meta_item: *const c_char,
4407        value: *const gst::GstDateTime,
4408    ) -> gboolean;
4409    pub fn ges_meta_container_set_double(
4410        container: *mut GESMetaContainer,
4411        meta_item: *const c_char,
4412        value: c_double,
4413    ) -> gboolean;
4414    pub fn ges_meta_container_set_float(
4415        container: *mut GESMetaContainer,
4416        meta_item: *const c_char,
4417        value: c_float,
4418    ) -> gboolean;
4419    pub fn ges_meta_container_set_int(
4420        container: *mut GESMetaContainer,
4421        meta_item: *const c_char,
4422        value: c_int,
4423    ) -> gboolean;
4424    pub fn ges_meta_container_set_int64(
4425        container: *mut GESMetaContainer,
4426        meta_item: *const c_char,
4427        value: i64,
4428    ) -> gboolean;
4429    #[cfg(feature = "v1_18")]
4430    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4431    pub fn ges_meta_container_set_marker_list(
4432        container: *mut GESMetaContainer,
4433        meta_item: *const c_char,
4434        list: *const GESMarkerList,
4435    ) -> gboolean;
4436    pub fn ges_meta_container_set_meta(
4437        container: *mut GESMetaContainer,
4438        meta_item: *const c_char,
4439        value: *const gobject::GValue,
4440    ) -> gboolean;
4441    pub fn ges_meta_container_set_string(
4442        container: *mut GESMetaContainer,
4443        meta_item: *const c_char,
4444        value: *const c_char,
4445    ) -> gboolean;
4446    pub fn ges_meta_container_set_uint(
4447        container: *mut GESMetaContainer,
4448        meta_item: *const c_char,
4449        value: c_uint,
4450    ) -> gboolean;
4451    pub fn ges_meta_container_set_uint64(
4452        container: *mut GESMetaContainer,
4453        meta_item: *const c_char,
4454        value: u64,
4455    ) -> gboolean;
4456
4457    //=========================================================================
4458    // Other functions
4459    //=========================================================================
4460    pub fn ges_add_missing_uri_relocation_uri(uri: *const c_char, recurse: gboolean) -> gboolean;
4461    #[cfg(feature = "v1_24")]
4462    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
4463    pub fn ges_buffer_add_frame_composition_meta(
4464        buffer: *mut gst::GstBuffer,
4465    ) -> *mut GESFrameCompositionMeta;
4466    pub fn ges_deinit();
4467    #[cfg(feature = "v1_18")]
4468    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4469    pub fn ges_find_formatter_for_uri(uri: *const c_char) -> *mut GESAsset;
4470    #[cfg(feature = "v1_24")]
4471    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
4472    pub fn ges_frame_composition_meta_api_get_type() -> GType;
4473    pub fn ges_init() -> gboolean;
4474    pub fn ges_init_check(
4475        argc: *mut c_int,
4476        argv: *mut *mut *mut c_char,
4477        error: *mut *mut glib::GError,
4478    ) -> gboolean;
4479    pub fn ges_init_get_option_group() -> *mut glib::GOptionGroup;
4480    #[cfg(feature = "v1_16")]
4481    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
4482    pub fn ges_is_initialized() -> gboolean;
4483    pub fn ges_list_assets(filter: GType) -> *mut glib::GList;
4484    pub fn ges_play_sink_convert_frame(
4485        playsink: *mut gst::GstElement,
4486        caps: *mut gst::GstCaps,
4487    ) -> *mut gst::GstSample;
4488    pub fn ges_pspec_equal(key_spec_1: gconstpointer, key_spec_2: gconstpointer) -> gboolean;
4489    pub fn ges_pspec_hash(key_spec: gconstpointer) -> c_uint;
4490    pub fn ges_validate_register_action_types() -> gboolean;
4491    pub fn ges_version(
4492        major: *mut c_uint,
4493        minor: *mut c_uint,
4494        micro: *mut c_uint,
4495        nano: *mut c_uint,
4496    );
4497
4498}