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_message(report: *mut GstValidateReport, message: *const c_char);
1149    pub fn gst_validate_report_add_repeated_report(
1150        report: *mut GstValidateReport,
1151        repeated_report: *mut GstValidateReport,
1152    );
1153    pub fn gst_validate_report_check_abort(report: *mut GstValidateReport) -> gboolean;
1154    pub fn gst_validate_report_get_dotfile_name(report: *mut GstValidateReport) -> *mut c_char;
1155    pub fn gst_validate_report_get_issue(report: *mut GstValidateReport) -> *mut GstValidateIssue;
1156    pub fn gst_validate_report_get_issue_id(report: *mut GstValidateReport) -> u32;
1157    pub fn gst_validate_report_get_level(report: *mut GstValidateReport) -> GstValidateReportLevel;
1158    pub fn gst_validate_report_get_message(report: *mut GstValidateReport) -> *mut c_char;
1159    pub fn gst_validate_report_get_reporter(
1160        report: *mut GstValidateReport,
1161    ) -> *mut GstValidateReporter;
1162    pub fn gst_validate_report_get_reporter_name(report: *mut GstValidateReport) -> *mut c_char;
1163    pub fn gst_validate_report_get_reporting_level(
1164        report: *mut GstValidateReport,
1165    ) -> GstValidateReportingDetails;
1166    pub fn gst_validate_report_get_timestamp(report: *mut GstValidateReport) -> gst::GstClockTime;
1167    pub fn gst_validate_report_get_trace(report: *mut GstValidateReport) -> *mut c_char;
1168    pub fn gst_validate_report_print_description(report: *mut GstValidateReport);
1169    pub fn gst_validate_report_print_details(report: *mut GstValidateReport);
1170    pub fn gst_validate_report_print_detected_on(report: *mut GstValidateReport);
1171    pub fn gst_validate_report_print_level(report: *mut GstValidateReport);
1172    pub fn gst_validate_report_printf(report: *mut GstValidateReport);
1173    pub fn gst_validate_report_ref(report: *mut GstValidateReport) -> *mut GstValidateReport;
1174    pub fn gst_validate_report_set_master_report(
1175        report: *mut GstValidateReport,
1176        master_report: *mut GstValidateReport,
1177    ) -> gboolean;
1178    pub fn gst_validate_report_set_reporting_level(
1179        report: *mut GstValidateReport,
1180        level: GstValidateReportingDetails,
1181    );
1182    pub fn gst_validate_report_should_print(report: *mut GstValidateReport) -> gboolean;
1183    pub fn gst_validate_report_unref(report: *mut GstValidateReport);
1184    pub fn gst_validate_report_action(
1185        reporter: *mut GstValidateReporter,
1186        action: *mut GstValidateAction,
1187        issue_id: GstValidateIssueId,
1188        format: *const c_char,
1189        ...
1190    );
1191    pub fn gst_validate_report_init();
1192    //pub fn gst_validate_report_valist(reporter: *mut GstValidateReporter, issue_id: GstValidateIssueId, format: *const c_char, var_args: /*Unimplemented*/va_list);
1193
1194    //=========================================================================
1195    // GstValidateBinMonitor
1196    //=========================================================================
1197    pub fn gst_validate_bin_monitor_get_type() -> GType;
1198    pub fn gst_validate_bin_monitor_new(
1199        bin: *mut gst::GstBin,
1200        runner: *mut GstValidateRunner,
1201        parent: *mut GstValidateMonitor,
1202    ) -> *mut GstValidateBinMonitor;
1203    pub fn gst_validate_bin_monitor_get_scenario(
1204        monitor: *mut GstValidateBinMonitor,
1205    ) -> *mut GstValidateScenario;
1206
1207    //=========================================================================
1208    // GstValidateElementMonitor
1209    //=========================================================================
1210    pub fn gst_validate_element_monitor_get_type() -> GType;
1211    pub fn gst_validate_element_monitor_new(
1212        element: *mut gst::GstElement,
1213        runner: *mut GstValidateRunner,
1214        parent: *mut GstValidateMonitor,
1215    ) -> *mut GstValidateElementMonitor;
1216
1217    //=========================================================================
1218    // GstValidateMediaDescriptor
1219    //=========================================================================
1220    pub fn gst_validate_media_descriptor_get_type() -> GType;
1221    pub fn gst_validate_media_descriptor_detects_frames(
1222        self_: *mut GstValidateMediaDescriptor,
1223    ) -> gboolean;
1224    pub fn gst_validate_media_descriptor_get_buffers(
1225        self_: *mut GstValidateMediaDescriptor,
1226        pad: *mut gst::GstPad,
1227        compare_func: glib::GCompareFunc,
1228        bufs: *mut *mut glib::GList,
1229    ) -> gboolean;
1230    pub fn gst_validate_media_descriptor_get_duration(
1231        self_: *mut GstValidateMediaDescriptor,
1232    ) -> gst::GstClockTime;
1233    pub fn gst_validate_media_descriptor_get_pads(
1234        self_: *mut GstValidateMediaDescriptor,
1235    ) -> *mut glib::GList;
1236    pub fn gst_validate_media_descriptor_get_seekable(
1237        self_: *mut GstValidateMediaDescriptor,
1238    ) -> gboolean;
1239    pub fn gst_validate_media_descriptor_has_frame_info(
1240        self_: *mut GstValidateMediaDescriptor,
1241    ) -> gboolean;
1242
1243    //=========================================================================
1244    // GstValidateMediaDescriptorParser
1245    //=========================================================================
1246    pub fn gst_validate_media_descriptor_parser_get_type() -> GType;
1247    pub fn gst_validate_media_descriptor_parser_new(
1248        runner: *mut GstValidateRunner,
1249        xmlpath: *const c_char,
1250        error: *mut *mut glib::GError,
1251    ) -> *mut GstValidateMediaDescriptorParser;
1252    pub fn gst_validate_media_descriptor_parser_new_from_xml(
1253        runner: *mut GstValidateRunner,
1254        xml: *const c_char,
1255        error: *mut *mut glib::GError,
1256    ) -> *mut GstValidateMediaDescriptorParser;
1257    pub fn gst_validate_media_descriptor_parser_add_stream(
1258        parser: *mut GstValidateMediaDescriptorParser,
1259        pad: *mut gst::GstPad,
1260    ) -> gboolean;
1261    pub fn gst_validate_media_descriptor_parser_add_taglist(
1262        parser: *mut GstValidateMediaDescriptorParser,
1263        taglist: *mut gst::GstTagList,
1264    ) -> gboolean;
1265    pub fn gst_validate_media_descriptor_parser_all_stream_found(
1266        parser: *mut GstValidateMediaDescriptorParser,
1267    ) -> gboolean;
1268    pub fn gst_validate_media_descriptor_parser_all_tags_found(
1269        parser: *mut GstValidateMediaDescriptorParser,
1270    ) -> gboolean;
1271    pub fn gst_validate_media_descriptor_parser_get_xml_path(
1272        parser: *mut GstValidateMediaDescriptorParser,
1273    ) -> *mut c_char;
1274
1275    //=========================================================================
1276    // GstValidateMediaDescriptorWriter
1277    //=========================================================================
1278    pub fn gst_validate_media_descriptor_writer_get_type() -> GType;
1279    pub fn gst_validate_media_descriptor_writer_new(
1280        runner: *mut GstValidateRunner,
1281        location: *const c_char,
1282        duration: gst::GstClockTime,
1283        seekable: gboolean,
1284    ) -> *mut GstValidateMediaDescriptorWriter;
1285    pub fn gst_validate_media_descriptor_writer_new_discover(
1286        runner: *mut GstValidateRunner,
1287        uri: *const c_char,
1288        flags: GstValidateMediaDescriptorWriterFlags,
1289        error: *mut *mut glib::GError,
1290    ) -> *mut GstValidateMediaDescriptorWriter;
1291    pub fn gst_validate_media_descriptor_writer_add_frame(
1292        writer: *mut GstValidateMediaDescriptorWriter,
1293        pad: *mut gst::GstPad,
1294        buf: *mut gst::GstBuffer,
1295    ) -> gboolean;
1296    pub fn gst_validate_media_descriptor_writer_add_pad(
1297        writer: *mut GstValidateMediaDescriptorWriter,
1298        pad: *mut gst::GstPad,
1299    ) -> gboolean;
1300    pub fn gst_validate_media_descriptor_writer_add_taglist(
1301        writer: *mut GstValidateMediaDescriptorWriter,
1302        taglist: *const gst::GstTagList,
1303    ) -> gboolean;
1304    pub fn gst_validate_media_descriptor_writer_add_tags(
1305        writer: *mut GstValidateMediaDescriptorWriter,
1306        stream_id: *const c_char,
1307        taglist: *const gst::GstTagList,
1308    ) -> gboolean;
1309    pub fn gst_validate_media_descriptor_writer_detects_frames(
1310        writer: *mut GstValidateMediaDescriptorWriter,
1311    ) -> gboolean;
1312    pub fn gst_validate_media_descriptor_writer_get_duration(
1313        writer: *mut GstValidateMediaDescriptorWriter,
1314    ) -> gst::GstClockTime;
1315    pub fn gst_validate_media_descriptor_writer_get_seekable(
1316        writer: *mut GstValidateMediaDescriptorWriter,
1317    ) -> gboolean;
1318    pub fn gst_validate_media_descriptor_writer_get_xml_path(
1319        writer: *mut GstValidateMediaDescriptorWriter,
1320    ) -> *mut c_char;
1321    pub fn gst_validate_media_descriptor_writer_serialize(
1322        writer: *mut GstValidateMediaDescriptorWriter,
1323    ) -> *mut c_char;
1324    pub fn gst_validate_media_descriptor_writer_write(
1325        writer: *mut GstValidateMediaDescriptorWriter,
1326        filename: *const c_char,
1327    ) -> gboolean;
1328
1329    //=========================================================================
1330    // GstValidateMonitor
1331    //=========================================================================
1332    pub fn gst_validate_monitor_get_type() -> GType;
1333    pub fn gst_validate_monitor_factory_create(
1334        target: *mut gst::GstObject,
1335        runner: *mut GstValidateRunner,
1336        parent: *mut GstValidateMonitor,
1337    ) -> *mut GstValidateMonitor;
1338    pub fn gst_validate_monitor_attach_override(
1339        monitor: *mut GstValidateMonitor,
1340        override_: *mut GstValidateOverride,
1341    );
1342    pub fn gst_validate_monitor_get_element(
1343        monitor: *mut GstValidateMonitor,
1344    ) -> *mut gst::GstElement;
1345    pub fn gst_validate_monitor_get_element_name(monitor: *mut GstValidateMonitor) -> *mut c_char;
1346    pub fn gst_validate_monitor_get_pipeline(
1347        monitor: *mut GstValidateMonitor,
1348    ) -> *mut gst::GstPipeline;
1349    pub fn gst_validate_monitor_get_target(monitor: *mut GstValidateMonitor)
1350        -> *mut gst::GstObject;
1351    pub fn gst_validate_monitor_set_media_descriptor(
1352        monitor: *mut GstValidateMonitor,
1353        media_descriptor: *mut GstValidateMediaDescriptor,
1354    );
1355
1356    //=========================================================================
1357    // GstValidateOverride
1358    //=========================================================================
1359    pub fn gst_validate_override_get_type() -> GType;
1360    pub fn gst_validate_override_new() -> *mut GstValidateOverride;
1361    pub fn gst_validate_override_register_by_klass(
1362        klass: *const c_char,
1363        override_: *mut GstValidateOverride,
1364    );
1365    pub fn gst_validate_override_register_by_name(
1366        name: *const c_char,
1367        override_: *mut GstValidateOverride,
1368    );
1369    pub fn gst_validate_override_register_by_type(
1370        gtype: GType,
1371        override_: *mut GstValidateOverride,
1372    );
1373    pub fn gst_validate_override_attached(override_: *mut GstValidateOverride);
1374    pub fn gst_validate_override_buffer_handler(
1375        override_: *mut GstValidateOverride,
1376        monitor: *mut GstValidateMonitor,
1377        buffer: *mut gst::GstBuffer,
1378    );
1379    pub fn gst_validate_override_buffer_probe_handler(
1380        override_: *mut GstValidateOverride,
1381        monitor: *mut GstValidateMonitor,
1382        buffer: *mut gst::GstBuffer,
1383    );
1384    pub fn gst_validate_override_can_attach(
1385        override_: *mut GstValidateOverride,
1386        monitor: *mut GstValidateMonitor,
1387    ) -> gboolean;
1388    pub fn gst_validate_override_change_severity(
1389        override_: *mut GstValidateOverride,
1390        issue_id: GstValidateIssueId,
1391        new_level: GstValidateReportLevel,
1392    );
1393    pub fn gst_validate_override_element_added_handler(
1394        override_: *mut GstValidateOverride,
1395        monitor: *mut GstValidateMonitor,
1396        child: *mut gst::GstElement,
1397    );
1398    pub fn gst_validate_override_event_handler(
1399        override_: *mut GstValidateOverride,
1400        monitor: *mut GstValidateMonitor,
1401        event: *mut gst::GstEvent,
1402    );
1403    pub fn gst_validate_override_free(override_: *mut GstValidateOverride);
1404    pub fn gst_validate_override_get_severity(
1405        override_: *mut GstValidateOverride,
1406        issue_id: GstValidateIssueId,
1407        default_level: GstValidateReportLevel,
1408    ) -> GstValidateReportLevel;
1409    pub fn gst_validate_override_getcaps_handler(
1410        override_: *mut GstValidateOverride,
1411        monitor: *mut GstValidateMonitor,
1412        caps: *mut gst::GstCaps,
1413    );
1414    pub fn gst_validate_override_query_handler(
1415        override_: *mut GstValidateOverride,
1416        monitor: *mut GstValidateMonitor,
1417        query: *mut gst::GstQuery,
1418    );
1419    pub fn gst_validate_override_set_buffer_handler(
1420        override_: *mut GstValidateOverride,
1421        handler: GstValidateOverrideBufferHandler,
1422    );
1423    pub fn gst_validate_override_set_buffer_probe_handler(
1424        override_: *mut GstValidateOverride,
1425        handler: GstValidateOverrideBufferHandler,
1426    );
1427    pub fn gst_validate_override_set_element_added_handler(
1428        override_: *mut GstValidateOverride,
1429        func: GstValidateOverrideElementAddedHandler,
1430    );
1431    pub fn gst_validate_override_set_event_handler(
1432        override_: *mut GstValidateOverride,
1433        handler: GstValidateOverrideEventHandler,
1434    );
1435    pub fn gst_validate_override_set_getcaps_handler(
1436        override_: *mut GstValidateOverride,
1437        handler: GstValidateOverrideGetCapsHandler,
1438    );
1439    pub fn gst_validate_override_set_query_handler(
1440        override_: *mut GstValidateOverride,
1441        handler: GstValidateOverrideQueryHandler,
1442    );
1443    pub fn gst_validate_override_set_setcaps_handler(
1444        override_: *mut GstValidateOverride,
1445        handler: GstValidateOverrideSetCapsHandler,
1446    );
1447    pub fn gst_validate_override_setcaps_handler(
1448        override_: *mut GstValidateOverride,
1449        monitor: *mut GstValidateMonitor,
1450        caps: *mut gst::GstCaps,
1451    );
1452
1453    //=========================================================================
1454    // GstValidatePadMonitor
1455    //=========================================================================
1456    pub fn gst_validate_pad_monitor_get_type() -> GType;
1457    pub fn gst_validate_pad_monitor_new(
1458        pad: *mut gst::GstPad,
1459        runner: *mut GstValidateRunner,
1460        parent: *mut GstValidateElementMonitor,
1461    ) -> *mut GstValidatePadMonitor;
1462
1463    //=========================================================================
1464    // GstValidatePipelineMonitor
1465    //=========================================================================
1466    pub fn gst_validate_pipeline_monitor_get_type() -> GType;
1467    pub fn gst_validate_pipeline_monitor_new(
1468        pipeline: *mut gst::GstPipeline,
1469        runner: *mut GstValidateRunner,
1470        parent: *mut GstValidateMonitor,
1471    ) -> *mut GstValidatePipelineMonitor;
1472
1473    //=========================================================================
1474    // GstValidateRunner
1475    //=========================================================================
1476    pub fn gst_validate_runner_get_type() -> GType;
1477    pub fn gst_validate_runner_new() -> *mut GstValidateRunner;
1478    pub fn gst_validate_runner_add_report(
1479        runner: *mut GstValidateRunner,
1480        report: *mut GstValidateReport,
1481    );
1482    pub fn gst_validate_runner_exit(
1483        runner: *mut GstValidateRunner,
1484        print_result: gboolean,
1485    ) -> c_int;
1486    pub fn gst_validate_runner_get_default_reporting_level(
1487        runner: *mut GstValidateRunner,
1488    ) -> GstValidateReportingDetails;
1489    pub fn gst_validate_runner_get_reporting_level_for_name(
1490        runner: *mut GstValidateRunner,
1491        name: *const c_char,
1492    ) -> GstValidateReportingDetails;
1493    pub fn gst_validate_runner_get_reports(runner: *mut GstValidateRunner) -> *mut glib::GList;
1494    pub fn gst_validate_runner_get_reports_count(runner: *mut GstValidateRunner) -> c_uint;
1495    pub fn gst_validate_runner_printf(runner: *mut GstValidateRunner) -> c_int;
1496
1497    //=========================================================================
1498    // GstValidateScenario
1499    //=========================================================================
1500    pub fn gst_validate_scenario_get_type() -> GType;
1501    pub fn gst_validate_scenario_deinit();
1502    pub fn gst_validate_scenario_factory_create(
1503        runner: *mut GstValidateRunner,
1504        pipeline: *mut gst::GstElement,
1505        scenario_name: *const c_char,
1506    ) -> *mut GstValidateScenario;
1507    pub fn gst_validate_scenario_execute_seek(
1508        scenario: *mut GstValidateScenario,
1509        action: *mut GstValidateAction,
1510        rate: c_double,
1511        format: gst::GstFormat,
1512        flags: gst::GstSeekFlags,
1513        start_type: gst::GstSeekType,
1514        start: gst::GstClockTime,
1515        stop_type: gst::GstSeekType,
1516        stop: gst::GstClockTime,
1517    ) -> c_int;
1518    pub fn gst_validate_scenario_get_actions(
1519        scenario: *mut GstValidateScenario,
1520    ) -> *mut glib::GList;
1521    pub fn gst_validate_scenario_get_pipeline(
1522        scenario: *mut GstValidateScenario,
1523    ) -> *mut gst::GstElement;
1524    pub fn gst_validate_scenario_get_target_state(
1525        scenario: *mut GstValidateScenario,
1526    ) -> gst::GstState;
1527
1528    //=========================================================================
1529    // GstValidateReporter
1530    //=========================================================================
1531    pub fn gst_validate_reporter_get_type() -> GType;
1532    pub fn gst_validate_reporter_get_name(reporter: *mut GstValidateReporter) -> *const c_char;
1533    pub fn gst_validate_reporter_get_pipeline(
1534        reporter: *mut GstValidateReporter,
1535    ) -> *mut gst::GstPipeline;
1536    pub fn gst_validate_reporter_get_report(
1537        reporter: *mut GstValidateReporter,
1538        issue_id: GstValidateIssueId,
1539    ) -> *mut GstValidateReport;
1540    pub fn gst_validate_reporter_get_reporting_level(
1541        reporter: *mut GstValidateReporter,
1542    ) -> GstValidateReportingDetails;
1543    pub fn gst_validate_reporter_get_reports(
1544        reporter: *mut GstValidateReporter,
1545    ) -> *mut glib::GList;
1546    pub fn gst_validate_reporter_get_reports_count(reporter: *mut GstValidateReporter) -> c_int;
1547    pub fn gst_validate_reporter_get_runner(
1548        reporter: *mut GstValidateReporter,
1549    ) -> *mut GstValidateRunner;
1550    pub fn gst_validate_reporter_init(reporter: *mut GstValidateReporter, name: *const c_char);
1551    pub fn gst_validate_reporter_purge_reports(reporter: *mut GstValidateReporter);
1552    pub fn gst_validate_reporter_report_simple(
1553        reporter: *mut GstValidateReporter,
1554        issue_id: GstValidateIssueId,
1555        message: *const c_char,
1556    );
1557    pub fn gst_validate_reporter_set_handle_g_logs(reporter: *mut GstValidateReporter);
1558    pub fn gst_validate_reporter_set_name(reporter: *mut GstValidateReporter, name: *mut c_char);
1559    pub fn gst_validate_reporter_set_runner(
1560        reporter: *mut GstValidateReporter,
1561        runner: *mut GstValidateRunner,
1562    );
1563
1564    //=========================================================================
1565    // Other functions
1566    //=========================================================================
1567    pub fn gst_validate_abort(format: *const c_char, ...);
1568    pub fn gst_validate_deinit();
1569    pub fn gst_validate_element_has_klass(
1570        element: *mut gst::GstElement,
1571        klass: *const c_char,
1572    ) -> gboolean;
1573    pub fn gst_validate_element_matches_target(
1574        element: *mut gst::GstElement,
1575        s: *mut gst::GstStructure,
1576    ) -> gboolean;
1577    pub fn gst_validate_error_structure(action: gpointer, format: *const c_char, ...);
1578    pub fn gst_validate_execute_action(
1579        action_type: *mut GstValidateActionType,
1580        action: *mut GstValidateAction,
1581    ) -> c_int;
1582    pub fn gst_validate_fail_on_missing_plugin() -> gboolean;
1583    pub fn gst_validate_get_action_type(type_name: *const c_char) -> *mut GstValidateActionType;
1584    pub fn gst_validate_has_colored_output() -> gboolean;
1585    pub fn gst_validate_init();
1586    pub fn gst_validate_init_debug();
1587    pub fn gst_validate_is_initialized() -> gboolean;
1588    pub fn gst_validate_list_scenarios(
1589        scenarios: *mut *mut c_char,
1590        num_scenarios: c_int,
1591        output_file: *mut c_char,
1592    ) -> gboolean;
1593    pub fn gst_validate_media_descriptors_compare(
1594        ref_: *mut GstValidateMediaDescriptor,
1595        compared: *mut GstValidateMediaDescriptor,
1596    ) -> gboolean;
1597    pub fn gst_validate_object_set_property(
1598        reporter: *mut GstValidateReporter,
1599        object: *mut gobject::GObject,
1600        property: *const c_char,
1601        value: *const gobject::GValue,
1602        optional: gboolean,
1603    ) -> GstValidateActionReturn;
1604    #[cfg(feature = "v1_24")]
1605    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
1606    pub fn gst_validate_object_set_property_full(
1607        reporter: *mut GstValidateReporter,
1608        object: *mut gobject::GObject,
1609        property: *const c_char,
1610        value: *const gobject::GValue,
1611        flags: GstValidateObjectSetPropertyFlags,
1612    ) -> GstValidateActionReturn;
1613    pub fn gst_validate_plugin_get_config(plugin: *mut gst::GstPlugin) -> *mut glib::GList;
1614    pub fn gst_validate_print_action(action: *mut GstValidateAction, message: *const c_char);
1615    pub fn gst_validate_print_action_types(
1616        wanted_types: *mut *const c_char,
1617        num_wanted_types: c_int,
1618    ) -> gboolean;
1619    pub fn gst_validate_print_issues();
1620    pub fn gst_validate_print_position(
1621        position: gst::GstClockTime,
1622        duration: gst::GstClockTime,
1623        rate: c_double,
1624        extra_info: *mut c_char,
1625    );
1626    pub fn gst_validate_printf(source: gpointer, format: *const c_char, ...);
1627    //pub fn gst_validate_printf_valist(source: gpointer, format: *const c_char, args: /*Unimplemented*/va_list);
1628    pub fn gst_validate_register_action_type(
1629        type_name: *const c_char,
1630        implementer_namespace: *const c_char,
1631        function: GstValidateExecuteAction,
1632        parameters: *mut GstValidateActionParameter,
1633        description: *const c_char,
1634        flags: GstValidateActionTypeFlags,
1635    ) -> *mut GstValidateActionType;
1636    pub fn gst_validate_register_action_type_dynamic(
1637        plugin: *mut gst::GstPlugin,
1638        type_name: *const c_char,
1639        rank: gst::GstRank,
1640        function: GstValidateExecuteAction,
1641        parameters: *mut GstValidateActionParameter,
1642        description: *const c_char,
1643        flags: GstValidateActionTypeFlags,
1644    ) -> *mut GstValidateActionType;
1645    pub fn gst_validate_replace_variables_in_string(
1646        incom: gpointer,
1647        local_vars: *mut gst::GstStructure,
1648        in_string: *const c_char,
1649        flags: GstValidateStructureResolveVariablesFlags,
1650    ) -> *mut c_char;
1651    pub fn gst_validate_report(
1652        reporter: *mut GstValidateReporter,
1653        issue_id: GstValidateIssueId,
1654        format: *const c_char,
1655        ...
1656    );
1657    pub fn gst_validate_set_globals(structure: *mut gst::GstStructure);
1658    pub fn gst_validate_setup_test_file(
1659        testfile: *const c_char,
1660        use_fakesinks: gboolean,
1661    ) -> *mut gst::GstStructure;
1662    pub fn gst_validate_skip_test(format: *const c_char, ...);
1663    pub fn gst_validate_spin_on_fault_signals();
1664    pub fn gst_validate_structs_parse_from_gfile(
1665        scenario_file: *mut gio::GFile,
1666        get_include_paths_func: GstValidateGetIncludePathsFunc,
1667    ) -> *mut glib::GList;
1668    pub fn gst_validate_structure_resolve_variables(
1669        source: gpointer,
1670        structure: *mut gst::GstStructure,
1671        local_variables: *mut gst::GstStructure,
1672        flags: GstValidateStructureResolveVariablesFlags,
1673    );
1674    pub fn gst_validate_structure_set_variables_from_struct_file(
1675        vars: *mut gst::GstStructure,
1676        struct_file: *const c_char,
1677    );
1678    pub fn gst_validate_utils_enum_from_str(
1679        type_: GType,
1680        str_enum: *const c_char,
1681        enum_value: *mut c_uint,
1682    ) -> gboolean;
1683    pub fn gst_validate_utils_flags_from_str(type_: GType, str_flags: *const c_char) -> c_uint;
1684    pub fn gst_validate_utils_get_clocktime(
1685        structure: *mut gst::GstStructure,
1686        name: *const c_char,
1687        retval: *mut gst::GstClockTime,
1688    ) -> gboolean;
1689    pub fn gst_validate_utils_get_strv(
1690        str: *mut gst::GstStructure,
1691        fieldname: *const c_char,
1692    ) -> *mut *mut c_char;
1693    pub fn gst_validate_utils_parse_expression(
1694        expr: *const c_char,
1695        variable_func: GstValidateParseVariableFunc,
1696        user_data: gpointer,
1697        error: *mut *mut c_char,
1698    ) -> c_double;
1699    pub fn gst_validate_utils_structs_parse_from_filename(
1700        scenario_file: *const c_char,
1701        get_include_paths_func: GstValidateGetIncludePathsFunc,
1702        file_path: *mut *mut c_char,
1703    ) -> *mut glib::GList;
1704    pub fn gst_validate_utils_test_file_get_meta(
1705        testfile: *const c_char,
1706        use_fakesinks: gboolean,
1707    ) -> *mut gst::GstStructure;
1708
1709}