gstreamer_validate_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_sys as gst;
19
20#[cfg(unix)]
21#[allow(unused_imports)]
22use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
23#[allow(unused_imports)]
24use libc::{intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE};
25#[allow(unused_imports)]
26use std::ffi::{
27    c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
28};
29
30#[allow(unused_imports)]
31use glib::{gboolean, gconstpointer, gpointer, GType};
32
33// Aliases
34pub type GstValidateIssueId = glib::GQuark;
35
36// Enums
37pub type GstValidateActionReturn = c_int;
38pub const GST_VALIDATE_EXECUTE_ACTION_ERROR: GstValidateActionReturn = 0;
39pub const GST_VALIDATE_EXECUTE_ACTION_OK: GstValidateActionReturn = 1;
40pub const GST_VALIDATE_EXECUTE_ACTION_ASYNC: GstValidateActionReturn = 2;
41pub const GST_VALIDATE_EXECUTE_ACTION_NON_BLOCKING: GstValidateActionReturn = 3;
42pub const GST_VALIDATE_EXECUTE_ACTION_INTERLACED: GstValidateActionReturn = 3;
43pub const GST_VALIDATE_EXECUTE_ACTION_ERROR_REPORTED: GstValidateActionReturn = 4;
44pub const GST_VALIDATE_EXECUTE_ACTION_IN_PROGRESS: GstValidateActionReturn = 5;
45pub const GST_VALIDATE_EXECUTE_ACTION_NONE: GstValidateActionReturn = 6;
46pub const GST_VALIDATE_EXECUTE_ACTION_DONE: GstValidateActionReturn = 7;
47
48pub type GstValidateInterceptionReturn = c_int;
49pub const GST_VALIDATE_REPORTER_DROP: GstValidateInterceptionReturn = 0;
50pub const GST_VALIDATE_REPORTER_KEEP: GstValidateInterceptionReturn = 1;
51pub const GST_VALIDATE_REPORTER_REPORT: GstValidateInterceptionReturn = 2;
52
53pub type GstValidateReportLevel = c_int;
54pub const GST_VALIDATE_REPORT_LEVEL_CRITICAL: GstValidateReportLevel = 0;
55pub const GST_VALIDATE_REPORT_LEVEL_WARNING: GstValidateReportLevel = 1;
56pub const GST_VALIDATE_REPORT_LEVEL_ISSUE: GstValidateReportLevel = 2;
57pub const GST_VALIDATE_REPORT_LEVEL_IGNORE: GstValidateReportLevel = 3;
58pub const GST_VALIDATE_REPORT_LEVEL_UNKNOWN: GstValidateReportLevel = 4;
59pub const GST_VALIDATE_REPORT_LEVEL_EXPECTED: GstValidateReportLevel = 5;
60pub const GST_VALIDATE_REPORT_LEVEL_NUM_ENTRIES: GstValidateReportLevel = 6;
61
62pub type GstValidateReportingDetails = c_int;
63pub const GST_VALIDATE_SHOW_UNKNOWN: GstValidateReportingDetails = 0;
64pub const GST_VALIDATE_SHOW_NONE: GstValidateReportingDetails = 1;
65pub const GST_VALIDATE_SHOW_SYNTHETIC: GstValidateReportingDetails = 2;
66pub const GST_VALIDATE_SHOW_SUBCHAIN: GstValidateReportingDetails = 3;
67pub const GST_VALIDATE_SHOW_MONITOR: GstValidateReportingDetails = 4;
68pub const GST_VALIDATE_SHOW_ALL: GstValidateReportingDetails = 5;
69pub const GST_VALIDATE_SHOW_SMART: GstValidateReportingDetails = 6;
70pub const GST_VALIDATE_SHOW_COUNT: GstValidateReportingDetails = 7;
71
72// Constants
73pub const GST_VALIDATE_UNKNOWN_BOOL: c_int = -1;
74pub const GST_VALIDATE_UNKNOWN_UINT64: c_int = -1;
75
76// Flags
77pub type GstValidateActionTypeFlags = c_uint;
78pub const GST_VALIDATE_ACTION_TYPE_NONE: GstValidateActionTypeFlags = 0;
79pub const GST_VALIDATE_ACTION_TYPE_CONFIG: GstValidateActionTypeFlags = 2;
80pub const GST_VALIDATE_ACTION_TYPE_ASYNC: GstValidateActionTypeFlags = 4;
81pub const GST_VALIDATE_ACTION_TYPE_NON_BLOCKING: GstValidateActionTypeFlags = 8;
82pub const GST_VALIDATE_ACTION_TYPE_INTERLACED: GstValidateActionTypeFlags = 8;
83pub const GST_VALIDATE_ACTION_TYPE_CAN_EXECUTE_ON_ADDITION: GstValidateActionTypeFlags = 16;
84pub const GST_VALIDATE_ACTION_TYPE_NEEDS_CLOCK: GstValidateActionTypeFlags = 32;
85pub const GST_VALIDATE_ACTION_TYPE_NO_EXECUTION_NOT_FATAL: GstValidateActionTypeFlags = 64;
86pub const GST_VALIDATE_ACTION_TYPE_CAN_BE_OPTIONAL: GstValidateActionTypeFlags = 128;
87pub const GST_VALIDATE_ACTION_TYPE_DOESNT_NEED_PIPELINE: GstValidateActionTypeFlags = 256;
88pub const GST_VALIDATE_ACTION_TYPE_HANDLED_IN_CONFIG: GstValidateActionTypeFlags = 512;
89pub const GST_VALIDATE_ACTION_TYPE_CHECK: GstValidateActionTypeFlags = 1024;
90
91pub type GstValidateDebugFlags = c_uint;
92pub const GST_VALIDATE_FATAL_DEFAULT: GstValidateDebugFlags = 0;
93pub const GST_VALIDATE_FATAL_ISSUES: GstValidateDebugFlags = 1;
94pub const GST_VALIDATE_FATAL_WARNINGS: GstValidateDebugFlags = 2;
95pub const GST_VALIDATE_FATAL_CRITICALS: GstValidateDebugFlags = 4;
96pub const GST_VALIDATE_PRINT_ISSUES: GstValidateDebugFlags = 8;
97pub const GST_VALIDATE_PRINT_WARNINGS: GstValidateDebugFlags = 16;
98pub const GST_VALIDATE_PRINT_CRITICALS: GstValidateDebugFlags = 32;
99
100pub type GstValidateIssueFlags = c_uint;
101pub const GST_VALIDATE_ISSUE_FLAGS_NONE: GstValidateIssueFlags = 0;
102pub const GST_VALIDATE_ISSUE_FLAGS_FULL_DETAILS: GstValidateIssueFlags = 1;
103pub const GST_VALIDATE_ISSUE_FLAGS_NO_BACKTRACE: GstValidateIssueFlags = 2;
104pub const GST_VALIDATE_ISSUE_FLAGS_FORCE_BACKTRACE: GstValidateIssueFlags = 4;
105
106pub type GstValidateMediaDescriptorWriterFlags = c_uint;
107pub const GST_VALIDATE_MEDIA_DESCRIPTOR_WRITER_FLAGS_NONE: GstValidateMediaDescriptorWriterFlags =
108    1;
109pub const GST_VALIDATE_MEDIA_DESCRIPTOR_WRITER_FLAGS_NO_PARSER:
110    GstValidateMediaDescriptorWriterFlags = 2;
111pub const GST_VALIDATE_MEDIA_DESCRIPTOR_WRITER_FLAGS_FULL: GstValidateMediaDescriptorWriterFlags =
112    4;
113pub const GST_VALIDATE_MEDIA_DESCRIPTOR_WRITER_FLAGS_HANDLE_GLOGS:
114    GstValidateMediaDescriptorWriterFlags = 8;
115
116pub type GstValidateObjectSetPropertyFlags = c_uint;
117pub const GST_VALIDATE_OBJECT_SET_PROPERTY_FLAGS_OPTIONAL: GstValidateObjectSetPropertyFlags = 1;
118pub const GST_VALIDATE_OBJECT_SET_PROPERTY_FLAGS_NO_VALUE_CHECK: GstValidateObjectSetPropertyFlags =
119    2;
120
121pub type GstValidateStructureResolveVariablesFlags = c_uint;
122pub const GST_VALIDATE_STRUCTURE_RESOLVE_VARIABLES_ALL: GstValidateStructureResolveVariablesFlags =
123    0;
124pub const GST_VALIDATE_STRUCTURE_RESOLVE_VARIABLES_LOCAL_ONLY:
125    GstValidateStructureResolveVariablesFlags = 1;
126pub const GST_VALIDATE_STRUCTURE_RESOLVE_VARIABLES_NO_FAILURE:
127    GstValidateStructureResolveVariablesFlags = 2;
128pub const GST_VALIDATE_STRUCTURE_RESOLVE_VARIABLES_NO_EXPRESSION:
129    GstValidateStructureResolveVariablesFlags = 2;
130
131pub type GstValidateVerbosityFlags = c_uint;
132pub const GST_VALIDATE_VERBOSITY_NONE: GstValidateVerbosityFlags = 0;
133pub const GST_VALIDATE_VERBOSITY_POSITION: GstValidateVerbosityFlags = 2;
134pub const GST_VALIDATE_VERBOSITY_MESSAGES: GstValidateVerbosityFlags = 4;
135pub const GST_VALIDATE_VERBOSITY_PROPS_CHANGES: GstValidateVerbosityFlags = 8;
136pub const GST_VALIDATE_VERBOSITY_NEW_ELEMENTS: GstValidateVerbosityFlags = 16;
137pub const GST_VALIDATE_VERBOSITY_ALL: GstValidateVerbosityFlags = 30;
138
139// Callbacks
140pub type GstValidateExecuteAction =
141    Option<unsafe extern "C" fn(*mut GstValidateScenario, *mut GstValidateAction) -> c_int>;
142pub type GstValidateGetIncludePathsFunc =
143    Option<unsafe extern "C" fn(*const c_char) -> *mut *mut c_char>;
144pub type GstValidateOverrideBufferHandler = Option<
145    unsafe extern "C" fn(*mut GstValidateOverride, *mut GstValidateMonitor, *mut gst::GstBuffer),
146>;
147pub type GstValidateOverrideElementAddedHandler = Option<
148    unsafe extern "C" fn(*mut GstValidateOverride, *mut GstValidateMonitor, *mut gst::GstElement),
149>;
150pub type GstValidateOverrideEventHandler = Option<
151    unsafe extern "C" fn(*mut GstValidateOverride, *mut GstValidateMonitor, *mut gst::GstEvent),
152>;
153pub type GstValidateOverrideGetCapsHandler = Option<
154    unsafe extern "C" fn(*mut GstValidateOverride, *mut GstValidateMonitor, *mut gst::GstCaps),
155>;
156pub type GstValidateOverrideQueryHandler = Option<
157    unsafe extern "C" fn(*mut GstValidateOverride, *mut GstValidateMonitor, *mut gst::GstQuery),
158>;
159pub type GstValidateOverrideSetCapsHandler = Option<
160    unsafe extern "C" fn(*mut GstValidateOverride, *mut GstValidateMonitor, *mut gst::GstCaps),
161>;
162pub type GstValidateParseVariableFunc =
163    Option<unsafe extern "C" fn(*const c_char, *mut c_double, gpointer) -> c_int>;
164pub type GstValidatePrepareAction = Option<unsafe extern "C" fn(*mut GstValidateAction) -> c_int>;
165
166// Records
167#[derive(Copy, Clone)]
168#[repr(C)]
169pub struct GstValidateAction {
170    pub mini_object: gst::GstMiniObject,
171    pub type_: *const c_char,
172    pub name: *const c_char,
173    pub structure: *mut gst::GstStructure,
174    pub action_number: c_uint,
175    pub repeat: c_int,
176    pub playback_time: gst::GstClockTime,
177    pub lineno: c_int,
178    pub filename: *mut c_char,
179    pub debug: *mut c_char,
180    pub n_repeats: c_int,
181    pub rangename: *mut c_char,
182    pub priv_: *mut GstValidateActionPrivate,
183    pub _gst_reserved: [gpointer; 4],
184}
185
186impl ::std::fmt::Debug for GstValidateAction {
187    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
188        f.debug_struct(&format!("GstValidateAction @ {self:p}"))
189            .field("mini_object", &self.mini_object)
190            .field("type_", &self.type_)
191            .field("name", &self.name)
192            .field("structure", &self.structure)
193            .finish()
194    }
195}
196
197#[derive(Copy, Clone)]
198#[repr(C)]
199pub struct GstValidateActionParameter {
200    pub name: *const c_char,
201    pub description: *const c_char,
202    pub mandatory: gboolean,
203    pub types: *const c_char,
204    pub possible_variables: *const c_char,
205    pub def: *const c_char,
206    pub free: glib::GDestroyNotify,
207    pub _gst_reserved: [gpointer; 3],
208}
209
210impl ::std::fmt::Debug for GstValidateActionParameter {
211    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
212        f.debug_struct(&format!("GstValidateActionParameter @ {self:p}"))
213            .field("name", &self.name)
214            .field("description", &self.description)
215            .field("mandatory", &self.mandatory)
216            .field("types", &self.types)
217            .field("possible_variables", &self.possible_variables)
218            .field("def", &self.def)
219            .field("free", &self.free)
220            .finish()
221    }
222}
223
224#[repr(C)]
225#[allow(dead_code)]
226pub struct _GstValidateActionPrivate {
227    _data: [u8; 0],
228    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
229}
230
231pub type GstValidateActionPrivate = _GstValidateActionPrivate;
232
233#[derive(Copy, Clone)]
234#[repr(C)]
235pub struct GstValidateActionType {
236    pub mini_object: gst::GstMiniObject,
237    pub name: *mut c_char,
238    pub implementer_namespace: *mut c_char,
239    pub prepare: GstValidatePrepareAction,
240    pub execute: GstValidateExecuteAction,
241    pub parameters: *mut GstValidateActionParameter,
242    pub description: *mut c_char,
243    pub flags: GstValidateActionTypeFlags,
244    pub rank: gst::GstRank,
245    pub overriden_type: *mut GstValidateActionType,
246    pub priv_: *mut GstValidateActionTypePrivate,
247    pub _gst_reserved: [gpointer; 20],
248}
249
250impl ::std::fmt::Debug for GstValidateActionType {
251    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
252        f.debug_struct(&format!("GstValidateActionType @ {self:p}"))
253            .field("mini_object", &self.mini_object)
254            .field("name", &self.name)
255            .field("implementer_namespace", &self.implementer_namespace)
256            .field("prepare", &self.prepare)
257            .field("execute", &self.execute)
258            .field("parameters", &self.parameters)
259            .field("description", &self.description)
260            .field("flags", &self.flags)
261            .field("rank", &self.rank)
262            .field("overriden_type", &self.overriden_type)
263            .field("priv_", &self.priv_)
264            .finish()
265    }
266}
267
268#[repr(C)]
269#[allow(dead_code)]
270pub struct _GstValidateActionTypePrivate {
271    _data: [u8; 0],
272    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
273}
274
275pub type GstValidateActionTypePrivate = _GstValidateActionTypePrivate;
276
277#[derive(Copy, Clone)]
278#[repr(C)]
279pub struct GstValidateBinMonitorClass {
280    pub parent_class: GstValidateElementMonitorClass,
281    pub _gst_reserved: [gpointer; 4],
282}
283
284impl ::std::fmt::Debug for GstValidateBinMonitorClass {
285    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
286        f.debug_struct(&format!("GstValidateBinMonitorClass @ {self:p}"))
287            .field("parent_class", &self.parent_class)
288            .finish()
289    }
290}
291
292#[derive(Copy, Clone)]
293#[repr(C)]
294pub struct GstValidateElementMonitorClass {
295    pub parent_class: GstValidateMonitorClass,
296    pub _gst_reserved: [gpointer; 4],
297}
298
299impl ::std::fmt::Debug for GstValidateElementMonitorClass {
300    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
301        f.debug_struct(&format!("GstValidateElementMonitorClass @ {self:p}"))
302            .field("parent_class", &self.parent_class)
303            .finish()
304    }
305}
306
307#[derive(Copy, Clone)]
308#[repr(C)]
309pub struct GstValidateIssue {
310    pub issue_id: GstValidateIssueId,
311    pub summary: *mut c_char,
312    pub description: *mut c_char,
313    pub area: *mut c_char,
314    pub name: *mut c_char,
315    pub default_level: GstValidateReportLevel,
316    pub refcount: c_int,
317    pub flags: GstValidateIssueFlags,
318    pub _gst_reserved: [gpointer; 4],
319}
320
321impl ::std::fmt::Debug for GstValidateIssue {
322    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
323        f.debug_struct(&format!("GstValidateIssue @ {self:p}"))
324            .field("issue_id", &self.issue_id)
325            .field("summary", &self.summary)
326            .field("description", &self.description)
327            .field("area", &self.area)
328            .field("name", &self.name)
329            .field("default_level", &self.default_level)
330            .field("refcount", &self.refcount)
331            .field("flags", &self.flags)
332            .field("_gst_reserved", &self._gst_reserved)
333            .finish()
334    }
335}
336
337#[derive(Copy, Clone)]
338#[repr(C)]
339pub struct GstValidateMediaDescriptorClass {
340    pub parent: gst::GstObjectClass,
341    pub _gst_reserved: [gpointer; 4],
342}
343
344impl ::std::fmt::Debug for GstValidateMediaDescriptorClass {
345    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
346        f.debug_struct(&format!("GstValidateMediaDescriptorClass @ {self:p}"))
347            .field("parent", &self.parent)
348            .finish()
349    }
350}
351
352#[derive(Copy, Clone)]
353#[repr(C)]
354pub struct GstValidateMediaDescriptorParserClass {
355    pub parent: GstValidateMediaDescriptorClass,
356    pub _gst_reserved: [gpointer; 4],
357}
358
359impl ::std::fmt::Debug for GstValidateMediaDescriptorParserClass {
360    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
361        f.debug_struct(&format!("GstValidateMediaDescriptorParserClass @ {self:p}"))
362            .field("parent", &self.parent)
363            .finish()
364    }
365}
366
367#[repr(C)]
368#[allow(dead_code)]
369pub struct _GstValidateMediaDescriptorParserPrivate {
370    _data: [u8; 0],
371    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
372}
373
374pub type GstValidateMediaDescriptorParserPrivate = _GstValidateMediaDescriptorParserPrivate;
375
376#[repr(C)]
377#[allow(dead_code)]
378pub struct _GstValidateMediaDescriptorPrivate {
379    _data: [u8; 0],
380    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
381}
382
383pub type GstValidateMediaDescriptorPrivate = _GstValidateMediaDescriptorPrivate;
384
385#[derive(Copy, Clone)]
386#[repr(C)]
387pub struct GstValidateMediaDescriptorWriterClass {
388    pub parent: GstValidateMediaDescriptorClass,
389    pub _gst_reserved: [gpointer; 4],
390}
391
392impl ::std::fmt::Debug for GstValidateMediaDescriptorWriterClass {
393    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
394        f.debug_struct(&format!("GstValidateMediaDescriptorWriterClass @ {self:p}"))
395            .field("parent", &self.parent)
396            .finish()
397    }
398}
399
400#[repr(C)]
401#[allow(dead_code)]
402pub struct _GstValidateMediaDescriptorWriterPrivate {
403    _data: [u8; 0],
404    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
405}
406
407pub type GstValidateMediaDescriptorWriterPrivate = _GstValidateMediaDescriptorWriterPrivate;
408
409#[derive(Copy, Clone)]
410#[repr(C)]
411pub struct GstValidateMediaInfo {
412    pub duration: gst::GstClockTime,
413    pub is_image: gboolean,
414    pub file_size: u64,
415    pub seekable: gboolean,
416    pub playback_error: *mut c_char,
417    pub reverse_playback_error: *mut c_char,
418    pub track_switch_error: *mut c_char,
419    pub uri: *mut c_char,
420    pub discover_only: gboolean,
421    pub stream_info: *mut GstValidateStreamInfo,
422    pub _gst_reserved: [gpointer; 4],
423}
424
425impl ::std::fmt::Debug for GstValidateMediaInfo {
426    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
427        f.debug_struct(&format!("GstValidateMediaInfo @ {self:p}"))
428            .field("duration", &self.duration)
429            .field("is_image", &self.is_image)
430            .field("file_size", &self.file_size)
431            .field("seekable", &self.seekable)
432            .field("playback_error", &self.playback_error)
433            .field("reverse_playback_error", &self.reverse_playback_error)
434            .field("track_switch_error", &self.track_switch_error)
435            .field("uri", &self.uri)
436            .field("discover_only", &self.discover_only)
437            .field("stream_info", &self.stream_info)
438            .finish()
439    }
440}
441
442#[derive(Copy, Clone)]
443#[repr(C)]
444pub struct GstValidateMonitorClass {
445    pub parent_class: gst::GstObjectClass,
446    pub setup: Option<unsafe extern "C" fn(*mut GstValidateMonitor) -> gboolean>,
447    pub get_element: Option<unsafe extern "C" fn(*mut GstValidateMonitor) -> *mut gst::GstElement>,
448    pub set_media_descriptor:
449        Option<unsafe extern "C" fn(*mut GstValidateMonitor, *mut GstValidateMediaDescriptor)>,
450    pub _gst_reserved: [gpointer; 4],
451}
452
453impl ::std::fmt::Debug for GstValidateMonitorClass {
454    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
455        f.debug_struct(&format!("GstValidateMonitorClass @ {self:p}"))
456            .field("parent_class", &self.parent_class)
457            .field("setup", &self.setup)
458            .field("get_element", &self.get_element)
459            .field("set_media_descriptor", &self.set_media_descriptor)
460            .finish()
461    }
462}
463
464#[derive(Copy, Clone)]
465#[repr(C)]
466pub struct GstValidateOverrideClass {
467    pub parent_class: gst::GstObjectClass,
468    pub can_attach:
469        Option<unsafe extern "C" fn(*mut GstValidateOverride, *mut GstValidateMonitor) -> gboolean>,
470    pub attached: Option<unsafe extern "C" fn(*mut GstValidateOverride)>,
471    pub _gst_reserved: [gpointer; 4],
472}
473
474impl ::std::fmt::Debug for GstValidateOverrideClass {
475    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
476        f.debug_struct(&format!("GstValidateOverrideClass @ {self:p}"))
477            .field("can_attach", &self.can_attach)
478            .field("attached", &self.attached)
479            .finish()
480    }
481}
482
483#[repr(C)]
484#[allow(dead_code)]
485pub struct _GstValidateOverridePrivate {
486    _data: [u8; 0],
487    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
488}
489
490pub type GstValidateOverridePrivate = _GstValidateOverridePrivate;
491
492#[derive(Copy, Clone)]
493#[repr(C)]
494pub struct GstValidateOverrideRegistry {
495    pub mutex: glib::GMutex,
496    pub name_overrides: glib::GQueue,
497    pub gtype_overrides: glib::GQueue,
498    pub klass_overrides: glib::GQueue,
499    pub _gst_reserved: [gpointer; 4],
500}
501
502impl ::std::fmt::Debug for GstValidateOverrideRegistry {
503    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
504        f.debug_struct(&format!("GstValidateOverrideRegistry @ {self:p}"))
505            .field("mutex", &self.mutex)
506            .field("name_overrides", &self.name_overrides)
507            .field("gtype_overrides", &self.gtype_overrides)
508            .field("klass_overrides", &self.klass_overrides)
509            .finish()
510    }
511}
512
513#[derive(Copy, Clone)]
514#[repr(C)]
515pub struct GstValidatePadMonitorClass {
516    pub parent_class: GstValidateMonitorClass,
517    pub _gst_reserved: [gpointer; 4],
518}
519
520impl ::std::fmt::Debug for GstValidatePadMonitorClass {
521    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
522        f.debug_struct(&format!("GstValidatePadMonitorClass @ {self:p}"))
523            .field("parent_class", &self.parent_class)
524            .finish()
525    }
526}
527
528#[repr(C)]
529#[allow(dead_code)]
530pub struct _GstValidatePadSeekData {
531    _data: [u8; 0],
532    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
533}
534
535pub type GstValidatePadSeekData = _GstValidatePadSeekData;
536
537#[derive(Copy, Clone)]
538#[repr(C)]
539pub struct GstValidatePipelineMonitorClass {
540    pub parent_class: GstValidateBinMonitorClass,
541    pub _gst_reserved: [gpointer; 4],
542}
543
544impl ::std::fmt::Debug for GstValidatePipelineMonitorClass {
545    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
546        f.debug_struct(&format!("GstValidatePipelineMonitorClass @ {self:p}"))
547            .field("parent_class", &self.parent_class)
548            .finish()
549    }
550}
551
552#[derive(Copy, Clone)]
553#[repr(C)]
554pub struct GstValidateReport {
555    pub mini_object: gst::GstMiniObject,
556    pub issue: *mut GstValidateIssue,
557    pub level: GstValidateReportLevel,
558    pub reporter: *mut GstValidateReporter,
559    pub timestamp: gst::GstClockTime,
560    pub message: *mut c_char,
561    pub shadow_reports_lock: glib::GMutex,
562    pub master_report: *mut GstValidateReport,
563    pub shadow_reports: *mut glib::GList,
564    pub repeated_reports: *mut glib::GList,
565    pub reporting_level: GstValidateReportingDetails,
566    pub reporter_name: *mut c_char,
567    pub trace: *mut c_char,
568    pub dotfile_name: *mut c_char,
569    pub _gst_reserved: [gpointer; 4],
570}
571
572impl ::std::fmt::Debug for GstValidateReport {
573    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
574        f.debug_struct(&format!("GstValidateReport @ {self:p}"))
575            .field("mini_object", &self.mini_object)
576            .field("issue", &self.issue)
577            .field("level", &self.level)
578            .field("reporter", &self.reporter)
579            .field("timestamp", &self.timestamp)
580            .field("message", &self.message)
581            .field("shadow_reports_lock", &self.shadow_reports_lock)
582            .field("master_report", &self.master_report)
583            .field("shadow_reports", &self.shadow_reports)
584            .field("repeated_reports", &self.repeated_reports)
585            .field("reporting_level", &self.reporting_level)
586            .field("reporter_name", &self.reporter_name)
587            .field("trace", &self.trace)
588            .field("dotfile_name", &self.dotfile_name)
589            .field("_gst_reserved", &self._gst_reserved)
590            .finish()
591    }
592}
593
594#[derive(Copy, Clone)]
595#[repr(C)]
596pub struct GstValidateReporterInterface {
597    pub parent: gobject::GTypeInterface,
598    pub intercept_report: Option<
599        unsafe extern "C" fn(
600            *mut GstValidateReporter,
601            *mut GstValidateReport,
602        ) -> GstValidateInterceptionReturn,
603    >,
604    pub get_reporting_level:
605        Option<unsafe extern "C" fn(*mut GstValidateReporter) -> GstValidateReportingDetails>,
606    pub get_pipeline:
607        Option<unsafe extern "C" fn(*mut GstValidateReporter) -> *mut gst::GstPipeline>,
608    pub _gst_reserved: [gpointer; 4],
609}
610
611impl ::std::fmt::Debug for GstValidateReporterInterface {
612    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
613        f.debug_struct(&format!("GstValidateReporterInterface @ {self:p}"))
614            .field("parent", &self.parent)
615            .field("intercept_report", &self.intercept_report)
616            .field("get_reporting_level", &self.get_reporting_level)
617            .field("get_pipeline", &self.get_pipeline)
618            .finish()
619    }
620}
621
622#[derive(Copy, Clone)]
623#[repr(C)]
624pub struct GstValidateRunnerClass {
625    pub parent_class: gst::GstTracerClass,
626    pub _gst_reserved: [gpointer; 4],
627}
628
629impl ::std::fmt::Debug for GstValidateRunnerClass {
630    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
631        f.debug_struct(&format!("GstValidateRunnerClass @ {self:p}"))
632            .field("parent_class", &self.parent_class)
633            .finish()
634    }
635}
636
637#[repr(C)]
638#[allow(dead_code)]
639pub struct _GstValidateRunnerPrivate {
640    _data: [u8; 0],
641    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
642}
643
644pub type GstValidateRunnerPrivate = _GstValidateRunnerPrivate;
645
646#[derive(Copy, Clone)]
647#[repr(C)]
648pub struct GstValidateScenarioClass {
649    pub parent_class: gst::GstObjectClass,
650    pub _gst_reserved: [gpointer; 4],
651}
652
653impl ::std::fmt::Debug for GstValidateScenarioClass {
654    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
655        f.debug_struct(&format!("GstValidateScenarioClass @ {self:p}"))
656            .field("parent_class", &self.parent_class)
657            .finish()
658    }
659}
660
661#[repr(C)]
662#[allow(dead_code)]
663pub struct _GstValidateScenarioPrivate {
664    _data: [u8; 0],
665    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
666}
667
668pub type GstValidateScenarioPrivate = _GstValidateScenarioPrivate;
669
670#[repr(C)]
671#[allow(dead_code)]
672pub struct _GstValidateStreamInfo {
673    _data: [u8; 0],
674    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
675}
676
677pub type GstValidateStreamInfo = _GstValidateStreamInfo;
678
679// Classes
680#[derive(Copy, Clone)]
681#[repr(C)]
682pub struct GstValidateBinMonitor {
683    pub parent: GstValidateElementMonitor,
684    pub element_monitors: *mut glib::GList,
685    pub scenario: *mut GstValidateScenario,
686    pub element_added_id: c_ulong,
687    pub element_removed_id: c_ulong,
688    pub _gst_reserved: [gpointer; 4],
689}
690
691impl ::std::fmt::Debug for GstValidateBinMonitor {
692    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
693        f.debug_struct(&format!("GstValidateBinMonitor @ {self:p}"))
694            .field("parent", &self.parent)
695            .field("element_monitors", &self.element_monitors)
696            .field("scenario", &self.scenario)
697            .finish()
698    }
699}
700
701#[derive(Copy, Clone)]
702#[repr(C)]
703pub struct GstValidateElementMonitor {
704    pub parent: GstValidateMonitor,
705    pub pad_added_id: c_ulong,
706    pub pad_monitors: *mut glib::GList,
707    pub is_decoder: gboolean,
708    pub is_encoder: gboolean,
709    pub is_demuxer: gboolean,
710    pub is_converter: gboolean,
711    pub is_sink: gboolean,
712    pub _gst_reserved: [gpointer; 4],
713}
714
715impl ::std::fmt::Debug for GstValidateElementMonitor {
716    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
717        f.debug_struct(&format!("GstValidateElementMonitor @ {self:p}"))
718            .field("parent", &self.parent)
719            .finish()
720    }
721}
722
723#[derive(Copy, Clone)]
724#[repr(C)]
725pub struct GstValidateMediaDescriptor {
726    pub parent: gst::GstObject,
727    pub lock: glib::GMutex,
728    pub priv_: *mut GstValidateMediaDescriptorPrivate,
729    pub _gst_reserved: [gpointer; 4],
730}
731
732impl ::std::fmt::Debug for GstValidateMediaDescriptor {
733    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
734        f.debug_struct(&format!("GstValidateMediaDescriptor @ {self:p}"))
735            .field("parent", &self.parent)
736            .field("lock", &self.lock)
737            .finish()
738    }
739}
740
741#[derive(Copy, Clone)]
742#[repr(C)]
743pub struct GstValidateMediaDescriptorParser {
744    pub parent: GstValidateMediaDescriptor,
745    pub priv_: *mut GstValidateMediaDescriptorParserPrivate,
746    pub _gst_reserved: [gpointer; 4],
747}
748
749impl ::std::fmt::Debug for GstValidateMediaDescriptorParser {
750    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
751        f.debug_struct(&format!("GstValidateMediaDescriptorParser @ {self:p}"))
752            .field("parent", &self.parent)
753            .field("priv_", &self.priv_)
754            .finish()
755    }
756}
757
758#[derive(Copy, Clone)]
759#[repr(C)]
760pub struct GstValidateMediaDescriptorWriter {
761    pub parent: GstValidateMediaDescriptor,
762    pub priv_: *mut GstValidateMediaDescriptorWriterPrivate,
763    pub _gst_reserved: [gpointer; 4],
764}
765
766impl ::std::fmt::Debug for GstValidateMediaDescriptorWriter {
767    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
768        f.debug_struct(&format!("GstValidateMediaDescriptorWriter @ {self:p}"))
769            .field("parent", &self.parent)
770            .field("priv_", &self.priv_)
771            .finish()
772    }
773}
774
775#[derive(Copy, Clone)]
776#[repr(C)]
777pub struct GstValidateMonitor {
778    pub object: gst::GstObject,
779    pub target: gobject::GWeakRef,
780    pub pipeline: gobject::GWeakRef,
781    pub mutex: glib::GMutex,
782    pub target_name: *mut c_char,
783    pub parent: *mut GstValidateMonitor,
784    pub overrides_mutex: glib::GMutex,
785    pub overrides: glib::GQueue,
786    pub media_descriptor: *mut GstValidateMediaDescriptor,
787    pub level: GstValidateReportingDetails,
788    pub reports: *mut glib::GHashTable,
789    pub verbosity: GstValidateVerbosityFlags,
790    pub _gst_reserved: [gpointer; 4],
791}
792
793impl ::std::fmt::Debug for GstValidateMonitor {
794    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
795        f.debug_struct(&format!("GstValidateMonitor @ {self:p}"))
796            .field("object", &self.object)
797            .field("target", &self.target)
798            .field("pipeline", &self.pipeline)
799            .field("mutex", &self.mutex)
800            .field("target_name", &self.target_name)
801            .field("parent", &self.parent)
802            .field("overrides_mutex", &self.overrides_mutex)
803            .field("overrides", &self.overrides)
804            .field("media_descriptor", &self.media_descriptor)
805            .field("level", &self.level)
806            .finish()
807    }
808}
809
810#[derive(Copy, Clone)]
811#[repr(C)]
812pub struct GstValidateOverride {
813    pub parent: gst::GstObject,
814    pub buffer_handler: GstValidateOverrideBufferHandler,
815    pub event_handler: GstValidateOverrideEventHandler,
816    pub query_handler: GstValidateOverrideQueryHandler,
817    pub buffer_probe_handler: GstValidateOverrideBufferHandler,
818    pub getcaps_handler: GstValidateOverrideGetCapsHandler,
819    pub setcaps_handler: GstValidateOverrideSetCapsHandler,
820    pub element_added_handler: GstValidateOverrideElementAddedHandler,
821    pub priv_: *mut GstValidateOverridePrivate,
822    pub _gst_reserved: [gpointer; 4],
823}
824
825impl ::std::fmt::Debug for GstValidateOverride {
826    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
827        f.debug_struct(&format!("GstValidateOverride @ {self:p}"))
828            .field("parent", &self.parent)
829            .field("buffer_handler", &self.buffer_handler)
830            .field("event_handler", &self.event_handler)
831            .field("query_handler", &self.query_handler)
832            .field("buffer_probe_handler", &self.buffer_probe_handler)
833            .field("getcaps_handler", &self.getcaps_handler)
834            .field("setcaps_handler", &self.setcaps_handler)
835            .field("element_added_handler", &self.element_added_handler)
836            .finish()
837    }
838}
839
840#[derive(Copy, Clone)]
841#[repr(C)]
842pub struct GstValidatePadMonitor {
843    pub parent: GstValidateMonitor,
844    pub setup: gboolean,
845    pub chain_func: gst::GstPadChainFunction,
846    pub event_func: gst::GstPadEventFunction,
847    pub event_full_func: gst::GstPadEventFullFunction,
848    pub query_func: gst::GstPadQueryFunction,
849    pub activatemode_func: gst::GstPadActivateModeFunction,
850    pub get_range_func: gst::GstPadGetRangeFunction,
851    pub pad_probe_id: c_ulong,
852    pub last_caps: *mut gst::GstCaps,
853    pub caps_is_audio: gboolean,
854    pub caps_is_video: gboolean,
855    pub caps_is_raw: gboolean,
856    pub first_buffer: gboolean,
857    pub has_segment: gboolean,
858    pub is_eos: gboolean,
859    pub pending_flush_stop: gboolean,
860    pub pending_newsegment_seqnum: u32,
861    pub pending_eos_seqnum: u32,
862    pub seeks: *mut glib::GList,
863    pub current_seek: *mut GstValidatePadSeekData,
864    pub pending_buffer_discont: gboolean,
865    pub expected_segment: *mut gst::GstEvent,
866    pub serialized_events: *mut glib::GPtrArray,
867    pub expired_events: *mut glib::GList,
868    pub pending_setcaps_fields: *mut gst::GstStructure,
869    pub last_refused_caps: *mut gst::GstCaps,
870    pub last_query_filter: *mut gst::GstCaps,
871    pub last_query_res: *mut gst::GstCaps,
872    pub segment: gst::GstSegment,
873    pub current_timestamp: gst::GstClockTime,
874    pub current_duration: gst::GstClockTime,
875    pub timestamp_range_start: gst::GstClockTime,
876    pub timestamp_range_end: gst::GstClockTime,
877    pub all_bufs: *mut glib::GList,
878    pub current_buf: *mut glib::GList,
879    pub check_buffers: gboolean,
880    pub min_buf_freq: c_double,
881    pub buffers_pushed: c_int,
882    pub last_buffers_pushed: c_int,
883    pub min_buf_freq_interval_ts: gst::GstClockTime,
884    pub min_buf_freq_first_buffer_ts: gst::GstClockTime,
885    pub min_buf_freq_start: gst::GstClockTime,
886    pub _gst_reserved: [gpointer; 4],
887}
888
889impl ::std::fmt::Debug for GstValidatePadMonitor {
890    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
891        f.debug_struct(&format!("GstValidatePadMonitor @ {self:p}"))
892            .field("parent", &self.parent)
893            .field("setup", &self.setup)
894            .field("chain_func", &self.chain_func)
895            .field("event_func", &self.event_func)
896            .field("event_full_func", &self.event_full_func)
897            .field("query_func", &self.query_func)
898            .field("activatemode_func", &self.activatemode_func)
899            .field("get_range_func", &self.get_range_func)
900            .field("pad_probe_id", &self.pad_probe_id)
901            .finish()
902    }
903}
904
905#[derive(Copy, Clone)]
906#[repr(C)]
907pub struct GstValidatePipelineMonitor {
908    pub parent: GstValidateBinMonitor,
909    pub element_added_id: c_ulong,
910    pub print_pos_srcid: c_uint,
911    pub buffering: gboolean,
912    pub got_error: gboolean,
913    pub is_playbin: gboolean,
914    pub is_playbin3: gboolean,
915    pub stream_collection: *mut gst::GstStreamCollection,
916    pub streams_selected: *mut glib::GList,
917    pub deep_notify_id: c_ulong,
918    pub _gst_reserved: [gpointer; 4],
919}
920
921impl ::std::fmt::Debug for GstValidatePipelineMonitor {
922    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
923        f.debug_struct(&format!("GstValidatePipelineMonitor @ {self:p}"))
924            .field("parent", &self.parent)
925            .finish()
926    }
927}
928
929#[derive(Copy, Clone)]
930#[repr(C)]
931pub struct GstValidateRunner {
932    pub object: gst::GstTracer,
933    pub priv_: *mut GstValidateRunnerPrivate,
934    pub _gst_reserved: [gpointer; 4],
935}
936
937impl ::std::fmt::Debug for GstValidateRunner {
938    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
939        f.debug_struct(&format!("GstValidateRunner @ {self:p}"))
940            .field("object", &self.object)
941            .finish()
942    }
943}
944
945#[derive(Copy, Clone)]
946#[repr(C)]
947pub struct GstValidateScenario {
948    pub parent: gst::GstObject,
949    pub description: *mut gst::GstStructure,
950    pub priv_: *mut GstValidateScenarioPrivate,
951    pub eos_handling_lock: glib::GMutex,
952    pub _gst_reserved: [gpointer; 4],
953}
954
955impl ::std::fmt::Debug for GstValidateScenario {
956    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
957        f.debug_struct(&format!("GstValidateScenario @ {self:p}"))
958            .field("parent", &self.parent)
959            .field("description", &self.description)
960            .finish()
961    }
962}
963
964// Interfaces
965#[repr(C)]
966#[allow(dead_code)]
967pub struct GstValidateReporter {
968    _data: [u8; 0],
969    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
970}
971
972impl ::std::fmt::Debug for GstValidateReporter {
973    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
974        write!(f, "GstValidateReporter @ {self:p}")
975    }
976}
977
978extern "C" {
979
980    //=========================================================================
981    // GstValidateActionReturn
982    //=========================================================================
983    pub fn gst_validate_action_return_get_type() -> GType;
984    pub fn gst_validate_action_return_get_name(r: GstValidateActionReturn) -> *const c_char;
985
986    //=========================================================================
987    // GstValidateInterceptionReturn
988    //=========================================================================
989    pub fn gst_validate_interception_return_get_type() -> GType;
990
991    //=========================================================================
992    // GstValidateReportLevel
993    //=========================================================================
994    pub fn gst_validate_report_level_get_type() -> GType;
995    pub fn gst_validate_report_level_from_name(level_name: *const c_char)
996        -> GstValidateReportLevel;
997    pub fn gst_validate_report_level_get_name(level: GstValidateReportLevel) -> *const c_char;
998
999    //=========================================================================
1000    // GstValidateReportingDetails
1001    //=========================================================================
1002    pub fn gst_validate_reporting_details_get_type() -> GType;
1003
1004    //=========================================================================
1005    // GstValidateActionTypeFlags
1006    //=========================================================================
1007    pub fn gst_validate_action_type_flags_get_type() -> GType;
1008
1009    //=========================================================================
1010    // GstValidateDebugFlags
1011    //=========================================================================
1012    pub fn gst_validate_debug_flags_get_type() -> GType;
1013
1014    //=========================================================================
1015    // GstValidateIssueFlags
1016    //=========================================================================
1017    pub fn gst_validate_issue_flags_get_type() -> GType;
1018
1019    //=========================================================================
1020    // GstValidateMediaDescriptorWriterFlags
1021    //=========================================================================
1022    pub fn gst_validate_media_descriptor_writer_flags_get_type() -> GType;
1023
1024    //=========================================================================
1025    // GstValidateObjectSetPropertyFlags
1026    //=========================================================================
1027    #[cfg(feature = "v1_24")]
1028    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
1029    pub fn gst_validate_object_set_property_flags_get_type() -> GType;
1030
1031    //=========================================================================
1032    // GstValidateStructureResolveVariablesFlags
1033    //=========================================================================
1034    pub fn gst_validate_structure_resolve_variables_flags_get_type() -> GType;
1035
1036    //=========================================================================
1037    // GstValidateVerbosityFlags
1038    //=========================================================================
1039    pub fn gst_validate_verbosity_flags_get_type() -> GType;
1040
1041    //=========================================================================
1042    // GstValidateAction
1043    //=========================================================================
1044    pub fn gst_validate_action_get_type() -> GType;
1045    pub fn gst_validate_action_new(
1046        scenario: *mut GstValidateScenario,
1047        action_type: *mut GstValidateActionType,
1048        structure: *mut gst::GstStructure,
1049        add_to_lists: gboolean,
1050    ) -> *mut GstValidateAction;
1051    pub fn gst_validate_action_get_scenario(
1052        action: *mut GstValidateAction,
1053    ) -> *mut GstValidateScenario;
1054    pub fn gst_validate_action_ref(action: *mut GstValidateAction) -> *mut GstValidateAction;
1055    pub fn gst_validate_action_set_done(action: *mut GstValidateAction);
1056    pub fn gst_validate_action_unref(action: *mut GstValidateAction);
1057    pub fn gst_validate_action_get_clocktime(
1058        scenario: *mut GstValidateScenario,
1059        action: *mut GstValidateAction,
1060        name: *const c_char,
1061        retval: *mut gst::GstClockTime,
1062    ) -> gboolean;
1063
1064    //=========================================================================
1065    // GstValidateActionType
1066    //=========================================================================
1067    pub fn gst_validate_action_type_get_type() -> GType;
1068
1069    //=========================================================================
1070    // GstValidateIssue
1071    //=========================================================================
1072    pub fn gst_validate_issue_get_type() -> GType;
1073    pub fn gst_validate_issue_new(
1074        issue_id: GstValidateIssueId,
1075        summary: *const c_char,
1076        description: *const c_char,
1077        default_level: GstValidateReportLevel,
1078    ) -> *mut GstValidateIssue;
1079    pub fn gst_validate_issue_new_full(
1080        issue_id: GstValidateIssueId,
1081        summary: *const c_char,
1082        description: *const c_char,
1083        default_level: GstValidateReportLevel,
1084        flags: GstValidateIssueFlags,
1085    ) -> *mut GstValidateIssue;
1086    pub fn gst_validate_issue_get_id(issue: *mut GstValidateIssue) -> u32;
1087    pub fn gst_validate_issue_register(issue: *mut GstValidateIssue);
1088    pub fn gst_validate_issue_set_default_level(
1089        issue: *mut GstValidateIssue,
1090        default_level: GstValidateReportLevel,
1091    );
1092    pub fn gst_validate_issue_from_id(issue_id: GstValidateIssueId) -> *mut GstValidateIssue;
1093
1094    //=========================================================================
1095    // GstValidateMediaInfo
1096    //=========================================================================
1097    pub fn gst_validate_media_info_clear(mi: *mut GstValidateMediaInfo);
1098    pub fn gst_validate_media_info_compare(
1099        expected: *mut GstValidateMediaInfo,
1100        extracted: *mut GstValidateMediaInfo,
1101    ) -> gboolean;
1102    pub fn gst_validate_media_info_free(mi: *mut GstValidateMediaInfo);
1103    pub fn gst_validate_media_info_init(mi: *mut GstValidateMediaInfo);
1104    pub fn gst_validate_media_info_inspect_uri(
1105        mi: *mut GstValidateMediaInfo,
1106        uri: *const c_char,
1107        discover_only: gboolean,
1108        error: *mut *mut glib::GError,
1109    ) -> gboolean;
1110    pub fn gst_validate_media_info_save(
1111        mi: *mut GstValidateMediaInfo,
1112        path: *const c_char,
1113        error: *mut *mut glib::GError,
1114    ) -> gboolean;
1115    pub fn gst_validate_media_info_to_string(
1116        mi: *mut GstValidateMediaInfo,
1117        length: *mut size_t,
1118    ) -> *mut c_char;
1119    pub fn gst_validate_media_info_load(
1120        path: *const c_char,
1121        error: *mut *mut glib::GError,
1122    ) -> *mut GstValidateMediaInfo;
1123
1124    //=========================================================================
1125    // GstValidateOverrideRegistry
1126    //=========================================================================
1127    pub fn gst_validate_override_registry_get_override_for_names(
1128        reg: *mut GstValidateOverrideRegistry,
1129        name: *const c_char,
1130        ...
1131    ) -> *mut glib::GList;
1132    pub fn gst_validate_override_registry_get_override_list(
1133        registry: *mut GstValidateOverrideRegistry,
1134    ) -> *mut glib::GList;
1135    pub fn gst_validate_override_registry_attach_overrides(monitor: *mut GstValidateMonitor);
1136    pub fn gst_validate_override_registry_get() -> *mut GstValidateOverrideRegistry;
1137    pub fn gst_validate_override_registry_preload() -> c_int;
1138
1139    //=========================================================================
1140    // GstValidateReport
1141    //=========================================================================
1142    pub fn gst_validate_report_get_type() -> GType;
1143    pub fn gst_validate_report_new(
1144        issue: *mut GstValidateIssue,
1145        reporter: *mut GstValidateReporter,
1146        message: *const c_char,
1147    ) -> *mut GstValidateReport;
1148    pub fn gst_validate_report_add_repeated_report(
1149        report: *mut GstValidateReport,
1150        repeated_report: *mut GstValidateReport,
1151    );
1152    pub fn gst_validate_report_check_abort(report: *mut GstValidateReport) -> gboolean;
1153    pub fn gst_validate_report_get_dotfile_name(report: *mut GstValidateReport) -> *mut c_char;
1154    pub fn gst_validate_report_get_issue(report: *mut GstValidateReport) -> *mut GstValidateIssue;
1155    pub fn gst_validate_report_get_issue_id(report: *mut GstValidateReport) -> u32;
1156    pub fn gst_validate_report_get_level(report: *mut GstValidateReport) -> GstValidateReportLevel;
1157    pub fn gst_validate_report_get_message(report: *mut GstValidateReport) -> *mut c_char;
1158    pub fn gst_validate_report_get_reporter(
1159        report: *mut GstValidateReport,
1160    ) -> *mut GstValidateReporter;
1161    pub fn gst_validate_report_get_reporter_name(report: *mut GstValidateReport) -> *mut c_char;
1162    pub fn gst_validate_report_get_reporting_level(
1163        report: *mut GstValidateReport,
1164    ) -> GstValidateReportingDetails;
1165    pub fn gst_validate_report_get_timestamp(report: *mut GstValidateReport) -> gst::GstClockTime;
1166    pub fn gst_validate_report_get_trace(report: *mut GstValidateReport) -> *mut c_char;
1167    pub fn gst_validate_report_print_description(report: *mut GstValidateReport);
1168    pub fn gst_validate_report_print_details(report: *mut GstValidateReport);
1169    pub fn gst_validate_report_print_detected_on(report: *mut GstValidateReport);
1170    pub fn gst_validate_report_print_level(report: *mut GstValidateReport);
1171    pub fn gst_validate_report_printf(report: *mut GstValidateReport);
1172    pub fn gst_validate_report_ref(report: *mut GstValidateReport) -> *mut GstValidateReport;
1173    pub fn gst_validate_report_set_master_report(
1174        report: *mut GstValidateReport,
1175        master_report: *mut GstValidateReport,
1176    ) -> gboolean;
1177    pub fn gst_validate_report_set_reporting_level(
1178        report: *mut GstValidateReport,
1179        level: GstValidateReportingDetails,
1180    );
1181    pub fn gst_validate_report_should_print(report: *mut GstValidateReport) -> gboolean;
1182    pub fn gst_validate_report_unref(report: *mut GstValidateReport);
1183    pub fn gst_validate_report_action(
1184        reporter: *mut GstValidateReporter,
1185        action: *mut GstValidateAction,
1186        issue_id: GstValidateIssueId,
1187        format: *const c_char,
1188        ...
1189    );
1190    pub fn gst_validate_report_init();
1191    //pub fn gst_validate_report_valist(reporter: *mut GstValidateReporter, issue_id: GstValidateIssueId, format: *const c_char, var_args: /*Unimplemented*/va_list);
1192
1193    //=========================================================================
1194    // GstValidateBinMonitor
1195    //=========================================================================
1196    pub fn gst_validate_bin_monitor_get_type() -> GType;
1197    pub fn gst_validate_bin_monitor_new(
1198        bin: *mut gst::GstBin,
1199        runner: *mut GstValidateRunner,
1200        parent: *mut GstValidateMonitor,
1201    ) -> *mut GstValidateBinMonitor;
1202    pub fn gst_validate_bin_monitor_get_scenario(
1203        monitor: *mut GstValidateBinMonitor,
1204    ) -> *mut GstValidateScenario;
1205
1206    //=========================================================================
1207    // GstValidateElementMonitor
1208    //=========================================================================
1209    pub fn gst_validate_element_monitor_get_type() -> GType;
1210    pub fn gst_validate_element_monitor_new(
1211        element: *mut gst::GstElement,
1212        runner: *mut GstValidateRunner,
1213        parent: *mut GstValidateMonitor,
1214    ) -> *mut GstValidateElementMonitor;
1215
1216    //=========================================================================
1217    // GstValidateMediaDescriptor
1218    //=========================================================================
1219    pub fn gst_validate_media_descriptor_get_type() -> GType;
1220    pub fn gst_validate_media_descriptor_detects_frames(
1221        self_: *mut GstValidateMediaDescriptor,
1222    ) -> gboolean;
1223    pub fn gst_validate_media_descriptor_get_buffers(
1224        self_: *mut GstValidateMediaDescriptor,
1225        pad: *mut gst::GstPad,
1226        compare_func: glib::GCompareFunc,
1227        bufs: *mut *mut glib::GList,
1228    ) -> gboolean;
1229    pub fn gst_validate_media_descriptor_get_duration(
1230        self_: *mut GstValidateMediaDescriptor,
1231    ) -> gst::GstClockTime;
1232    pub fn gst_validate_media_descriptor_get_pads(
1233        self_: *mut GstValidateMediaDescriptor,
1234    ) -> *mut glib::GList;
1235    pub fn gst_validate_media_descriptor_get_seekable(
1236        self_: *mut GstValidateMediaDescriptor,
1237    ) -> gboolean;
1238    pub fn gst_validate_media_descriptor_has_frame_info(
1239        self_: *mut GstValidateMediaDescriptor,
1240    ) -> gboolean;
1241
1242    //=========================================================================
1243    // GstValidateMediaDescriptorParser
1244    //=========================================================================
1245    pub fn gst_validate_media_descriptor_parser_get_type() -> GType;
1246    pub fn gst_validate_media_descriptor_parser_new(
1247        runner: *mut GstValidateRunner,
1248        xmlpath: *const c_char,
1249        error: *mut *mut glib::GError,
1250    ) -> *mut GstValidateMediaDescriptorParser;
1251    pub fn gst_validate_media_descriptor_parser_new_from_xml(
1252        runner: *mut GstValidateRunner,
1253        xml: *const c_char,
1254        error: *mut *mut glib::GError,
1255    ) -> *mut GstValidateMediaDescriptorParser;
1256    pub fn gst_validate_media_descriptor_parser_add_stream(
1257        parser: *mut GstValidateMediaDescriptorParser,
1258        pad: *mut gst::GstPad,
1259    ) -> gboolean;
1260    pub fn gst_validate_media_descriptor_parser_add_taglist(
1261        parser: *mut GstValidateMediaDescriptorParser,
1262        taglist: *mut gst::GstTagList,
1263    ) -> gboolean;
1264    pub fn gst_validate_media_descriptor_parser_all_stream_found(
1265        parser: *mut GstValidateMediaDescriptorParser,
1266    ) -> gboolean;
1267    pub fn gst_validate_media_descriptor_parser_all_tags_found(
1268        parser: *mut GstValidateMediaDescriptorParser,
1269    ) -> gboolean;
1270    pub fn gst_validate_media_descriptor_parser_get_xml_path(
1271        parser: *mut GstValidateMediaDescriptorParser,
1272    ) -> *mut c_char;
1273
1274    //=========================================================================
1275    // GstValidateMediaDescriptorWriter
1276    //=========================================================================
1277    pub fn gst_validate_media_descriptor_writer_get_type() -> GType;
1278    pub fn gst_validate_media_descriptor_writer_new(
1279        runner: *mut GstValidateRunner,
1280        location: *const c_char,
1281        duration: gst::GstClockTime,
1282        seekable: gboolean,
1283    ) -> *mut GstValidateMediaDescriptorWriter;
1284    pub fn gst_validate_media_descriptor_writer_new_discover(
1285        runner: *mut GstValidateRunner,
1286        uri: *const c_char,
1287        flags: GstValidateMediaDescriptorWriterFlags,
1288        error: *mut *mut glib::GError,
1289    ) -> *mut GstValidateMediaDescriptorWriter;
1290    pub fn gst_validate_media_descriptor_writer_add_frame(
1291        writer: *mut GstValidateMediaDescriptorWriter,
1292        pad: *mut gst::GstPad,
1293        buf: *mut gst::GstBuffer,
1294    ) -> gboolean;
1295    pub fn gst_validate_media_descriptor_writer_add_pad(
1296        writer: *mut GstValidateMediaDescriptorWriter,
1297        pad: *mut gst::GstPad,
1298    ) -> gboolean;
1299    pub fn gst_validate_media_descriptor_writer_add_taglist(
1300        writer: *mut GstValidateMediaDescriptorWriter,
1301        taglist: *const gst::GstTagList,
1302    ) -> gboolean;
1303    pub fn gst_validate_media_descriptor_writer_add_tags(
1304        writer: *mut GstValidateMediaDescriptorWriter,
1305        stream_id: *const c_char,
1306        taglist: *const gst::GstTagList,
1307    ) -> gboolean;
1308    pub fn gst_validate_media_descriptor_writer_detects_frames(
1309        writer: *mut GstValidateMediaDescriptorWriter,
1310    ) -> gboolean;
1311    pub fn gst_validate_media_descriptor_writer_get_duration(
1312        writer: *mut GstValidateMediaDescriptorWriter,
1313    ) -> gst::GstClockTime;
1314    pub fn gst_validate_media_descriptor_writer_get_seekable(
1315        writer: *mut GstValidateMediaDescriptorWriter,
1316    ) -> gboolean;
1317    pub fn gst_validate_media_descriptor_writer_get_xml_path(
1318        writer: *mut GstValidateMediaDescriptorWriter,
1319    ) -> *mut c_char;
1320    pub fn gst_validate_media_descriptor_writer_serialize(
1321        writer: *mut GstValidateMediaDescriptorWriter,
1322    ) -> *mut c_char;
1323    pub fn gst_validate_media_descriptor_writer_write(
1324        writer: *mut GstValidateMediaDescriptorWriter,
1325        filename: *const c_char,
1326    ) -> gboolean;
1327
1328    //=========================================================================
1329    // GstValidateMonitor
1330    //=========================================================================
1331    pub fn gst_validate_monitor_get_type() -> GType;
1332    pub fn gst_validate_monitor_factory_create(
1333        target: *mut gst::GstObject,
1334        runner: *mut GstValidateRunner,
1335        parent: *mut GstValidateMonitor,
1336    ) -> *mut GstValidateMonitor;
1337    pub fn gst_validate_monitor_attach_override(
1338        monitor: *mut GstValidateMonitor,
1339        override_: *mut GstValidateOverride,
1340    );
1341    pub fn gst_validate_monitor_get_element(
1342        monitor: *mut GstValidateMonitor,
1343    ) -> *mut gst::GstElement;
1344    pub fn gst_validate_monitor_get_element_name(monitor: *mut GstValidateMonitor) -> *mut c_char;
1345    pub fn gst_validate_monitor_get_pipeline(
1346        monitor: *mut GstValidateMonitor,
1347    ) -> *mut gst::GstPipeline;
1348    pub fn gst_validate_monitor_get_target(monitor: *mut GstValidateMonitor)
1349        -> *mut gst::GstObject;
1350    pub fn gst_validate_monitor_set_media_descriptor(
1351        monitor: *mut GstValidateMonitor,
1352        media_descriptor: *mut GstValidateMediaDescriptor,
1353    );
1354
1355    //=========================================================================
1356    // GstValidateOverride
1357    //=========================================================================
1358    pub fn gst_validate_override_get_type() -> GType;
1359    pub fn gst_validate_override_new() -> *mut GstValidateOverride;
1360    pub fn gst_validate_override_register_by_klass(
1361        klass: *const c_char,
1362        override_: *mut GstValidateOverride,
1363    );
1364    pub fn gst_validate_override_register_by_name(
1365        name: *const c_char,
1366        override_: *mut GstValidateOverride,
1367    );
1368    pub fn gst_validate_override_register_by_type(
1369        gtype: GType,
1370        override_: *mut GstValidateOverride,
1371    );
1372    pub fn gst_validate_override_attached(override_: *mut GstValidateOverride);
1373    pub fn gst_validate_override_buffer_handler(
1374        override_: *mut GstValidateOverride,
1375        monitor: *mut GstValidateMonitor,
1376        buffer: *mut gst::GstBuffer,
1377    );
1378    pub fn gst_validate_override_buffer_probe_handler(
1379        override_: *mut GstValidateOverride,
1380        monitor: *mut GstValidateMonitor,
1381        buffer: *mut gst::GstBuffer,
1382    );
1383    pub fn gst_validate_override_can_attach(
1384        override_: *mut GstValidateOverride,
1385        monitor: *mut GstValidateMonitor,
1386    ) -> gboolean;
1387    pub fn gst_validate_override_change_severity(
1388        override_: *mut GstValidateOverride,
1389        issue_id: GstValidateIssueId,
1390        new_level: GstValidateReportLevel,
1391    );
1392    pub fn gst_validate_override_element_added_handler(
1393        override_: *mut GstValidateOverride,
1394        monitor: *mut GstValidateMonitor,
1395        child: *mut gst::GstElement,
1396    );
1397    pub fn gst_validate_override_event_handler(
1398        override_: *mut GstValidateOverride,
1399        monitor: *mut GstValidateMonitor,
1400        event: *mut gst::GstEvent,
1401    );
1402    pub fn gst_validate_override_free(override_: *mut GstValidateOverride);
1403    pub fn gst_validate_override_get_severity(
1404        override_: *mut GstValidateOverride,
1405        issue_id: GstValidateIssueId,
1406        default_level: GstValidateReportLevel,
1407    ) -> GstValidateReportLevel;
1408    pub fn gst_validate_override_getcaps_handler(
1409        override_: *mut GstValidateOverride,
1410        monitor: *mut GstValidateMonitor,
1411        caps: *mut gst::GstCaps,
1412    );
1413    pub fn gst_validate_override_query_handler(
1414        override_: *mut GstValidateOverride,
1415        monitor: *mut GstValidateMonitor,
1416        query: *mut gst::GstQuery,
1417    );
1418    pub fn gst_validate_override_set_buffer_handler(
1419        override_: *mut GstValidateOverride,
1420        handler: GstValidateOverrideBufferHandler,
1421    );
1422    pub fn gst_validate_override_set_buffer_probe_handler(
1423        override_: *mut GstValidateOverride,
1424        handler: GstValidateOverrideBufferHandler,
1425    );
1426    pub fn gst_validate_override_set_element_added_handler(
1427        override_: *mut GstValidateOverride,
1428        func: GstValidateOverrideElementAddedHandler,
1429    );
1430    pub fn gst_validate_override_set_event_handler(
1431        override_: *mut GstValidateOverride,
1432        handler: GstValidateOverrideEventHandler,
1433    );
1434    pub fn gst_validate_override_set_getcaps_handler(
1435        override_: *mut GstValidateOverride,
1436        handler: GstValidateOverrideGetCapsHandler,
1437    );
1438    pub fn gst_validate_override_set_query_handler(
1439        override_: *mut GstValidateOverride,
1440        handler: GstValidateOverrideQueryHandler,
1441    );
1442    pub fn gst_validate_override_set_setcaps_handler(
1443        override_: *mut GstValidateOverride,
1444        handler: GstValidateOverrideSetCapsHandler,
1445    );
1446    pub fn gst_validate_override_setcaps_handler(
1447        override_: *mut GstValidateOverride,
1448        monitor: *mut GstValidateMonitor,
1449        caps: *mut gst::GstCaps,
1450    );
1451
1452    //=========================================================================
1453    // GstValidatePadMonitor
1454    //=========================================================================
1455    pub fn gst_validate_pad_monitor_get_type() -> GType;
1456    pub fn gst_validate_pad_monitor_new(
1457        pad: *mut gst::GstPad,
1458        runner: *mut GstValidateRunner,
1459        parent: *mut GstValidateElementMonitor,
1460    ) -> *mut GstValidatePadMonitor;
1461
1462    //=========================================================================
1463    // GstValidatePipelineMonitor
1464    //=========================================================================
1465    pub fn gst_validate_pipeline_monitor_get_type() -> GType;
1466    pub fn gst_validate_pipeline_monitor_new(
1467        pipeline: *mut gst::GstPipeline,
1468        runner: *mut GstValidateRunner,
1469        parent: *mut GstValidateMonitor,
1470    ) -> *mut GstValidatePipelineMonitor;
1471
1472    //=========================================================================
1473    // GstValidateRunner
1474    //=========================================================================
1475    pub fn gst_validate_runner_get_type() -> GType;
1476    pub fn gst_validate_runner_new() -> *mut GstValidateRunner;
1477    pub fn gst_validate_runner_add_report(
1478        runner: *mut GstValidateRunner,
1479        report: *mut GstValidateReport,
1480    );
1481    pub fn gst_validate_runner_exit(
1482        runner: *mut GstValidateRunner,
1483        print_result: gboolean,
1484    ) -> c_int;
1485    pub fn gst_validate_runner_get_default_reporting_level(
1486        runner: *mut GstValidateRunner,
1487    ) -> GstValidateReportingDetails;
1488    pub fn gst_validate_runner_get_reporting_level_for_name(
1489        runner: *mut GstValidateRunner,
1490        name: *const c_char,
1491    ) -> GstValidateReportingDetails;
1492    pub fn gst_validate_runner_get_reports(runner: *mut GstValidateRunner) -> *mut glib::GList;
1493    pub fn gst_validate_runner_get_reports_count(runner: *mut GstValidateRunner) -> c_uint;
1494    pub fn gst_validate_runner_printf(runner: *mut GstValidateRunner) -> c_int;
1495
1496    //=========================================================================
1497    // GstValidateScenario
1498    //=========================================================================
1499    pub fn gst_validate_scenario_get_type() -> GType;
1500    pub fn gst_validate_scenario_deinit();
1501    pub fn gst_validate_scenario_factory_create(
1502        runner: *mut GstValidateRunner,
1503        pipeline: *mut gst::GstElement,
1504        scenario_name: *const c_char,
1505    ) -> *mut GstValidateScenario;
1506    pub fn gst_validate_scenario_execute_seek(
1507        scenario: *mut GstValidateScenario,
1508        action: *mut GstValidateAction,
1509        rate: c_double,
1510        format: gst::GstFormat,
1511        flags: gst::GstSeekFlags,
1512        start_type: gst::GstSeekType,
1513        start: gst::GstClockTime,
1514        stop_type: gst::GstSeekType,
1515        stop: gst::GstClockTime,
1516    ) -> c_int;
1517    pub fn gst_validate_scenario_get_actions(
1518        scenario: *mut GstValidateScenario,
1519    ) -> *mut glib::GList;
1520    pub fn gst_validate_scenario_get_pipeline(
1521        scenario: *mut GstValidateScenario,
1522    ) -> *mut gst::GstElement;
1523    pub fn gst_validate_scenario_get_target_state(
1524        scenario: *mut GstValidateScenario,
1525    ) -> gst::GstState;
1526
1527    //=========================================================================
1528    // GstValidateReporter
1529    //=========================================================================
1530    pub fn gst_validate_reporter_get_type() -> GType;
1531    pub fn gst_validate_reporter_get_name(reporter: *mut GstValidateReporter) -> *const c_char;
1532    pub fn gst_validate_reporter_get_pipeline(
1533        reporter: *mut GstValidateReporter,
1534    ) -> *mut gst::GstPipeline;
1535    pub fn gst_validate_reporter_get_report(
1536        reporter: *mut GstValidateReporter,
1537        issue_id: GstValidateIssueId,
1538    ) -> *mut GstValidateReport;
1539    pub fn gst_validate_reporter_get_reporting_level(
1540        reporter: *mut GstValidateReporter,
1541    ) -> GstValidateReportingDetails;
1542    pub fn gst_validate_reporter_get_reports(
1543        reporter: *mut GstValidateReporter,
1544    ) -> *mut glib::GList;
1545    pub fn gst_validate_reporter_get_reports_count(reporter: *mut GstValidateReporter) -> c_int;
1546    pub fn gst_validate_reporter_get_runner(
1547        reporter: *mut GstValidateReporter,
1548    ) -> *mut GstValidateRunner;
1549    pub fn gst_validate_reporter_init(reporter: *mut GstValidateReporter, name: *const c_char);
1550    pub fn gst_validate_reporter_purge_reports(reporter: *mut GstValidateReporter);
1551    pub fn gst_validate_reporter_report_simple(
1552        reporter: *mut GstValidateReporter,
1553        issue_id: GstValidateIssueId,
1554        message: *const c_char,
1555    );
1556    pub fn gst_validate_reporter_set_handle_g_logs(reporter: *mut GstValidateReporter);
1557    pub fn gst_validate_reporter_set_name(reporter: *mut GstValidateReporter, name: *mut c_char);
1558    pub fn gst_validate_reporter_set_runner(
1559        reporter: *mut GstValidateReporter,
1560        runner: *mut GstValidateRunner,
1561    );
1562
1563    //=========================================================================
1564    // Other functions
1565    //=========================================================================
1566    pub fn gst_validate_abort(format: *const c_char, ...);
1567    pub fn gst_validate_deinit();
1568    pub fn gst_validate_element_has_klass(
1569        element: *mut gst::GstElement,
1570        klass: *const c_char,
1571    ) -> gboolean;
1572    pub fn gst_validate_element_matches_target(
1573        element: *mut gst::GstElement,
1574        s: *mut gst::GstStructure,
1575    ) -> gboolean;
1576    pub fn gst_validate_error_structure(action: gpointer, format: *const c_char, ...);
1577    pub fn gst_validate_execute_action(
1578        action_type: *mut GstValidateActionType,
1579        action: *mut GstValidateAction,
1580    ) -> c_int;
1581    pub fn gst_validate_fail_on_missing_plugin() -> gboolean;
1582    pub fn gst_validate_get_action_type(type_name: *const c_char) -> *mut GstValidateActionType;
1583    pub fn gst_validate_has_colored_output() -> gboolean;
1584    pub fn gst_validate_init();
1585    pub fn gst_validate_init_debug();
1586    pub fn gst_validate_is_initialized() -> gboolean;
1587    pub fn gst_validate_list_scenarios(
1588        scenarios: *mut *mut c_char,
1589        num_scenarios: c_int,
1590        output_file: *mut c_char,
1591    ) -> gboolean;
1592    pub fn gst_validate_media_descriptors_compare(
1593        ref_: *mut GstValidateMediaDescriptor,
1594        compared: *mut GstValidateMediaDescriptor,
1595    ) -> gboolean;
1596    pub fn gst_validate_object_set_property(
1597        reporter: *mut GstValidateReporter,
1598        object: *mut gobject::GObject,
1599        property: *const c_char,
1600        value: *const gobject::GValue,
1601        optional: gboolean,
1602    ) -> GstValidateActionReturn;
1603    #[cfg(feature = "v1_24")]
1604    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
1605    pub fn gst_validate_object_set_property_full(
1606        reporter: *mut GstValidateReporter,
1607        object: *mut gobject::GObject,
1608        property: *const c_char,
1609        value: *const gobject::GValue,
1610        flags: GstValidateObjectSetPropertyFlags,
1611    ) -> GstValidateActionReturn;
1612    pub fn gst_validate_plugin_get_config(plugin: *mut gst::GstPlugin) -> *mut glib::GList;
1613    pub fn gst_validate_print_action(action: *mut GstValidateAction, message: *const c_char);
1614    pub fn gst_validate_print_action_types(
1615        wanted_types: *mut *const c_char,
1616        num_wanted_types: c_int,
1617    ) -> gboolean;
1618    pub fn gst_validate_print_issues();
1619    pub fn gst_validate_print_position(
1620        position: gst::GstClockTime,
1621        duration: gst::GstClockTime,
1622        rate: c_double,
1623        extra_info: *mut c_char,
1624    );
1625    pub fn gst_validate_printf(source: gpointer, format: *const c_char, ...);
1626    //pub fn gst_validate_printf_valist(source: gpointer, format: *const c_char, args: /*Unimplemented*/va_list);
1627    pub fn gst_validate_register_action_type(
1628        type_name: *const c_char,
1629        implementer_namespace: *const c_char,
1630        function: GstValidateExecuteAction,
1631        parameters: *mut GstValidateActionParameter,
1632        description: *const c_char,
1633        flags: GstValidateActionTypeFlags,
1634    ) -> *mut GstValidateActionType;
1635    pub fn gst_validate_register_action_type_dynamic(
1636        plugin: *mut gst::GstPlugin,
1637        type_name: *const c_char,
1638        rank: gst::GstRank,
1639        function: GstValidateExecuteAction,
1640        parameters: *mut GstValidateActionParameter,
1641        description: *const c_char,
1642        flags: GstValidateActionTypeFlags,
1643    ) -> *mut GstValidateActionType;
1644    pub fn gst_validate_replace_variables_in_string(
1645        incom: gpointer,
1646        local_vars: *mut gst::GstStructure,
1647        in_string: *const c_char,
1648        flags: GstValidateStructureResolveVariablesFlags,
1649    ) -> *mut c_char;
1650    pub fn gst_validate_report(
1651        reporter: *mut GstValidateReporter,
1652        issue_id: GstValidateIssueId,
1653        format: *const c_char,
1654        ...
1655    );
1656    pub fn gst_validate_set_globals(structure: *mut gst::GstStructure);
1657    pub fn gst_validate_setup_test_file(
1658        testfile: *const c_char,
1659        use_fakesinks: gboolean,
1660    ) -> *mut gst::GstStructure;
1661    pub fn gst_validate_skip_test(format: *const c_char, ...);
1662    pub fn gst_validate_spin_on_fault_signals();
1663    pub fn gst_validate_structs_parse_from_gfile(
1664        scenario_file: *mut gio::GFile,
1665        get_include_paths_func: GstValidateGetIncludePathsFunc,
1666    ) -> *mut glib::GList;
1667    pub fn gst_validate_structure_resolve_variables(
1668        source: gpointer,
1669        structure: *mut gst::GstStructure,
1670        local_variables: *mut gst::GstStructure,
1671        flags: GstValidateStructureResolveVariablesFlags,
1672    );
1673    pub fn gst_validate_structure_set_variables_from_struct_file(
1674        vars: *mut gst::GstStructure,
1675        struct_file: *const c_char,
1676    );
1677    pub fn gst_validate_utils_enum_from_str(
1678        type_: GType,
1679        str_enum: *const c_char,
1680        enum_value: *mut c_uint,
1681    ) -> gboolean;
1682    pub fn gst_validate_utils_flags_from_str(type_: GType, str_flags: *const c_char) -> c_uint;
1683    pub fn gst_validate_utils_get_clocktime(
1684        structure: *mut gst::GstStructure,
1685        name: *const c_char,
1686        retval: *mut gst::GstClockTime,
1687    ) -> gboolean;
1688    pub fn gst_validate_utils_get_strv(
1689        str: *mut gst::GstStructure,
1690        fieldname: *const c_char,
1691    ) -> *mut *mut c_char;
1692    pub fn gst_validate_utils_parse_expression(
1693        expr: *const c_char,
1694        variable_func: GstValidateParseVariableFunc,
1695        user_data: gpointer,
1696        error: *mut *mut c_char,
1697    ) -> c_double;
1698    pub fn gst_validate_utils_structs_parse_from_filename(
1699        scenario_file: *const c_char,
1700        get_include_paths_func: GstValidateGetIncludePathsFunc,
1701        file_path: *mut *mut c_char,
1702    ) -> *mut glib::GList;
1703    pub fn gst_validate_utils_test_file_get_meta(
1704        testfile: *const c_char,
1705        use_fakesinks: gboolean,
1706    ) -> *mut gst::GstStructure;
1707
1708}