Skip to main content

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#[allow(unused_imports)]
22use libc::{FILE, intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t};
23#[cfg(unix)]
24#[allow(unused_imports)]
25use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
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::{GType, gboolean, gconstpointer, gpointer};
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
2887unsafe extern "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    #[cfg(feature = "v1_28")]
3148    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
3149    pub fn ges_clip_is_moving_between_layers(clip: *mut GESClip) -> gboolean;
3150    pub fn ges_clip_move_to_layer(clip: *mut GESClip, layer: *mut GESLayer) -> gboolean;
3151    #[cfg(feature = "v1_18")]
3152    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3153    pub fn ges_clip_move_to_layer_full(
3154        clip: *mut GESClip,
3155        layer: *mut GESLayer,
3156        error: *mut *mut glib::GError,
3157    ) -> gboolean;
3158    #[cfg(feature = "v1_18")]
3159    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3160    pub fn ges_clip_remove_top_effect(
3161        clip: *mut GESClip,
3162        effect: *mut GESBaseEffect,
3163        error: *mut *mut glib::GError,
3164    ) -> gboolean;
3165    pub fn ges_clip_set_supported_formats(clip: *mut GESClip, supportedformats: GESTrackType);
3166    pub fn ges_clip_set_top_effect_index(
3167        clip: *mut GESClip,
3168        effect: *mut GESBaseEffect,
3169        newindex: c_uint,
3170    ) -> gboolean;
3171    #[cfg(feature = "v1_18")]
3172    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3173    pub fn ges_clip_set_top_effect_index_full(
3174        clip: *mut GESClip,
3175        effect: *mut GESBaseEffect,
3176        newindex: c_uint,
3177        error: *mut *mut glib::GError,
3178    ) -> gboolean;
3179    pub fn ges_clip_set_top_effect_priority(
3180        clip: *mut GESClip,
3181        effect: *mut GESBaseEffect,
3182        newpriority: c_uint,
3183    ) -> gboolean;
3184    pub fn ges_clip_split(clip: *mut GESClip, position: u64) -> *mut GESClip;
3185    #[cfg(feature = "v1_18")]
3186    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3187    pub fn ges_clip_split_full(
3188        clip: *mut GESClip,
3189        position: u64,
3190        error: *mut *mut glib::GError,
3191    ) -> *mut GESClip;
3192
3193    //=========================================================================
3194    // GESClipAsset
3195    //=========================================================================
3196    pub fn ges_clip_asset_get_type() -> GType;
3197    #[cfg(feature = "v1_18")]
3198    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3199    pub fn ges_clip_asset_get_frame_time(
3200        self_: *mut GESClipAsset,
3201        frame_number: GESFrameNumber,
3202    ) -> gst::GstClockTime;
3203    #[cfg(feature = "v1_18")]
3204    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3205    pub fn ges_clip_asset_get_natural_framerate(
3206        self_: *mut GESClipAsset,
3207        framerate_n: *mut c_int,
3208        framerate_d: *mut c_int,
3209    ) -> gboolean;
3210    pub fn ges_clip_asset_get_supported_formats(self_: *mut GESClipAsset) -> GESTrackType;
3211    pub fn ges_clip_asset_set_supported_formats(
3212        self_: *mut GESClipAsset,
3213        supportedformats: GESTrackType,
3214    );
3215
3216    //=========================================================================
3217    // GESCommandLineFormatter
3218    //=========================================================================
3219    pub fn ges_command_line_formatter_get_type() -> GType;
3220    pub fn ges_command_line_formatter_get_help(
3221        nargs: c_int,
3222        commands: *mut *mut c_char,
3223    ) -> *mut c_char;
3224    pub fn ges_command_line_formatter_get_timeline_uri(timeline: *mut GESTimeline) -> *mut c_char;
3225
3226    //=========================================================================
3227    // GESContainer
3228    //=========================================================================
3229    pub fn ges_container_get_type() -> GType;
3230    pub fn ges_container_group(containers: *mut glib::GList) -> *mut GESContainer;
3231    pub fn ges_container_add(
3232        container: *mut GESContainer,
3233        child: *mut GESTimelineElement,
3234    ) -> gboolean;
3235    pub fn ges_container_edit(
3236        container: *mut GESContainer,
3237        layers: *mut glib::GList,
3238        new_layer_priority: c_int,
3239        mode: GESEditMode,
3240        edge: GESEdge,
3241        position: u64,
3242    ) -> gboolean;
3243    pub fn ges_container_get_children(
3244        container: *mut GESContainer,
3245        recursive: gboolean,
3246    ) -> *mut glib::GList;
3247    pub fn ges_container_remove(
3248        container: *mut GESContainer,
3249        child: *mut GESTimelineElement,
3250    ) -> gboolean;
3251    pub fn ges_container_ungroup(
3252        container: *mut GESContainer,
3253        recursive: gboolean,
3254    ) -> *mut glib::GList;
3255
3256    //=========================================================================
3257    // GESDiscovererManager
3258    //=========================================================================
3259    #[cfg(feature = "v1_24")]
3260    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
3261    pub fn ges_discoverer_manager_get_type() -> GType;
3262    #[cfg(feature = "v1_24")]
3263    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
3264    pub fn ges_discoverer_manager_get_default() -> *mut GESDiscovererManager;
3265    #[cfg(feature = "v1_24")]
3266    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
3267    pub fn ges_discoverer_manager_get_timeout(
3268        self_: *mut GESDiscovererManager,
3269    ) -> gst::GstClockTime;
3270    #[cfg(feature = "v1_24")]
3271    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
3272    pub fn ges_discoverer_manager_get_use_cache(self_: *mut GESDiscovererManager) -> gboolean;
3273    #[cfg(feature = "v1_24")]
3274    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
3275    pub fn ges_discoverer_manager_set_timeout(
3276        self_: *mut GESDiscovererManager,
3277        timeout: gst::GstClockTime,
3278    );
3279    #[cfg(feature = "v1_24")]
3280    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
3281    pub fn ges_discoverer_manager_set_use_cache(
3282        self_: *mut GESDiscovererManager,
3283        use_cache: gboolean,
3284    );
3285
3286    //=========================================================================
3287    // GESEffect
3288    //=========================================================================
3289    pub fn ges_effect_get_type() -> GType;
3290    pub fn ges_effect_new(bin_description: *const c_char) -> *mut GESEffect;
3291
3292    //=========================================================================
3293    // GESEffectAsset
3294    //=========================================================================
3295    pub fn ges_effect_asset_get_type() -> GType;
3296
3297    //=========================================================================
3298    // GESEffectClip
3299    //=========================================================================
3300    pub fn ges_effect_clip_get_type() -> GType;
3301    pub fn ges_effect_clip_new(
3302        video_bin_description: *const c_char,
3303        audio_bin_description: *const c_char,
3304    ) -> *mut GESEffectClip;
3305
3306    //=========================================================================
3307    // GESFormatter
3308    //=========================================================================
3309    pub fn ges_formatter_get_type() -> GType;
3310    pub fn ges_formatter_can_load_uri(
3311        uri: *const c_char,
3312        error: *mut *mut glib::GError,
3313    ) -> gboolean;
3314    pub fn ges_formatter_can_save_uri(
3315        uri: *const c_char,
3316        error: *mut *mut glib::GError,
3317    ) -> gboolean;
3318    pub fn ges_formatter_get_default() -> *mut GESAsset;
3319    pub fn ges_formatter_load_from_uri(
3320        formatter: *mut GESFormatter,
3321        timeline: *mut GESTimeline,
3322        uri: *const c_char,
3323        error: *mut *mut glib::GError,
3324    ) -> gboolean;
3325    pub fn ges_formatter_save_to_uri(
3326        formatter: *mut GESFormatter,
3327        timeline: *mut GESTimeline,
3328        uri: *const c_char,
3329        overwrite: gboolean,
3330        error: *mut *mut glib::GError,
3331    ) -> gboolean;
3332
3333    //=========================================================================
3334    // GESGroup
3335    //=========================================================================
3336    pub fn ges_group_get_type() -> GType;
3337    pub fn ges_group_new() -> *mut GESGroup;
3338
3339    //=========================================================================
3340    // GESImageSource
3341    //=========================================================================
3342    pub fn ges_image_source_get_type() -> GType;
3343
3344    //=========================================================================
3345    // GESLayer
3346    //=========================================================================
3347    pub fn ges_layer_get_type() -> GType;
3348    pub fn ges_layer_new() -> *mut GESLayer;
3349    pub fn ges_layer_add_asset(
3350        layer: *mut GESLayer,
3351        asset: *mut GESAsset,
3352        start: gst::GstClockTime,
3353        inpoint: gst::GstClockTime,
3354        duration: gst::GstClockTime,
3355        track_types: GESTrackType,
3356    ) -> *mut GESClip;
3357    #[cfg(feature = "v1_18")]
3358    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3359    pub fn ges_layer_add_asset_full(
3360        layer: *mut GESLayer,
3361        asset: *mut GESAsset,
3362        start: gst::GstClockTime,
3363        inpoint: gst::GstClockTime,
3364        duration: gst::GstClockTime,
3365        track_types: GESTrackType,
3366        error: *mut *mut glib::GError,
3367    ) -> *mut GESClip;
3368    pub fn ges_layer_add_clip(layer: *mut GESLayer, clip: *mut GESClip) -> gboolean;
3369    #[cfg(feature = "v1_18")]
3370    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3371    pub fn ges_layer_add_clip_full(
3372        layer: *mut GESLayer,
3373        clip: *mut GESClip,
3374        error: *mut *mut glib::GError,
3375    ) -> gboolean;
3376    #[cfg(feature = "v1_18")]
3377    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3378    pub fn ges_layer_get_active_for_track(layer: *mut GESLayer, track: *mut GESTrack) -> gboolean;
3379    pub fn ges_layer_get_auto_transition(layer: *mut GESLayer) -> gboolean;
3380    pub fn ges_layer_get_clips(layer: *mut GESLayer) -> *mut glib::GList;
3381    pub fn ges_layer_get_clips_in_interval(
3382        layer: *mut GESLayer,
3383        start: gst::GstClockTime,
3384        end: gst::GstClockTime,
3385    ) -> *mut glib::GList;
3386    pub fn ges_layer_get_duration(layer: *mut GESLayer) -> gst::GstClockTime;
3387    pub fn ges_layer_get_priority(layer: *mut GESLayer) -> c_uint;
3388    pub fn ges_layer_get_timeline(layer: *mut GESLayer) -> *mut GESTimeline;
3389    pub fn ges_layer_is_empty(layer: *mut GESLayer) -> gboolean;
3390    pub fn ges_layer_remove_clip(layer: *mut GESLayer, clip: *mut GESClip) -> gboolean;
3391    #[cfg(feature = "v1_18")]
3392    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3393    pub fn ges_layer_set_active_for_tracks(
3394        layer: *mut GESLayer,
3395        active: gboolean,
3396        tracks: *mut glib::GList,
3397    ) -> gboolean;
3398    pub fn ges_layer_set_auto_transition(layer: *mut GESLayer, auto_transition: gboolean);
3399    pub fn ges_layer_set_priority(layer: *mut GESLayer, priority: c_uint);
3400    pub fn ges_layer_set_timeline(layer: *mut GESLayer, timeline: *mut GESTimeline);
3401
3402    //=========================================================================
3403    // GESMarker
3404    //=========================================================================
3405    #[cfg(feature = "v1_18")]
3406    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3407    pub fn ges_marker_get_type() -> GType;
3408
3409    //=========================================================================
3410    // GESMarkerList
3411    //=========================================================================
3412    #[cfg(feature = "v1_18")]
3413    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3414    pub fn ges_marker_list_get_type() -> GType;
3415    #[cfg(feature = "v1_18")]
3416    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3417    pub fn ges_marker_list_new() -> *mut GESMarkerList;
3418    #[cfg(feature = "v1_18")]
3419    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3420    pub fn ges_marker_list_add(
3421        list: *mut GESMarkerList,
3422        position: gst::GstClockTime,
3423    ) -> *mut GESMarker;
3424    #[cfg(feature = "v1_18")]
3425    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3426    pub fn ges_marker_list_get_markers(list: *mut GESMarkerList) -> *mut glib::GList;
3427    #[cfg(feature = "v1_18")]
3428    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3429    pub fn ges_marker_list_move(
3430        list: *mut GESMarkerList,
3431        marker: *mut GESMarker,
3432        position: gst::GstClockTime,
3433    ) -> gboolean;
3434    #[cfg(feature = "v1_18")]
3435    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3436    pub fn ges_marker_list_remove(list: *mut GESMarkerList, marker: *mut GESMarker) -> gboolean;
3437    #[cfg(feature = "v1_18")]
3438    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3439    pub fn ges_marker_list_size(list: *mut GESMarkerList) -> c_uint;
3440
3441    //=========================================================================
3442    // GESMultiFileSource
3443    //=========================================================================
3444    pub fn ges_multi_file_source_get_type() -> GType;
3445    pub fn ges_multi_file_source_new(uri: *mut c_char) -> *mut GESMultiFileSource;
3446
3447    //=========================================================================
3448    // GESOperation
3449    //=========================================================================
3450    pub fn ges_operation_get_type() -> GType;
3451
3452    //=========================================================================
3453    // GESOperationClip
3454    //=========================================================================
3455    pub fn ges_operation_clip_get_type() -> GType;
3456
3457    //=========================================================================
3458    // GESOverlayClip
3459    //=========================================================================
3460    pub fn ges_overlay_clip_get_type() -> GType;
3461
3462    //=========================================================================
3463    // GESPipeline
3464    //=========================================================================
3465    pub fn ges_pipeline_get_type() -> GType;
3466    pub fn ges_pipeline_new() -> *mut GESPipeline;
3467    pub fn ges_pipeline_get_mode(pipeline: *mut GESPipeline) -> GESPipelineFlags;
3468    pub fn ges_pipeline_get_thumbnail(
3469        self_: *mut GESPipeline,
3470        caps: *mut gst::GstCaps,
3471    ) -> *mut gst::GstSample;
3472    pub fn ges_pipeline_get_thumbnail_rgb24(
3473        self_: *mut GESPipeline,
3474        width: c_int,
3475        height: c_int,
3476    ) -> *mut gst::GstSample;
3477    pub fn ges_pipeline_preview_get_audio_sink(self_: *mut GESPipeline) -> *mut gst::GstElement;
3478    pub fn ges_pipeline_preview_get_video_sink(self_: *mut GESPipeline) -> *mut gst::GstElement;
3479    pub fn ges_pipeline_preview_set_audio_sink(self_: *mut GESPipeline, sink: *mut gst::GstElement);
3480    pub fn ges_pipeline_preview_set_video_sink(self_: *mut GESPipeline, sink: *mut gst::GstElement);
3481    pub fn ges_pipeline_save_thumbnail(
3482        self_: *mut GESPipeline,
3483        width: c_int,
3484        height: c_int,
3485        format: *const c_char,
3486        location: *const c_char,
3487        error: *mut *mut glib::GError,
3488    ) -> gboolean;
3489    pub fn ges_pipeline_set_mode(pipeline: *mut GESPipeline, mode: GESPipelineFlags) -> gboolean;
3490    pub fn ges_pipeline_set_render_settings(
3491        pipeline: *mut GESPipeline,
3492        output_uri: *const c_char,
3493        profile: *mut gst_pbutils::GstEncodingProfile,
3494    ) -> gboolean;
3495    pub fn ges_pipeline_set_timeline(
3496        pipeline: *mut GESPipeline,
3497        timeline: *mut GESTimeline,
3498    ) -> gboolean;
3499
3500    //=========================================================================
3501    // GESPitiviFormatter
3502    //=========================================================================
3503
3504    //=========================================================================
3505    // GESProject
3506    //=========================================================================
3507    pub fn ges_project_get_type() -> GType;
3508    pub fn ges_project_new(uri: *const c_char) -> *mut GESProject;
3509    pub fn ges_project_add_asset(project: *mut GESProject, asset: *mut GESAsset) -> gboolean;
3510    pub fn ges_project_add_encoding_profile(
3511        project: *mut GESProject,
3512        profile: *mut gst_pbutils::GstEncodingProfile,
3513    ) -> gboolean;
3514    #[cfg(feature = "v1_18")]
3515    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3516    pub fn ges_project_add_formatter(project: *mut GESProject, formatter: *mut GESFormatter);
3517    pub fn ges_project_create_asset(
3518        project: *mut GESProject,
3519        id: *const c_char,
3520        extractable_type: GType,
3521    ) -> gboolean;
3522    pub fn ges_project_create_asset_sync(
3523        project: *mut GESProject,
3524        id: *const c_char,
3525        extractable_type: GType,
3526        error: *mut *mut glib::GError,
3527    ) -> *mut GESAsset;
3528    pub fn ges_project_get_asset(
3529        project: *mut GESProject,
3530        id: *const c_char,
3531        extractable_type: GType,
3532    ) -> *mut GESAsset;
3533    pub fn ges_project_get_loading_assets(project: *mut GESProject) -> *mut glib::GList;
3534    pub fn ges_project_get_uri(project: *mut GESProject) -> *mut c_char;
3535    pub fn ges_project_list_assets(project: *mut GESProject, filter: GType) -> *mut glib::GList;
3536    pub fn ges_project_list_encoding_profiles(project: *mut GESProject) -> *const glib::GList;
3537    pub fn ges_project_load(
3538        project: *mut GESProject,
3539        timeline: *mut GESTimeline,
3540        error: *mut *mut glib::GError,
3541    ) -> gboolean;
3542    pub fn ges_project_remove_asset(project: *mut GESProject, asset: *mut GESAsset) -> gboolean;
3543    pub fn ges_project_save(
3544        project: *mut GESProject,
3545        timeline: *mut GESTimeline,
3546        uri: *const c_char,
3547        formatter_asset: *mut GESAsset,
3548        overwrite: gboolean,
3549        error: *mut *mut glib::GError,
3550    ) -> gboolean;
3551
3552    //=========================================================================
3553    // GESSource
3554    //=========================================================================
3555    pub fn ges_source_get_type() -> GType;
3556
3557    //=========================================================================
3558    // GESSourceClip
3559    //=========================================================================
3560    pub fn ges_source_clip_get_type() -> GType;
3561    #[cfg(feature = "v1_18")]
3562    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3563    pub fn ges_source_clip_new_time_overlay() -> *mut GESSourceClip;
3564
3565    //=========================================================================
3566    // GESSourceClipAsset
3567    //=========================================================================
3568    #[cfg(feature = "v1_18")]
3569    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3570    pub fn ges_source_clip_asset_get_type() -> GType;
3571
3572    //=========================================================================
3573    // GESTestClip
3574    //=========================================================================
3575    pub fn ges_test_clip_get_type() -> GType;
3576    pub fn ges_test_clip_new() -> *mut GESTestClip;
3577    pub fn ges_test_clip_new_for_nick(nick: *mut c_char) -> *mut GESTestClip;
3578    pub fn ges_test_clip_get_frequency(self_: *mut GESTestClip) -> c_double;
3579    pub fn ges_test_clip_get_volume(self_: *mut GESTestClip) -> c_double;
3580    pub fn ges_test_clip_get_vpattern(self_: *mut GESTestClip) -> GESVideoTestPattern;
3581    pub fn ges_test_clip_is_muted(self_: *mut GESTestClip) -> gboolean;
3582    pub fn ges_test_clip_set_frequency(self_: *mut GESTestClip, freq: c_double);
3583    pub fn ges_test_clip_set_mute(self_: *mut GESTestClip, mute: gboolean);
3584    pub fn ges_test_clip_set_volume(self_: *mut GESTestClip, volume: c_double);
3585    pub fn ges_test_clip_set_vpattern(self_: *mut GESTestClip, vpattern: GESVideoTestPattern);
3586
3587    //=========================================================================
3588    // GESTextOverlay
3589    //=========================================================================
3590    pub fn ges_text_overlay_get_type() -> GType;
3591    pub fn ges_text_overlay_new() -> *mut GESTextOverlay;
3592    pub fn ges_text_overlay_get_color(self_: *mut GESTextOverlay) -> u32;
3593    pub fn ges_text_overlay_get_font_desc(self_: *mut GESTextOverlay) -> *const c_char;
3594    pub fn ges_text_overlay_get_halignment(self_: *mut GESTextOverlay) -> GESTextHAlign;
3595    pub fn ges_text_overlay_get_text(self_: *mut GESTextOverlay) -> *const c_char;
3596    pub fn ges_text_overlay_get_valignment(self_: *mut GESTextOverlay) -> GESTextVAlign;
3597    pub fn ges_text_overlay_get_xpos(self_: *mut GESTextOverlay) -> c_double;
3598    pub fn ges_text_overlay_get_ypos(self_: *mut GESTextOverlay) -> c_double;
3599    pub fn ges_text_overlay_set_color(self_: *mut GESTextOverlay, color: u32);
3600    pub fn ges_text_overlay_set_font_desc(self_: *mut GESTextOverlay, font_desc: *const c_char);
3601    pub fn ges_text_overlay_set_halignment(self_: *mut GESTextOverlay, halign: GESTextHAlign);
3602    pub fn ges_text_overlay_set_text(self_: *mut GESTextOverlay, text: *const c_char);
3603    pub fn ges_text_overlay_set_valignment(self_: *mut GESTextOverlay, valign: GESTextVAlign);
3604    pub fn ges_text_overlay_set_xpos(self_: *mut GESTextOverlay, position: c_double);
3605    pub fn ges_text_overlay_set_ypos(self_: *mut GESTextOverlay, position: c_double);
3606
3607    //=========================================================================
3608    // GESTextOverlayClip
3609    //=========================================================================
3610    pub fn ges_text_overlay_clip_get_type() -> GType;
3611    pub fn ges_text_overlay_clip_new() -> *mut GESTextOverlayClip;
3612    pub fn ges_text_overlay_clip_get_color(self_: *mut GESTextOverlayClip) -> u32;
3613    pub fn ges_text_overlay_clip_get_font_desc(self_: *mut GESTextOverlayClip) -> *const c_char;
3614    pub fn ges_text_overlay_clip_get_halignment(self_: *mut GESTextOverlayClip) -> GESTextHAlign;
3615    pub fn ges_text_overlay_clip_get_text(self_: *mut GESTextOverlayClip) -> *const c_char;
3616    pub fn ges_text_overlay_clip_get_valignment(self_: *mut GESTextOverlayClip) -> GESTextVAlign;
3617    pub fn ges_text_overlay_clip_get_xpos(self_: *mut GESTextOverlayClip) -> c_double;
3618    pub fn ges_text_overlay_clip_get_ypos(self_: *mut GESTextOverlayClip) -> c_double;
3619    pub fn ges_text_overlay_clip_set_color(self_: *mut GESTextOverlayClip, color: u32);
3620    pub fn ges_text_overlay_clip_set_font_desc(
3621        self_: *mut GESTextOverlayClip,
3622        font_desc: *const c_char,
3623    );
3624    pub fn ges_text_overlay_clip_set_halign(self_: *mut GESTextOverlayClip, halign: GESTextHAlign);
3625    pub fn ges_text_overlay_clip_set_text(self_: *mut GESTextOverlayClip, text: *const c_char);
3626    pub fn ges_text_overlay_clip_set_valign(self_: *mut GESTextOverlayClip, valign: GESTextVAlign);
3627    pub fn ges_text_overlay_clip_set_xpos(self_: *mut GESTextOverlayClip, position: c_double);
3628    pub fn ges_text_overlay_clip_set_ypos(self_: *mut GESTextOverlayClip, position: c_double);
3629
3630    //=========================================================================
3631    // GESTimeline
3632    //=========================================================================
3633    pub fn ges_timeline_get_type() -> GType;
3634    pub fn ges_timeline_new() -> *mut GESTimeline;
3635    pub fn ges_timeline_new_audio_video() -> *mut GESTimeline;
3636    pub fn ges_timeline_new_from_uri(
3637        uri: *const c_char,
3638        error: *mut *mut glib::GError,
3639    ) -> *mut GESTimeline;
3640    pub fn ges_timeline_add_layer(timeline: *mut GESTimeline, layer: *mut GESLayer) -> gboolean;
3641    pub fn ges_timeline_add_track(timeline: *mut GESTimeline, track: *mut GESTrack) -> gboolean;
3642    pub fn ges_timeline_append_layer(timeline: *mut GESTimeline) -> *mut GESLayer;
3643    pub fn ges_timeline_commit(timeline: *mut GESTimeline) -> gboolean;
3644    pub fn ges_timeline_commit_sync(timeline: *mut GESTimeline) -> gboolean;
3645    #[cfg(feature = "v1_22")]
3646    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
3647    pub fn ges_timeline_disable_edit_apis(self_: *mut GESTimeline, disable_edit_apis: gboolean);
3648    #[cfg(feature = "v1_20")]
3649    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3650    pub fn ges_timeline_freeze_commit(timeline: *mut GESTimeline);
3651    pub fn ges_timeline_get_auto_transition(timeline: *mut GESTimeline) -> gboolean;
3652    pub fn ges_timeline_get_duration(timeline: *mut GESTimeline) -> gst::GstClockTime;
3653    #[cfg(feature = "v1_22")]
3654    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
3655    pub fn ges_timeline_get_edit_apis_disabled(self_: *mut GESTimeline) -> gboolean;
3656    pub fn ges_timeline_get_element(
3657        timeline: *mut GESTimeline,
3658        name: *const c_char,
3659    ) -> *mut GESTimelineElement;
3660    #[cfg(feature = "v1_18")]
3661    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3662    pub fn ges_timeline_get_frame_at(
3663        self_: *mut GESTimeline,
3664        timestamp: gst::GstClockTime,
3665    ) -> GESFrameNumber;
3666    #[cfg(feature = "v1_18")]
3667    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3668    pub fn ges_timeline_get_frame_time(
3669        self_: *mut GESTimeline,
3670        frame_number: GESFrameNumber,
3671    ) -> gst::GstClockTime;
3672    pub fn ges_timeline_get_groups(timeline: *mut GESTimeline) -> *mut glib::GList;
3673    pub fn ges_timeline_get_layer(timeline: *mut GESTimeline, priority: c_uint) -> *mut GESLayer;
3674    pub fn ges_timeline_get_layers(timeline: *mut GESTimeline) -> *mut glib::GList;
3675    pub fn ges_timeline_get_pad_for_track(
3676        timeline: *mut GESTimeline,
3677        track: *mut GESTrack,
3678    ) -> *mut gst::GstPad;
3679    pub fn ges_timeline_get_snapping_distance(timeline: *mut GESTimeline) -> gst::GstClockTime;
3680    pub fn ges_timeline_get_track_for_pad(
3681        timeline: *mut GESTimeline,
3682        pad: *mut gst::GstPad,
3683    ) -> *mut GESTrack;
3684    pub fn ges_timeline_get_tracks(timeline: *mut GESTimeline) -> *mut glib::GList;
3685    pub fn ges_timeline_is_empty(timeline: *mut GESTimeline) -> gboolean;
3686    pub fn ges_timeline_load_from_uri(
3687        timeline: *mut GESTimeline,
3688        uri: *const c_char,
3689        error: *mut *mut glib::GError,
3690    ) -> gboolean;
3691    #[cfg(feature = "v1_16")]
3692    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3693    pub fn ges_timeline_move_layer(
3694        timeline: *mut GESTimeline,
3695        layer: *mut GESLayer,
3696        new_layer_priority: c_uint,
3697    ) -> gboolean;
3698    pub fn ges_timeline_paste_element(
3699        timeline: *mut GESTimeline,
3700        element: *mut GESTimelineElement,
3701        position: gst::GstClockTime,
3702        layer_priority: c_int,
3703    ) -> *mut GESTimelineElement;
3704    pub fn ges_timeline_remove_layer(timeline: *mut GESTimeline, layer: *mut GESLayer) -> gboolean;
3705    pub fn ges_timeline_remove_track(timeline: *mut GESTimeline, track: *mut GESTrack) -> gboolean;
3706    pub fn ges_timeline_save_to_uri(
3707        timeline: *mut GESTimeline,
3708        uri: *const c_char,
3709        formatter_asset: *mut GESAsset,
3710        overwrite: gboolean,
3711        error: *mut *mut glib::GError,
3712    ) -> gboolean;
3713    pub fn ges_timeline_set_auto_transition(timeline: *mut GESTimeline, auto_transition: gboolean);
3714    pub fn ges_timeline_set_snapping_distance(
3715        timeline: *mut GESTimeline,
3716        snapping_distance: gst::GstClockTime,
3717    );
3718    #[cfg(feature = "v1_20")]
3719    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3720    pub fn ges_timeline_thaw_commit(timeline: *mut GESTimeline);
3721
3722    //=========================================================================
3723    // GESTimelineElement
3724    //=========================================================================
3725    pub fn ges_timeline_element_get_type() -> GType;
3726    pub fn ges_timeline_element_add_child_property(
3727        self_: *mut GESTimelineElement,
3728        pspec: *mut gobject::GParamSpec,
3729        child: *mut gobject::GObject,
3730    ) -> gboolean;
3731    pub fn ges_timeline_element_copy(
3732        self_: *mut GESTimelineElement,
3733        deep: gboolean,
3734    ) -> *mut GESTimelineElement;
3735    #[cfg(feature = "v1_18")]
3736    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3737    pub fn ges_timeline_element_edit(
3738        self_: *mut GESTimelineElement,
3739        layers: *mut glib::GList,
3740        new_layer_priority: i64,
3741        mode: GESEditMode,
3742        edge: GESEdge,
3743        position: u64,
3744    ) -> gboolean;
3745    #[cfg(feature = "v1_18")]
3746    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3747    pub fn ges_timeline_element_edit_full(
3748        self_: *mut GESTimelineElement,
3749        new_layer_priority: i64,
3750        mode: GESEditMode,
3751        edge: GESEdge,
3752        position: u64,
3753        error: *mut *mut glib::GError,
3754    ) -> gboolean;
3755    pub fn ges_timeline_element_get_child_properties(
3756        self_: *mut GESTimelineElement,
3757        first_property_name: *const c_char,
3758        ...
3759    );
3760    pub fn ges_timeline_element_get_child_property(
3761        self_: *mut GESTimelineElement,
3762        property_name: *const c_char,
3763        value: *mut gobject::GValue,
3764    ) -> gboolean;
3765    pub fn ges_timeline_element_get_child_property_by_pspec(
3766        self_: *mut GESTimelineElement,
3767        pspec: *mut gobject::GParamSpec,
3768        value: *mut gobject::GValue,
3769    );
3770    //pub fn ges_timeline_element_get_child_property_valist(self_: *mut GESTimelineElement, first_property_name: *const c_char, var_args: /*Unimplemented*/va_list);
3771    pub fn ges_timeline_element_get_duration(self_: *mut GESTimelineElement) -> gst::GstClockTime;
3772    pub fn ges_timeline_element_get_inpoint(self_: *mut GESTimelineElement) -> gst::GstClockTime;
3773    #[cfg(feature = "v1_16")]
3774    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3775    pub fn ges_timeline_element_get_layer_priority(self_: *mut GESTimelineElement) -> u32;
3776    pub fn ges_timeline_element_get_max_duration(
3777        self_: *mut GESTimelineElement,
3778    ) -> gst::GstClockTime;
3779    pub fn ges_timeline_element_get_name(self_: *mut GESTimelineElement) -> *mut c_char;
3780    #[cfg(feature = "v1_18")]
3781    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3782    pub fn ges_timeline_element_get_natural_framerate(
3783        self_: *mut GESTimelineElement,
3784        framerate_n: *mut c_int,
3785        framerate_d: *mut c_int,
3786    ) -> gboolean;
3787    pub fn ges_timeline_element_get_parent(
3788        self_: *mut GESTimelineElement,
3789    ) -> *mut GESTimelineElement;
3790    pub fn ges_timeline_element_get_priority(self_: *mut GESTimelineElement) -> u32;
3791    pub fn ges_timeline_element_get_start(self_: *mut GESTimelineElement) -> gst::GstClockTime;
3792    pub fn ges_timeline_element_get_timeline(self_: *mut GESTimelineElement) -> *mut GESTimeline;
3793    pub fn ges_timeline_element_get_toplevel_parent(
3794        self_: *mut GESTimelineElement,
3795    ) -> *mut GESTimelineElement;
3796    pub fn ges_timeline_element_get_track_types(self_: *mut GESTimelineElement) -> GESTrackType;
3797    pub fn ges_timeline_element_list_children_properties(
3798        self_: *mut GESTimelineElement,
3799        n_properties: *mut c_uint,
3800    ) -> *mut *mut gobject::GParamSpec;
3801    pub fn ges_timeline_element_lookup_child(
3802        self_: *mut GESTimelineElement,
3803        prop_name: *const c_char,
3804        child: *mut *mut gobject::GObject,
3805        pspec: *mut *mut gobject::GParamSpec,
3806    ) -> gboolean;
3807    pub fn ges_timeline_element_paste(
3808        self_: *mut GESTimelineElement,
3809        paste_position: gst::GstClockTime,
3810    ) -> *mut GESTimelineElement;
3811    pub fn ges_timeline_element_remove_child_property(
3812        self_: *mut GESTimelineElement,
3813        pspec: *mut gobject::GParamSpec,
3814    ) -> gboolean;
3815    pub fn ges_timeline_element_ripple(
3816        self_: *mut GESTimelineElement,
3817        start: gst::GstClockTime,
3818    ) -> gboolean;
3819    pub fn ges_timeline_element_ripple_end(
3820        self_: *mut GESTimelineElement,
3821        end: gst::GstClockTime,
3822    ) -> gboolean;
3823    pub fn ges_timeline_element_roll_end(
3824        self_: *mut GESTimelineElement,
3825        end: gst::GstClockTime,
3826    ) -> gboolean;
3827    pub fn ges_timeline_element_roll_start(
3828        self_: *mut GESTimelineElement,
3829        start: gst::GstClockTime,
3830    ) -> gboolean;
3831    pub fn ges_timeline_element_set_child_properties(
3832        self_: *mut GESTimelineElement,
3833        first_property_name: *const c_char,
3834        ...
3835    );
3836    pub fn ges_timeline_element_set_child_property(
3837        self_: *mut GESTimelineElement,
3838        property_name: *const c_char,
3839        value: *const gobject::GValue,
3840    ) -> gboolean;
3841    pub fn ges_timeline_element_set_child_property_by_pspec(
3842        self_: *mut GESTimelineElement,
3843        pspec: *mut gobject::GParamSpec,
3844        value: *const gobject::GValue,
3845    );
3846    #[cfg(feature = "v1_18")]
3847    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3848    pub fn ges_timeline_element_set_child_property_full(
3849        self_: *mut GESTimelineElement,
3850        property_name: *const c_char,
3851        value: *const gobject::GValue,
3852        error: *mut *mut glib::GError,
3853    ) -> gboolean;
3854    //pub fn ges_timeline_element_set_child_property_valist(self_: *mut GESTimelineElement, first_property_name: *const c_char, var_args: /*Unimplemented*/va_list);
3855    pub fn ges_timeline_element_set_duration(
3856        self_: *mut GESTimelineElement,
3857        duration: gst::GstClockTime,
3858    ) -> gboolean;
3859    pub fn ges_timeline_element_set_inpoint(
3860        self_: *mut GESTimelineElement,
3861        inpoint: gst::GstClockTime,
3862    ) -> gboolean;
3863    pub fn ges_timeline_element_set_max_duration(
3864        self_: *mut GESTimelineElement,
3865        maxduration: gst::GstClockTime,
3866    ) -> gboolean;
3867    pub fn ges_timeline_element_set_name(
3868        self_: *mut GESTimelineElement,
3869        name: *const c_char,
3870    ) -> gboolean;
3871    pub fn ges_timeline_element_set_parent(
3872        self_: *mut GESTimelineElement,
3873        parent: *mut GESTimelineElement,
3874    ) -> gboolean;
3875    pub fn ges_timeline_element_set_priority(
3876        self_: *mut GESTimelineElement,
3877        priority: u32,
3878    ) -> gboolean;
3879    pub fn ges_timeline_element_set_start(
3880        self_: *mut GESTimelineElement,
3881        start: gst::GstClockTime,
3882    ) -> gboolean;
3883    pub fn ges_timeline_element_set_timeline(
3884        self_: *mut GESTimelineElement,
3885        timeline: *mut GESTimeline,
3886    ) -> gboolean;
3887    pub fn ges_timeline_element_trim(
3888        self_: *mut GESTimelineElement,
3889        start: gst::GstClockTime,
3890    ) -> gboolean;
3891
3892    //=========================================================================
3893    // GESTitleClip
3894    //=========================================================================
3895    pub fn ges_title_clip_get_type() -> GType;
3896    pub fn ges_title_clip_new() -> *mut GESTitleClip;
3897    pub fn ges_title_clip_get_background_color(self_: *mut GESTitleClip) -> u32;
3898    pub fn ges_title_clip_get_font_desc(self_: *mut GESTitleClip) -> *const c_char;
3899    pub fn ges_title_clip_get_halignment(self_: *mut GESTitleClip) -> GESTextHAlign;
3900    pub fn ges_title_clip_get_text(self_: *mut GESTitleClip) -> *const c_char;
3901    pub fn ges_title_clip_get_text_color(self_: *mut GESTitleClip) -> u32;
3902    pub fn ges_title_clip_get_valignment(self_: *mut GESTitleClip) -> GESTextVAlign;
3903    pub fn ges_title_clip_get_xpos(self_: *mut GESTitleClip) -> c_double;
3904    pub fn ges_title_clip_get_ypos(self_: *mut GESTitleClip) -> c_double;
3905    pub fn ges_title_clip_set_background(self_: *mut GESTitleClip, background: u32);
3906    pub fn ges_title_clip_set_color(self_: *mut GESTitleClip, color: u32);
3907    pub fn ges_title_clip_set_font_desc(self_: *mut GESTitleClip, font_desc: *const c_char);
3908    pub fn ges_title_clip_set_halignment(self_: *mut GESTitleClip, halign: GESTextHAlign);
3909    pub fn ges_title_clip_set_text(self_: *mut GESTitleClip, text: *const c_char);
3910    pub fn ges_title_clip_set_valignment(self_: *mut GESTitleClip, valign: GESTextVAlign);
3911    pub fn ges_title_clip_set_xpos(self_: *mut GESTitleClip, position: c_double);
3912    pub fn ges_title_clip_set_ypos(self_: *mut GESTitleClip, position: c_double);
3913
3914    //=========================================================================
3915    // GESTitleSource
3916    //=========================================================================
3917    pub fn ges_title_source_get_type() -> GType;
3918    pub fn ges_title_source_get_background_color(source: *mut GESTitleSource) -> u32;
3919    pub fn ges_title_source_get_font_desc(source: *mut GESTitleSource) -> *const c_char;
3920    pub fn ges_title_source_get_halignment(source: *mut GESTitleSource) -> GESTextHAlign;
3921    pub fn ges_title_source_get_text(source: *mut GESTitleSource) -> *const c_char;
3922    pub fn ges_title_source_get_text_color(source: *mut GESTitleSource) -> u32;
3923    pub fn ges_title_source_get_valignment(source: *mut GESTitleSource) -> GESTextVAlign;
3924    pub fn ges_title_source_get_xpos(source: *mut GESTitleSource) -> c_double;
3925    pub fn ges_title_source_get_ypos(source: *mut GESTitleSource) -> c_double;
3926    pub fn ges_title_source_set_background_color(self_: *mut GESTitleSource, color: u32);
3927    pub fn ges_title_source_set_font_desc(self_: *mut GESTitleSource, font_desc: *const c_char);
3928    pub fn ges_title_source_set_halignment(self_: *mut GESTitleSource, halign: GESTextHAlign);
3929    pub fn ges_title_source_set_text(self_: *mut GESTitleSource, text: *const c_char);
3930    pub fn ges_title_source_set_text_color(self_: *mut GESTitleSource, color: u32);
3931    pub fn ges_title_source_set_valignment(self_: *mut GESTitleSource, valign: GESTextVAlign);
3932    pub fn ges_title_source_set_xpos(self_: *mut GESTitleSource, position: c_double);
3933    pub fn ges_title_source_set_ypos(self_: *mut GESTitleSource, position: c_double);
3934
3935    //=========================================================================
3936    // GESTrack
3937    //=========================================================================
3938    pub fn ges_track_get_type() -> GType;
3939    pub fn ges_track_new(type_: GESTrackType, caps: *mut gst::GstCaps) -> *mut GESTrack;
3940    pub fn ges_track_add_element(track: *mut GESTrack, object: *mut GESTrackElement) -> gboolean;
3941    #[cfg(feature = "v1_18")]
3942    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3943    pub fn ges_track_add_element_full(
3944        track: *mut GESTrack,
3945        object: *mut GESTrackElement,
3946        error: *mut *mut glib::GError,
3947    ) -> gboolean;
3948    pub fn ges_track_commit(track: *mut GESTrack) -> gboolean;
3949    pub fn ges_track_get_caps(track: *mut GESTrack) -> *const gst::GstCaps;
3950    pub fn ges_track_get_elements(track: *mut GESTrack) -> *mut glib::GList;
3951    pub fn ges_track_get_mixing(track: *mut GESTrack) -> gboolean;
3952    #[cfg(feature = "v1_18")]
3953    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3954    pub fn ges_track_get_restriction_caps(track: *mut GESTrack) -> *mut gst::GstCaps;
3955    pub fn ges_track_get_timeline(track: *mut GESTrack) -> *const GESTimeline;
3956    pub fn ges_track_remove_element(track: *mut GESTrack, object: *mut GESTrackElement)
3957    -> gboolean;
3958    #[cfg(feature = "v1_18")]
3959    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3960    pub fn ges_track_remove_element_full(
3961        track: *mut GESTrack,
3962        object: *mut GESTrackElement,
3963        error: *mut *mut glib::GError,
3964    ) -> gboolean;
3965    pub fn ges_track_set_create_element_for_gap_func(
3966        track: *mut GESTrack,
3967        func: GESCreateElementForGapFunc,
3968    );
3969    pub fn ges_track_set_mixing(track: *mut GESTrack, mixing: gboolean);
3970    pub fn ges_track_set_restriction_caps(track: *mut GESTrack, caps: *const gst::GstCaps);
3971    pub fn ges_track_set_timeline(track: *mut GESTrack, timeline: *mut GESTimeline);
3972    pub fn ges_track_update_restriction_caps(track: *mut GESTrack, caps: *const gst::GstCaps);
3973
3974    //=========================================================================
3975    // GESTrackElement
3976    //=========================================================================
3977    pub fn ges_track_element_get_type() -> GType;
3978    pub fn ges_track_element_add_children_props(
3979        self_: *mut GESTrackElement,
3980        element: *mut gst::GstElement,
3981        wanted_categories: *mut *const c_char,
3982        blacklist: *mut *const c_char,
3983        whitelist: *mut *const c_char,
3984    );
3985    #[cfg(feature = "v1_18")]
3986    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
3987    pub fn ges_track_element_clamp_control_source(
3988        object: *mut GESTrackElement,
3989        property_name: *const c_char,
3990    );
3991    pub fn ges_track_element_edit(
3992        object: *mut GESTrackElement,
3993        layers: *mut glib::GList,
3994        mode: GESEditMode,
3995        edge: GESEdge,
3996        position: u64,
3997    ) -> gboolean;
3998    pub fn ges_track_element_get_all_control_bindings(
3999        trackelement: *mut GESTrackElement,
4000    ) -> *mut glib::GHashTable;
4001    #[cfg(feature = "v1_18")]
4002    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4003    pub fn ges_track_element_get_auto_clamp_control_sources(
4004        object: *mut GESTrackElement,
4005    ) -> gboolean;
4006    pub fn ges_track_element_get_child_properties(
4007        object: *mut GESTrackElement,
4008        first_property_name: *const c_char,
4009        ...
4010    );
4011    pub fn ges_track_element_get_child_property(
4012        object: *mut GESTrackElement,
4013        property_name: *const c_char,
4014        value: *mut gobject::GValue,
4015    ) -> gboolean;
4016    pub fn ges_track_element_get_child_property_by_pspec(
4017        object: *mut GESTrackElement,
4018        pspec: *mut gobject::GParamSpec,
4019        value: *mut gobject::GValue,
4020    );
4021    //pub fn ges_track_element_get_child_property_valist(object: *mut GESTrackElement, first_property_name: *const c_char, var_args: /*Unimplemented*/va_list);
4022    pub fn ges_track_element_get_control_binding(
4023        object: *mut GESTrackElement,
4024        property_name: *const c_char,
4025    ) -> *mut gst::GstControlBinding;
4026    pub fn ges_track_element_get_element(object: *mut GESTrackElement) -> *mut gst::GstElement;
4027    pub fn ges_track_element_get_gnlobject(object: *mut GESTrackElement) -> *mut gst::GstElement;
4028    pub fn ges_track_element_get_nleobject(object: *mut GESTrackElement) -> *mut gst::GstElement;
4029    pub fn ges_track_element_get_track(object: *mut GESTrackElement) -> *mut GESTrack;
4030    pub fn ges_track_element_get_track_type(object: *mut GESTrackElement) -> GESTrackType;
4031    #[cfg(feature = "v1_18")]
4032    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4033    pub fn ges_track_element_has_internal_source(object: *mut GESTrackElement) -> gboolean;
4034    pub fn ges_track_element_is_active(object: *mut GESTrackElement) -> gboolean;
4035    #[cfg(feature = "v1_18")]
4036    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4037    pub fn ges_track_element_is_core(object: *mut GESTrackElement) -> gboolean;
4038    pub fn ges_track_element_list_children_properties(
4039        object: *mut GESTrackElement,
4040        n_properties: *mut c_uint,
4041    ) -> *mut *mut gobject::GParamSpec;
4042    pub fn ges_track_element_lookup_child(
4043        object: *mut GESTrackElement,
4044        prop_name: *const c_char,
4045        element: *mut *mut gst::GstElement,
4046        pspec: *mut *mut gobject::GParamSpec,
4047    ) -> gboolean;
4048    pub fn ges_track_element_remove_control_binding(
4049        object: *mut GESTrackElement,
4050        property_name: *const c_char,
4051    ) -> gboolean;
4052    pub fn ges_track_element_set_active(object: *mut GESTrackElement, active: gboolean)
4053    -> gboolean;
4054    #[cfg(feature = "v1_18")]
4055    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4056    pub fn ges_track_element_set_auto_clamp_control_sources(
4057        object: *mut GESTrackElement,
4058        auto_clamp: gboolean,
4059    );
4060    pub fn ges_track_element_set_child_properties(
4061        object: *mut GESTrackElement,
4062        first_property_name: *const c_char,
4063        ...
4064    );
4065    pub fn ges_track_element_set_child_property(
4066        object: *mut GESTrackElement,
4067        property_name: *const c_char,
4068        value: *mut gobject::GValue,
4069    ) -> gboolean;
4070    pub fn ges_track_element_set_child_property_by_pspec(
4071        object: *mut GESTrackElement,
4072        pspec: *mut gobject::GParamSpec,
4073        value: *mut gobject::GValue,
4074    );
4075    //pub fn ges_track_element_set_child_property_valist(object: *mut GESTrackElement, first_property_name: *const c_char, var_args: /*Unimplemented*/va_list);
4076    pub fn ges_track_element_set_control_source(
4077        object: *mut GESTrackElement,
4078        source: *mut gst::GstControlSource,
4079        property_name: *const c_char,
4080        binding_type: *const c_char,
4081    ) -> gboolean;
4082    #[cfg(feature = "v1_18")]
4083    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4084    pub fn ges_track_element_set_has_internal_source(
4085        object: *mut GESTrackElement,
4086        has_internal_source: gboolean,
4087    ) -> gboolean;
4088    pub fn ges_track_element_set_track_type(object: *mut GESTrackElement, type_: GESTrackType);
4089
4090    //=========================================================================
4091    // GESTrackElementAsset
4092    //=========================================================================
4093    pub fn ges_track_element_asset_get_type() -> GType;
4094    #[cfg(feature = "v1_18")]
4095    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4096    pub fn ges_track_element_asset_get_natural_framerate(
4097        self_: *mut GESTrackElementAsset,
4098        framerate_n: *mut c_int,
4099        framerate_d: *mut c_int,
4100    ) -> gboolean;
4101    pub fn ges_track_element_asset_get_track_type(asset: *mut GESTrackElementAsset)
4102    -> GESTrackType;
4103    pub fn ges_track_element_asset_set_track_type(
4104        asset: *mut GESTrackElementAsset,
4105        type_: GESTrackType,
4106    );
4107
4108    //=========================================================================
4109    // GESTransition
4110    //=========================================================================
4111    pub fn ges_transition_get_type() -> GType;
4112
4113    //=========================================================================
4114    // GESTransitionClip
4115    //=========================================================================
4116    pub fn ges_transition_clip_get_type() -> GType;
4117    pub fn ges_transition_clip_new(vtype: GESVideoStandardTransitionType)
4118    -> *mut GESTransitionClip;
4119    pub fn ges_transition_clip_new_for_nick(nick: *mut c_char) -> *mut GESTransitionClip;
4120
4121    //=========================================================================
4122    // GESUriClip
4123    //=========================================================================
4124    pub fn ges_uri_clip_get_type() -> GType;
4125    pub fn ges_uri_clip_new(uri: *const c_char) -> *mut GESUriClip;
4126    pub fn ges_uri_clip_get_uri(self_: *mut GESUriClip) -> *const c_char;
4127    pub fn ges_uri_clip_is_image(self_: *mut GESUriClip) -> gboolean;
4128    pub fn ges_uri_clip_is_muted(self_: *mut GESUriClip) -> gboolean;
4129    pub fn ges_uri_clip_set_is_image(self_: *mut GESUriClip, is_image: gboolean);
4130    pub fn ges_uri_clip_set_mute(self_: *mut GESUriClip, mute: gboolean);
4131
4132    //=========================================================================
4133    // GESUriClipAsset
4134    //=========================================================================
4135    pub fn ges_uri_clip_asset_get_type() -> GType;
4136    #[cfg(feature = "v1_16")]
4137    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
4138    pub fn ges_uri_clip_asset_finish(
4139        res: *mut gio::GAsyncResult,
4140        error: *mut *mut glib::GError,
4141    ) -> *mut GESUriClipAsset;
4142    pub fn ges_uri_clip_asset_new(
4143        uri: *const c_char,
4144        cancellable: *mut gio::GCancellable,
4145        callback: gio::GAsyncReadyCallback,
4146        user_data: gpointer,
4147    );
4148    pub fn ges_uri_clip_asset_request_sync(
4149        uri: *const c_char,
4150        error: *mut *mut glib::GError,
4151    ) -> *mut GESUriClipAsset;
4152    pub fn ges_uri_clip_asset_get_duration(self_: *mut GESUriClipAsset) -> gst::GstClockTime;
4153    pub fn ges_uri_clip_asset_get_info(
4154        self_: *const GESUriClipAsset,
4155    ) -> *mut gst_pbutils::GstDiscovererInfo;
4156    #[cfg(feature = "v1_18")]
4157    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4158    pub fn ges_uri_clip_asset_get_max_duration(self_: *mut GESUriClipAsset) -> gst::GstClockTime;
4159    pub fn ges_uri_clip_asset_get_stream_assets(self_: *mut GESUriClipAsset) -> *const glib::GList;
4160    #[cfg(feature = "v1_18")]
4161    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4162    pub fn ges_uri_clip_asset_is_image(self_: *mut GESUriClipAsset) -> gboolean;
4163
4164    //=========================================================================
4165    // GESUriSourceAsset
4166    //=========================================================================
4167    pub fn ges_uri_source_asset_get_type() -> GType;
4168    pub fn ges_uri_source_asset_get_filesource_asset(
4169        asset: *mut GESUriSourceAsset,
4170    ) -> *const GESUriClipAsset;
4171    pub fn ges_uri_source_asset_get_stream_info(
4172        asset: *mut GESUriSourceAsset,
4173    ) -> *mut gst_pbutils::GstDiscovererStreamInfo;
4174    pub fn ges_uri_source_asset_get_stream_uri(asset: *mut GESUriSourceAsset) -> *const c_char;
4175    #[cfg(feature = "v1_18")]
4176    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4177    pub fn ges_uri_source_asset_is_image(asset: *mut GESUriSourceAsset) -> gboolean;
4178
4179    //=========================================================================
4180    // GESVideoSource
4181    //=========================================================================
4182    pub fn ges_video_source_get_type() -> GType;
4183    #[cfg(feature = "v1_18")]
4184    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4185    pub fn ges_video_source_get_natural_size(
4186        self_: *mut GESVideoSource,
4187        width: *mut c_int,
4188        height: *mut c_int,
4189    ) -> gboolean;
4190
4191    //=========================================================================
4192    // GESVideoTestSource
4193    //=========================================================================
4194    pub fn ges_video_test_source_get_type() -> GType;
4195    pub fn ges_video_test_source_get_pattern(
4196        source: *mut GESVideoTestSource,
4197    ) -> GESVideoTestPattern;
4198    pub fn ges_video_test_source_set_pattern(
4199        self_: *mut GESVideoTestSource,
4200        pattern: GESVideoTestPattern,
4201    );
4202
4203    //=========================================================================
4204    // GESVideoTrack
4205    //=========================================================================
4206    pub fn ges_video_track_get_type() -> GType;
4207    pub fn ges_video_track_new() -> *mut GESVideoTrack;
4208
4209    //=========================================================================
4210    // GESVideoTransition
4211    //=========================================================================
4212    pub fn ges_video_transition_get_type() -> GType;
4213    pub fn ges_video_transition_new() -> *mut GESVideoTransition;
4214    pub fn ges_video_transition_get_border(self_: *mut GESVideoTransition) -> c_int;
4215    pub fn ges_video_transition_get_transition_type(
4216        trans: *mut GESVideoTransition,
4217    ) -> GESVideoStandardTransitionType;
4218    pub fn ges_video_transition_is_inverted(self_: *mut GESVideoTransition) -> gboolean;
4219    pub fn ges_video_transition_set_border(self_: *mut GESVideoTransition, value: c_uint);
4220    pub fn ges_video_transition_set_inverted(self_: *mut GESVideoTransition, inverted: gboolean);
4221    pub fn ges_video_transition_set_transition_type(
4222        self_: *mut GESVideoTransition,
4223        type_: GESVideoStandardTransitionType,
4224    ) -> gboolean;
4225
4226    //=========================================================================
4227    // GESVideoUriSource
4228    //=========================================================================
4229    pub fn ges_video_uri_source_get_type() -> GType;
4230
4231    //=========================================================================
4232    // GESXmlFormatter
4233    //=========================================================================
4234    pub fn ges_xml_formatter_get_type() -> GType;
4235
4236    //=========================================================================
4237    // GESExtractable
4238    //=========================================================================
4239    pub fn ges_extractable_get_type() -> GType;
4240    pub fn ges_extractable_get_asset(self_: *mut GESExtractable) -> *mut GESAsset;
4241    pub fn ges_extractable_get_id(self_: *mut GESExtractable) -> *mut c_char;
4242    pub fn ges_extractable_set_asset(self_: *mut GESExtractable, asset: *mut GESAsset) -> gboolean;
4243
4244    //=========================================================================
4245    // GESMetaContainer
4246    //=========================================================================
4247    pub fn ges_meta_container_get_type() -> GType;
4248    pub fn ges_meta_container_add_metas_from_string(
4249        container: *mut GESMetaContainer,
4250        str: *const c_char,
4251    ) -> gboolean;
4252    pub fn ges_meta_container_check_meta_registered(
4253        container: *mut GESMetaContainer,
4254        meta_item: *const c_char,
4255        flags: *mut GESMetaFlag,
4256        type_: *mut GType,
4257    ) -> gboolean;
4258    pub fn ges_meta_container_foreach(
4259        container: *mut GESMetaContainer,
4260        func: GESMetaForeachFunc,
4261        user_data: gpointer,
4262    );
4263    pub fn ges_meta_container_get_boolean(
4264        container: *mut GESMetaContainer,
4265        meta_item: *const c_char,
4266        dest: *mut gboolean,
4267    ) -> gboolean;
4268    pub fn ges_meta_container_get_date(
4269        container: *mut GESMetaContainer,
4270        meta_item: *const c_char,
4271        dest: *mut *mut glib::GDate,
4272    ) -> gboolean;
4273    pub fn ges_meta_container_get_date_time(
4274        container: *mut GESMetaContainer,
4275        meta_item: *const c_char,
4276        dest: *mut *mut gst::GstDateTime,
4277    ) -> gboolean;
4278    pub fn ges_meta_container_get_double(
4279        container: *mut GESMetaContainer,
4280        meta_item: *const c_char,
4281        dest: *mut c_double,
4282    ) -> gboolean;
4283    pub fn ges_meta_container_get_float(
4284        container: *mut GESMetaContainer,
4285        meta_item: *const c_char,
4286        dest: *mut c_float,
4287    ) -> gboolean;
4288    pub fn ges_meta_container_get_int(
4289        container: *mut GESMetaContainer,
4290        meta_item: *const c_char,
4291        dest: *mut c_int,
4292    ) -> gboolean;
4293    pub fn ges_meta_container_get_int64(
4294        container: *mut GESMetaContainer,
4295        meta_item: *const c_char,
4296        dest: *mut i64,
4297    ) -> gboolean;
4298    #[cfg(feature = "v1_18")]
4299    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4300    pub fn ges_meta_container_get_marker_list(
4301        container: *mut GESMetaContainer,
4302        key: *const c_char,
4303    ) -> *mut GESMarkerList;
4304    pub fn ges_meta_container_get_meta(
4305        container: *mut GESMetaContainer,
4306        key: *const c_char,
4307    ) -> *const gobject::GValue;
4308    pub fn ges_meta_container_get_string(
4309        container: *mut GESMetaContainer,
4310        meta_item: *const c_char,
4311    ) -> *const c_char;
4312    pub fn ges_meta_container_get_uint(
4313        container: *mut GESMetaContainer,
4314        meta_item: *const c_char,
4315        dest: *mut c_uint,
4316    ) -> gboolean;
4317    pub fn ges_meta_container_get_uint64(
4318        container: *mut GESMetaContainer,
4319        meta_item: *const c_char,
4320        dest: *mut u64,
4321    ) -> gboolean;
4322    pub fn ges_meta_container_metas_to_string(container: *mut GESMetaContainer) -> *mut c_char;
4323    pub fn ges_meta_container_register_meta(
4324        container: *mut GESMetaContainer,
4325        flags: GESMetaFlag,
4326        meta_item: *const c_char,
4327        value: *const gobject::GValue,
4328    ) -> gboolean;
4329    pub fn ges_meta_container_register_meta_boolean(
4330        container: *mut GESMetaContainer,
4331        flags: GESMetaFlag,
4332        meta_item: *const c_char,
4333        value: gboolean,
4334    ) -> gboolean;
4335    pub fn ges_meta_container_register_meta_date(
4336        container: *mut GESMetaContainer,
4337        flags: GESMetaFlag,
4338        meta_item: *const c_char,
4339        value: *const glib::GDate,
4340    ) -> gboolean;
4341    pub fn ges_meta_container_register_meta_date_time(
4342        container: *mut GESMetaContainer,
4343        flags: GESMetaFlag,
4344        meta_item: *const c_char,
4345        value: *const gst::GstDateTime,
4346    ) -> gboolean;
4347    pub fn ges_meta_container_register_meta_double(
4348        container: *mut GESMetaContainer,
4349        flags: GESMetaFlag,
4350        meta_item: *const c_char,
4351        value: c_double,
4352    ) -> gboolean;
4353    pub fn ges_meta_container_register_meta_float(
4354        container: *mut GESMetaContainer,
4355        flags: GESMetaFlag,
4356        meta_item: *const c_char,
4357        value: c_float,
4358    ) -> gboolean;
4359    pub fn ges_meta_container_register_meta_int(
4360        container: *mut GESMetaContainer,
4361        flags: GESMetaFlag,
4362        meta_item: *const c_char,
4363        value: c_int,
4364    ) -> gboolean;
4365    pub fn ges_meta_container_register_meta_int64(
4366        container: *mut GESMetaContainer,
4367        flags: GESMetaFlag,
4368        meta_item: *const c_char,
4369        value: i64,
4370    ) -> gboolean;
4371    pub fn ges_meta_container_register_meta_string(
4372        container: *mut GESMetaContainer,
4373        flags: GESMetaFlag,
4374        meta_item: *const c_char,
4375        value: *const c_char,
4376    ) -> gboolean;
4377    pub fn ges_meta_container_register_meta_uint(
4378        container: *mut GESMetaContainer,
4379        flags: GESMetaFlag,
4380        meta_item: *const c_char,
4381        value: c_uint,
4382    ) -> gboolean;
4383    pub fn ges_meta_container_register_meta_uint64(
4384        container: *mut GESMetaContainer,
4385        flags: GESMetaFlag,
4386        meta_item: *const c_char,
4387        value: u64,
4388    ) -> gboolean;
4389    #[cfg(feature = "v1_18")]
4390    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4391    pub fn ges_meta_container_register_static_meta(
4392        container: *mut GESMetaContainer,
4393        flags: GESMetaFlag,
4394        meta_item: *const c_char,
4395        type_: GType,
4396    ) -> gboolean;
4397    pub fn ges_meta_container_set_boolean(
4398        container: *mut GESMetaContainer,
4399        meta_item: *const c_char,
4400        value: gboolean,
4401    ) -> gboolean;
4402    pub fn ges_meta_container_set_date(
4403        container: *mut GESMetaContainer,
4404        meta_item: *const c_char,
4405        value: *const glib::GDate,
4406    ) -> gboolean;
4407    pub fn ges_meta_container_set_date_time(
4408        container: *mut GESMetaContainer,
4409        meta_item: *const c_char,
4410        value: *const gst::GstDateTime,
4411    ) -> gboolean;
4412    pub fn ges_meta_container_set_double(
4413        container: *mut GESMetaContainer,
4414        meta_item: *const c_char,
4415        value: c_double,
4416    ) -> gboolean;
4417    pub fn ges_meta_container_set_float(
4418        container: *mut GESMetaContainer,
4419        meta_item: *const c_char,
4420        value: c_float,
4421    ) -> gboolean;
4422    pub fn ges_meta_container_set_int(
4423        container: *mut GESMetaContainer,
4424        meta_item: *const c_char,
4425        value: c_int,
4426    ) -> gboolean;
4427    pub fn ges_meta_container_set_int64(
4428        container: *mut GESMetaContainer,
4429        meta_item: *const c_char,
4430        value: i64,
4431    ) -> gboolean;
4432    #[cfg(feature = "v1_18")]
4433    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4434    pub fn ges_meta_container_set_marker_list(
4435        container: *mut GESMetaContainer,
4436        meta_item: *const c_char,
4437        list: *const GESMarkerList,
4438    ) -> gboolean;
4439    pub fn ges_meta_container_set_meta(
4440        container: *mut GESMetaContainer,
4441        meta_item: *const c_char,
4442        value: *const gobject::GValue,
4443    ) -> gboolean;
4444    pub fn ges_meta_container_set_string(
4445        container: *mut GESMetaContainer,
4446        meta_item: *const c_char,
4447        value: *const c_char,
4448    ) -> gboolean;
4449    pub fn ges_meta_container_set_uint(
4450        container: *mut GESMetaContainer,
4451        meta_item: *const c_char,
4452        value: c_uint,
4453    ) -> gboolean;
4454    pub fn ges_meta_container_set_uint64(
4455        container: *mut GESMetaContainer,
4456        meta_item: *const c_char,
4457        value: u64,
4458    ) -> gboolean;
4459
4460    //=========================================================================
4461    // Other functions
4462    //=========================================================================
4463    pub fn ges_add_missing_uri_relocation_uri(uri: *const c_char, recurse: gboolean) -> gboolean;
4464    #[cfg(feature = "v1_24")]
4465    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
4466    pub fn ges_buffer_add_frame_composition_meta(
4467        buffer: *mut gst::GstBuffer,
4468    ) -> *mut GESFrameCompositionMeta;
4469    pub fn ges_deinit();
4470    #[cfg(feature = "v1_28")]
4471    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
4472    pub fn ges_error_quark() -> glib::GQuark;
4473    #[cfg(feature = "v1_18")]
4474    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4475    pub fn ges_find_formatter_for_uri(uri: *const c_char) -> *mut GESAsset;
4476    #[cfg(feature = "v1_24")]
4477    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
4478    pub fn ges_frame_composition_meta_api_get_type() -> GType;
4479    pub fn ges_init() -> gboolean;
4480    pub fn ges_init_check(
4481        argc: *mut c_int,
4482        argv: *mut *mut *mut c_char,
4483        error: *mut *mut glib::GError,
4484    ) -> gboolean;
4485    pub fn ges_init_get_option_group() -> *mut glib::GOptionGroup;
4486    #[cfg(feature = "v1_16")]
4487    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
4488    pub fn ges_is_initialized() -> gboolean;
4489    pub fn ges_list_assets(filter: GType) -> *mut glib::GList;
4490    pub fn ges_play_sink_convert_frame(
4491        playsink: *mut gst::GstElement,
4492        caps: *mut gst::GstCaps,
4493    ) -> *mut gst::GstSample;
4494    pub fn ges_pspec_equal(key_spec_1: gconstpointer, key_spec_2: gconstpointer) -> gboolean;
4495    pub fn ges_pspec_hash(key_spec: gconstpointer) -> c_uint;
4496    pub fn ges_validate_register_action_types() -> gboolean;
4497    pub fn ges_version(
4498        major: *mut c_uint,
4499        minor: *mut c_uint,
4500        micro: *mut c_uint,
4501        nano: *mut c_uint,
4502    );
4503
4504}