gstreamer_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 glib_sys as glib;
16use gobject_sys as gobject;
17
18mod manual;
19
20pub use manual::*;
21
22#[cfg(unix)]
23#[allow(unused_imports)]
24use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
25#[allow(unused_imports)]
26use libc::{intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE};
27#[allow(unused_imports)]
28use std::ffi::{
29    c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
30};
31
32#[allow(unused_imports)]
33use glib::{gboolean, gconstpointer, gpointer, GType};
34
35// Aliases
36pub type GstBufferMapInfo = GstMapInfo;
37pub type GstClockID = gpointer;
38pub type GstClockTime = u64;
39pub type GstClockTimeDiff = i64;
40pub type GstElementFactoryListType = u64;
41pub type GstMemoryMapInfo = GstMapInfo;
42
43// Enums
44pub type GstBufferingMode = c_int;
45pub const GST_BUFFERING_STREAM: GstBufferingMode = 0;
46pub const GST_BUFFERING_DOWNLOAD: GstBufferingMode = 1;
47pub const GST_BUFFERING_TIMESHIFT: GstBufferingMode = 2;
48pub const GST_BUFFERING_LIVE: GstBufferingMode = 3;
49
50pub type GstBusSyncReply = c_int;
51pub const GST_BUS_DROP: GstBusSyncReply = 0;
52pub const GST_BUS_PASS: GstBusSyncReply = 1;
53pub const GST_BUS_ASYNC: GstBusSyncReply = 2;
54
55pub type GstCapsIntersectMode = c_int;
56pub const GST_CAPS_INTERSECT_ZIG_ZAG: GstCapsIntersectMode = 0;
57pub const GST_CAPS_INTERSECT_FIRST: GstCapsIntersectMode = 1;
58
59pub type GstClockEntryType = c_int;
60pub const GST_CLOCK_ENTRY_SINGLE: GstClockEntryType = 0;
61pub const GST_CLOCK_ENTRY_PERIODIC: GstClockEntryType = 1;
62
63pub type GstClockReturn = c_int;
64pub const GST_CLOCK_OK: GstClockReturn = 0;
65pub const GST_CLOCK_EARLY: GstClockReturn = 1;
66pub const GST_CLOCK_UNSCHEDULED: GstClockReturn = 2;
67pub const GST_CLOCK_BUSY: GstClockReturn = 3;
68pub const GST_CLOCK_BADTIME: GstClockReturn = 4;
69pub const GST_CLOCK_ERROR: GstClockReturn = 5;
70pub const GST_CLOCK_UNSUPPORTED: GstClockReturn = 6;
71pub const GST_CLOCK_DONE: GstClockReturn = 7;
72
73pub type GstClockType = c_int;
74pub const GST_CLOCK_TYPE_REALTIME: GstClockType = 0;
75pub const GST_CLOCK_TYPE_MONOTONIC: GstClockType = 1;
76pub const GST_CLOCK_TYPE_OTHER: GstClockType = 2;
77pub const GST_CLOCK_TYPE_TAI: GstClockType = 3;
78
79pub type GstCoreError = c_int;
80pub const GST_CORE_ERROR_FAILED: GstCoreError = 1;
81pub const GST_CORE_ERROR_TOO_LAZY: GstCoreError = 2;
82pub const GST_CORE_ERROR_NOT_IMPLEMENTED: GstCoreError = 3;
83pub const GST_CORE_ERROR_STATE_CHANGE: GstCoreError = 4;
84pub const GST_CORE_ERROR_PAD: GstCoreError = 5;
85pub const GST_CORE_ERROR_THREAD: GstCoreError = 6;
86pub const GST_CORE_ERROR_NEGOTIATION: GstCoreError = 7;
87pub const GST_CORE_ERROR_EVENT: GstCoreError = 8;
88pub const GST_CORE_ERROR_SEEK: GstCoreError = 9;
89pub const GST_CORE_ERROR_CAPS: GstCoreError = 10;
90pub const GST_CORE_ERROR_TAG: GstCoreError = 11;
91pub const GST_CORE_ERROR_MISSING_PLUGIN: GstCoreError = 12;
92pub const GST_CORE_ERROR_CLOCK: GstCoreError = 13;
93pub const GST_CORE_ERROR_DISABLED: GstCoreError = 14;
94pub const GST_CORE_ERROR_NUM_ERRORS: GstCoreError = 15;
95
96pub type GstDebugColorMode = c_int;
97pub const GST_DEBUG_COLOR_MODE_OFF: GstDebugColorMode = 0;
98pub const GST_DEBUG_COLOR_MODE_ON: GstDebugColorMode = 1;
99pub const GST_DEBUG_COLOR_MODE_UNIX: GstDebugColorMode = 2;
100
101pub type GstDebugLevel = c_int;
102pub const GST_LEVEL_NONE: GstDebugLevel = 0;
103pub const GST_LEVEL_ERROR: GstDebugLevel = 1;
104pub const GST_LEVEL_WARNING: GstDebugLevel = 2;
105pub const GST_LEVEL_FIXME: GstDebugLevel = 3;
106pub const GST_LEVEL_INFO: GstDebugLevel = 4;
107pub const GST_LEVEL_DEBUG: GstDebugLevel = 5;
108pub const GST_LEVEL_LOG: GstDebugLevel = 6;
109pub const GST_LEVEL_TRACE: GstDebugLevel = 7;
110pub const GST_LEVEL_MEMDUMP: GstDebugLevel = 9;
111pub const GST_LEVEL_COUNT: GstDebugLevel = 10;
112
113pub type GstEventType = c_int;
114pub const GST_EVENT_UNKNOWN: GstEventType = 0;
115pub const GST_EVENT_FLUSH_START: GstEventType = 2563;
116pub const GST_EVENT_FLUSH_STOP: GstEventType = 5127;
117pub const GST_EVENT_STREAM_START: GstEventType = 10254;
118pub const GST_EVENT_CAPS: GstEventType = 12814;
119pub const GST_EVENT_SEGMENT: GstEventType = 17934;
120pub const GST_EVENT_STREAM_COLLECTION: GstEventType = 19230;
121pub const GST_EVENT_TAG: GstEventType = 20510;
122pub const GST_EVENT_BUFFERSIZE: GstEventType = 23054;
123pub const GST_EVENT_SINK_MESSAGE: GstEventType = 25630;
124pub const GST_EVENT_STREAM_GROUP_DONE: GstEventType = 26894;
125pub const GST_EVENT_EOS: GstEventType = 28174;
126pub const GST_EVENT_TOC: GstEventType = 30750;
127pub const GST_EVENT_PROTECTION: GstEventType = 33310;
128pub const GST_EVENT_SEGMENT_DONE: GstEventType = 38406;
129pub const GST_EVENT_GAP: GstEventType = 40966;
130pub const GST_EVENT_INSTANT_RATE_CHANGE: GstEventType = 46090;
131pub const GST_EVENT_QOS: GstEventType = 48641;
132pub const GST_EVENT_SEEK: GstEventType = 51201;
133pub const GST_EVENT_NAVIGATION: GstEventType = 53761;
134pub const GST_EVENT_LATENCY: GstEventType = 56321;
135pub const GST_EVENT_STEP: GstEventType = 58881;
136pub const GST_EVENT_RECONFIGURE: GstEventType = 61441;
137pub const GST_EVENT_TOC_SELECT: GstEventType = 64001;
138pub const GST_EVENT_SELECT_STREAMS: GstEventType = 66561;
139pub const GST_EVENT_INSTANT_RATE_SYNC_TIME: GstEventType = 66817;
140pub const GST_EVENT_CUSTOM_UPSTREAM: GstEventType = 69121;
141pub const GST_EVENT_CUSTOM_DOWNSTREAM: GstEventType = 71686;
142pub const GST_EVENT_CUSTOM_DOWNSTREAM_OOB: GstEventType = 74242;
143pub const GST_EVENT_CUSTOM_DOWNSTREAM_STICKY: GstEventType = 76830;
144pub const GST_EVENT_CUSTOM_BOTH: GstEventType = 79367;
145pub const GST_EVENT_CUSTOM_BOTH_OOB: GstEventType = 81923;
146
147pub type GstFlowReturn = c_int;
148pub const GST_FLOW_CUSTOM_SUCCESS_2: GstFlowReturn = 102;
149pub const GST_FLOW_CUSTOM_SUCCESS_1: GstFlowReturn = 101;
150pub const GST_FLOW_CUSTOM_SUCCESS: GstFlowReturn = 100;
151pub const GST_FLOW_OK: GstFlowReturn = 0;
152pub const GST_FLOW_NOT_LINKED: GstFlowReturn = -1;
153pub const GST_FLOW_FLUSHING: GstFlowReturn = -2;
154pub const GST_FLOW_EOS: GstFlowReturn = -3;
155pub const GST_FLOW_NOT_NEGOTIATED: GstFlowReturn = -4;
156pub const GST_FLOW_ERROR: GstFlowReturn = -5;
157pub const GST_FLOW_NOT_SUPPORTED: GstFlowReturn = -6;
158pub const GST_FLOW_CUSTOM_ERROR: GstFlowReturn = -100;
159pub const GST_FLOW_CUSTOM_ERROR_1: GstFlowReturn = -101;
160pub const GST_FLOW_CUSTOM_ERROR_2: GstFlowReturn = -102;
161
162pub type GstFormat = c_int;
163pub const GST_FORMAT_UNDEFINED: GstFormat = 0;
164pub const GST_FORMAT_DEFAULT: GstFormat = 1;
165pub const GST_FORMAT_BYTES: GstFormat = 2;
166pub const GST_FORMAT_TIME: GstFormat = 3;
167pub const GST_FORMAT_BUFFERS: GstFormat = 4;
168pub const GST_FORMAT_PERCENT: GstFormat = 5;
169
170pub type GstIteratorItem = c_int;
171pub const GST_ITERATOR_ITEM_SKIP: GstIteratorItem = 0;
172pub const GST_ITERATOR_ITEM_PASS: GstIteratorItem = 1;
173pub const GST_ITERATOR_ITEM_END: GstIteratorItem = 2;
174
175pub type GstIteratorResult = c_int;
176pub const GST_ITERATOR_DONE: GstIteratorResult = 0;
177pub const GST_ITERATOR_OK: GstIteratorResult = 1;
178pub const GST_ITERATOR_RESYNC: GstIteratorResult = 2;
179pub const GST_ITERATOR_ERROR: GstIteratorResult = 3;
180
181pub type GstLibraryError = c_int;
182pub const GST_LIBRARY_ERROR_FAILED: GstLibraryError = 1;
183pub const GST_LIBRARY_ERROR_TOO_LAZY: GstLibraryError = 2;
184pub const GST_LIBRARY_ERROR_INIT: GstLibraryError = 3;
185pub const GST_LIBRARY_ERROR_SHUTDOWN: GstLibraryError = 4;
186pub const GST_LIBRARY_ERROR_SETTINGS: GstLibraryError = 5;
187pub const GST_LIBRARY_ERROR_ENCODE: GstLibraryError = 6;
188pub const GST_LIBRARY_ERROR_NUM_ERRORS: GstLibraryError = 7;
189
190pub type GstPadDirection = c_int;
191pub const GST_PAD_UNKNOWN: GstPadDirection = 0;
192pub const GST_PAD_SRC: GstPadDirection = 1;
193pub const GST_PAD_SINK: GstPadDirection = 2;
194
195pub type GstPadLinkReturn = c_int;
196pub const GST_PAD_LINK_OK: GstPadLinkReturn = 0;
197pub const GST_PAD_LINK_WRONG_HIERARCHY: GstPadLinkReturn = -1;
198pub const GST_PAD_LINK_WAS_LINKED: GstPadLinkReturn = -2;
199pub const GST_PAD_LINK_WRONG_DIRECTION: GstPadLinkReturn = -3;
200pub const GST_PAD_LINK_NOFORMAT: GstPadLinkReturn = -4;
201pub const GST_PAD_LINK_NOSCHED: GstPadLinkReturn = -5;
202pub const GST_PAD_LINK_REFUSED: GstPadLinkReturn = -6;
203
204pub type GstPadMode = c_int;
205pub const GST_PAD_MODE_NONE: GstPadMode = 0;
206pub const GST_PAD_MODE_PUSH: GstPadMode = 1;
207pub const GST_PAD_MODE_PULL: GstPadMode = 2;
208
209pub type GstPadPresence = c_int;
210pub const GST_PAD_ALWAYS: GstPadPresence = 0;
211pub const GST_PAD_SOMETIMES: GstPadPresence = 1;
212pub const GST_PAD_REQUEST: GstPadPresence = 2;
213
214pub type GstPadProbeReturn = c_int;
215pub const GST_PAD_PROBE_DROP: GstPadProbeReturn = 0;
216pub const GST_PAD_PROBE_OK: GstPadProbeReturn = 1;
217pub const GST_PAD_PROBE_REMOVE: GstPadProbeReturn = 2;
218pub const GST_PAD_PROBE_PASS: GstPadProbeReturn = 3;
219pub const GST_PAD_PROBE_HANDLED: GstPadProbeReturn = 4;
220
221pub type GstParseError = c_int;
222pub const GST_PARSE_ERROR_SYNTAX: GstParseError = 0;
223pub const GST_PARSE_ERROR_NO_SUCH_ELEMENT: GstParseError = 1;
224pub const GST_PARSE_ERROR_NO_SUCH_PROPERTY: GstParseError = 2;
225pub const GST_PARSE_ERROR_LINK: GstParseError = 3;
226pub const GST_PARSE_ERROR_COULD_NOT_SET_PROPERTY: GstParseError = 4;
227pub const GST_PARSE_ERROR_EMPTY_BIN: GstParseError = 5;
228pub const GST_PARSE_ERROR_EMPTY: GstParseError = 6;
229pub const GST_PARSE_ERROR_DELAYED_LINK: GstParseError = 7;
230
231pub type GstPluginError = c_int;
232pub const GST_PLUGIN_ERROR_MODULE: GstPluginError = 0;
233pub const GST_PLUGIN_ERROR_DEPENDENCIES: GstPluginError = 1;
234pub const GST_PLUGIN_ERROR_NAME_MISMATCH: GstPluginError = 2;
235
236pub type GstProgressType = c_int;
237pub const GST_PROGRESS_TYPE_START: GstProgressType = 0;
238pub const GST_PROGRESS_TYPE_CONTINUE: GstProgressType = 1;
239pub const GST_PROGRESS_TYPE_COMPLETE: GstProgressType = 2;
240pub const GST_PROGRESS_TYPE_CANCELED: GstProgressType = 3;
241pub const GST_PROGRESS_TYPE_ERROR: GstProgressType = 4;
242
243pub type GstPromiseResult = c_int;
244pub const GST_PROMISE_RESULT_PENDING: GstPromiseResult = 0;
245pub const GST_PROMISE_RESULT_INTERRUPTED: GstPromiseResult = 1;
246pub const GST_PROMISE_RESULT_REPLIED: GstPromiseResult = 2;
247pub const GST_PROMISE_RESULT_EXPIRED: GstPromiseResult = 3;
248
249pub type GstQOSType = c_int;
250pub const GST_QOS_TYPE_OVERFLOW: GstQOSType = 0;
251pub const GST_QOS_TYPE_UNDERFLOW: GstQOSType = 1;
252pub const GST_QOS_TYPE_THROTTLE: GstQOSType = 2;
253
254pub type GstQueryType = c_int;
255pub const GST_QUERY_UNKNOWN: GstQueryType = 0;
256pub const GST_QUERY_POSITION: GstQueryType = 2563;
257pub const GST_QUERY_DURATION: GstQueryType = 5123;
258pub const GST_QUERY_LATENCY: GstQueryType = 7683;
259pub const GST_QUERY_JITTER: GstQueryType = 10243;
260pub const GST_QUERY_RATE: GstQueryType = 12803;
261pub const GST_QUERY_SEEKING: GstQueryType = 15363;
262pub const GST_QUERY_SEGMENT: GstQueryType = 17923;
263pub const GST_QUERY_CONVERT: GstQueryType = 20483;
264pub const GST_QUERY_FORMATS: GstQueryType = 23043;
265pub const GST_QUERY_BUFFERING: GstQueryType = 28163;
266pub const GST_QUERY_CUSTOM: GstQueryType = 30723;
267pub const GST_QUERY_URI: GstQueryType = 33283;
268pub const GST_QUERY_ALLOCATION: GstQueryType = 35846;
269pub const GST_QUERY_SCHEDULING: GstQueryType = 38401;
270pub const GST_QUERY_ACCEPT_CAPS: GstQueryType = 40963;
271pub const GST_QUERY_CAPS: GstQueryType = 43523;
272pub const GST_QUERY_DRAIN: GstQueryType = 46086;
273pub const GST_QUERY_CONTEXT: GstQueryType = 48643;
274pub const GST_QUERY_BITRATE: GstQueryType = 51202;
275#[cfg(feature = "v1_22")]
276#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
277pub const GST_QUERY_SELECTABLE: GstQueryType = 53763;
278
279pub type GstRank = c_int;
280pub const GST_RANK_NONE: GstRank = 0;
281pub const GST_RANK_MARGINAL: GstRank = 64;
282pub const GST_RANK_SECONDARY: GstRank = 128;
283pub const GST_RANK_PRIMARY: GstRank = 256;
284
285pub type GstResourceError = c_int;
286pub const GST_RESOURCE_ERROR_FAILED: GstResourceError = 1;
287pub const GST_RESOURCE_ERROR_TOO_LAZY: GstResourceError = 2;
288pub const GST_RESOURCE_ERROR_NOT_FOUND: GstResourceError = 3;
289pub const GST_RESOURCE_ERROR_BUSY: GstResourceError = 4;
290pub const GST_RESOURCE_ERROR_OPEN_READ: GstResourceError = 5;
291pub const GST_RESOURCE_ERROR_OPEN_WRITE: GstResourceError = 6;
292pub const GST_RESOURCE_ERROR_OPEN_READ_WRITE: GstResourceError = 7;
293pub const GST_RESOURCE_ERROR_CLOSE: GstResourceError = 8;
294pub const GST_RESOURCE_ERROR_READ: GstResourceError = 9;
295pub const GST_RESOURCE_ERROR_WRITE: GstResourceError = 10;
296pub const GST_RESOURCE_ERROR_SEEK: GstResourceError = 11;
297pub const GST_RESOURCE_ERROR_SYNC: GstResourceError = 12;
298pub const GST_RESOURCE_ERROR_SETTINGS: GstResourceError = 13;
299pub const GST_RESOURCE_ERROR_NO_SPACE_LEFT: GstResourceError = 14;
300pub const GST_RESOURCE_ERROR_NOT_AUTHORIZED: GstResourceError = 15;
301pub const GST_RESOURCE_ERROR_NUM_ERRORS: GstResourceError = 16;
302
303pub type GstSearchMode = c_int;
304pub const GST_SEARCH_MODE_EXACT: GstSearchMode = 0;
305pub const GST_SEARCH_MODE_BEFORE: GstSearchMode = 1;
306pub const GST_SEARCH_MODE_AFTER: GstSearchMode = 2;
307
308pub type GstSeekType = c_int;
309pub const GST_SEEK_TYPE_NONE: GstSeekType = 0;
310pub const GST_SEEK_TYPE_SET: GstSeekType = 1;
311pub const GST_SEEK_TYPE_END: GstSeekType = 2;
312
313pub type GstState = c_int;
314pub const GST_STATE_VOID_PENDING: GstState = 0;
315pub const GST_STATE_NULL: GstState = 1;
316pub const GST_STATE_READY: GstState = 2;
317pub const GST_STATE_PAUSED: GstState = 3;
318pub const GST_STATE_PLAYING: GstState = 4;
319
320pub type GstStateChange = c_int;
321pub const GST_STATE_CHANGE_NULL_TO_READY: GstStateChange = 10;
322pub const GST_STATE_CHANGE_READY_TO_PAUSED: GstStateChange = 19;
323pub const GST_STATE_CHANGE_PAUSED_TO_PLAYING: GstStateChange = 28;
324pub const GST_STATE_CHANGE_PLAYING_TO_PAUSED: GstStateChange = 35;
325pub const GST_STATE_CHANGE_PAUSED_TO_READY: GstStateChange = 26;
326pub const GST_STATE_CHANGE_READY_TO_NULL: GstStateChange = 17;
327pub const GST_STATE_CHANGE_NULL_TO_NULL: GstStateChange = 9;
328pub const GST_STATE_CHANGE_READY_TO_READY: GstStateChange = 18;
329pub const GST_STATE_CHANGE_PAUSED_TO_PAUSED: GstStateChange = 27;
330pub const GST_STATE_CHANGE_PLAYING_TO_PLAYING: GstStateChange = 36;
331
332pub type GstStateChangeReturn = c_int;
333pub const GST_STATE_CHANGE_FAILURE: GstStateChangeReturn = 0;
334pub const GST_STATE_CHANGE_SUCCESS: GstStateChangeReturn = 1;
335pub const GST_STATE_CHANGE_ASYNC: GstStateChangeReturn = 2;
336pub const GST_STATE_CHANGE_NO_PREROLL: GstStateChangeReturn = 3;
337
338pub type GstStreamError = c_int;
339pub const GST_STREAM_ERROR_FAILED: GstStreamError = 1;
340pub const GST_STREAM_ERROR_TOO_LAZY: GstStreamError = 2;
341pub const GST_STREAM_ERROR_NOT_IMPLEMENTED: GstStreamError = 3;
342pub const GST_STREAM_ERROR_TYPE_NOT_FOUND: GstStreamError = 4;
343pub const GST_STREAM_ERROR_WRONG_TYPE: GstStreamError = 5;
344pub const GST_STREAM_ERROR_CODEC_NOT_FOUND: GstStreamError = 6;
345pub const GST_STREAM_ERROR_DECODE: GstStreamError = 7;
346pub const GST_STREAM_ERROR_ENCODE: GstStreamError = 8;
347pub const GST_STREAM_ERROR_DEMUX: GstStreamError = 9;
348pub const GST_STREAM_ERROR_MUX: GstStreamError = 10;
349pub const GST_STREAM_ERROR_FORMAT: GstStreamError = 11;
350pub const GST_STREAM_ERROR_DECRYPT: GstStreamError = 12;
351pub const GST_STREAM_ERROR_DECRYPT_NOKEY: GstStreamError = 13;
352pub const GST_STREAM_ERROR_NUM_ERRORS: GstStreamError = 14;
353
354pub type GstStreamStatusType = c_int;
355pub const GST_STREAM_STATUS_TYPE_CREATE: GstStreamStatusType = 0;
356pub const GST_STREAM_STATUS_TYPE_ENTER: GstStreamStatusType = 1;
357pub const GST_STREAM_STATUS_TYPE_LEAVE: GstStreamStatusType = 2;
358pub const GST_STREAM_STATUS_TYPE_DESTROY: GstStreamStatusType = 3;
359pub const GST_STREAM_STATUS_TYPE_START: GstStreamStatusType = 8;
360pub const GST_STREAM_STATUS_TYPE_PAUSE: GstStreamStatusType = 9;
361pub const GST_STREAM_STATUS_TYPE_STOP: GstStreamStatusType = 10;
362
363pub type GstStructureChangeType = c_int;
364pub const GST_STRUCTURE_CHANGE_TYPE_PAD_LINK: GstStructureChangeType = 0;
365pub const GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK: GstStructureChangeType = 1;
366
367pub type GstTagFlag = c_int;
368pub const GST_TAG_FLAG_UNDEFINED: GstTagFlag = 0;
369pub const GST_TAG_FLAG_META: GstTagFlag = 1;
370pub const GST_TAG_FLAG_ENCODED: GstTagFlag = 2;
371pub const GST_TAG_FLAG_DECODED: GstTagFlag = 3;
372pub const GST_TAG_FLAG_COUNT: GstTagFlag = 4;
373
374pub type GstTagMergeMode = c_int;
375pub const GST_TAG_MERGE_UNDEFINED: GstTagMergeMode = 0;
376pub const GST_TAG_MERGE_REPLACE_ALL: GstTagMergeMode = 1;
377pub const GST_TAG_MERGE_REPLACE: GstTagMergeMode = 2;
378pub const GST_TAG_MERGE_APPEND: GstTagMergeMode = 3;
379pub const GST_TAG_MERGE_PREPEND: GstTagMergeMode = 4;
380pub const GST_TAG_MERGE_KEEP: GstTagMergeMode = 5;
381pub const GST_TAG_MERGE_KEEP_ALL: GstTagMergeMode = 6;
382pub const GST_TAG_MERGE_COUNT: GstTagMergeMode = 7;
383
384pub type GstTagScope = c_int;
385pub const GST_TAG_SCOPE_STREAM: GstTagScope = 0;
386pub const GST_TAG_SCOPE_GLOBAL: GstTagScope = 1;
387
388pub type GstTaskState = c_int;
389pub const GST_TASK_STARTED: GstTaskState = 0;
390pub const GST_TASK_STOPPED: GstTaskState = 1;
391pub const GST_TASK_PAUSED: GstTaskState = 2;
392
393pub type GstTocEntryType = c_int;
394pub const GST_TOC_ENTRY_TYPE_ANGLE: GstTocEntryType = -3;
395pub const GST_TOC_ENTRY_TYPE_VERSION: GstTocEntryType = -2;
396pub const GST_TOC_ENTRY_TYPE_EDITION: GstTocEntryType = -1;
397pub const GST_TOC_ENTRY_TYPE_INVALID: GstTocEntryType = 0;
398pub const GST_TOC_ENTRY_TYPE_TITLE: GstTocEntryType = 1;
399pub const GST_TOC_ENTRY_TYPE_TRACK: GstTocEntryType = 2;
400pub const GST_TOC_ENTRY_TYPE_CHAPTER: GstTocEntryType = 3;
401
402pub type GstTocLoopType = c_int;
403pub const GST_TOC_LOOP_NONE: GstTocLoopType = 0;
404pub const GST_TOC_LOOP_FORWARD: GstTocLoopType = 1;
405pub const GST_TOC_LOOP_REVERSE: GstTocLoopType = 2;
406pub const GST_TOC_LOOP_PING_PONG: GstTocLoopType = 3;
407
408pub type GstTocScope = c_int;
409pub const GST_TOC_SCOPE_GLOBAL: GstTocScope = 1;
410pub const GST_TOC_SCOPE_CURRENT: GstTocScope = 2;
411
412pub type GstTracerValueScope = c_int;
413pub const GST_TRACER_VALUE_SCOPE_PROCESS: GstTracerValueScope = 0;
414pub const GST_TRACER_VALUE_SCOPE_THREAD: GstTracerValueScope = 1;
415pub const GST_TRACER_VALUE_SCOPE_ELEMENT: GstTracerValueScope = 2;
416pub const GST_TRACER_VALUE_SCOPE_PAD: GstTracerValueScope = 3;
417
418pub type GstTypeFindProbability = c_int;
419pub const GST_TYPE_FIND_NONE: GstTypeFindProbability = 0;
420pub const GST_TYPE_FIND_MINIMUM: GstTypeFindProbability = 1;
421pub const GST_TYPE_FIND_POSSIBLE: GstTypeFindProbability = 50;
422pub const GST_TYPE_FIND_LIKELY: GstTypeFindProbability = 80;
423pub const GST_TYPE_FIND_NEARLY_CERTAIN: GstTypeFindProbability = 99;
424pub const GST_TYPE_FIND_MAXIMUM: GstTypeFindProbability = 100;
425
426pub type GstURIError = c_int;
427pub const GST_URI_ERROR_UNSUPPORTED_PROTOCOL: GstURIError = 0;
428pub const GST_URI_ERROR_BAD_URI: GstURIError = 1;
429pub const GST_URI_ERROR_BAD_STATE: GstURIError = 2;
430pub const GST_URI_ERROR_BAD_REFERENCE: GstURIError = 3;
431
432pub type GstURIType = c_int;
433pub const GST_URI_UNKNOWN: GstURIType = 0;
434pub const GST_URI_SINK: GstURIType = 1;
435pub const GST_URI_SRC: GstURIType = 2;
436
437// Constants
438pub const GST_ALLOCATOR_SYSMEM: &[u8] = b"SystemMemory\0";
439pub const GST_BUFFER_COPY_ALL: GstBufferCopyFlags = 15;
440pub const GST_BUFFER_COPY_METADATA: GstBufferCopyFlags = 7;
441pub const GST_BUFFER_OFFSET_NONE: u64 = 18446744073709551615;
442pub const GST_CAN_INLINE: c_int = 1;
443pub const GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY: &[u8] = b"memory:SystemMemory\0";
444pub const GST_CLOCK_TIME_NONE: GstClockTime = 18446744073709551615;
445pub const GST_DEBUG_BG_MASK: c_int = 240;
446pub const GST_DEBUG_FG_MASK: c_int = 15;
447pub const GST_DEBUG_FORMAT_MASK: c_int = 65280;
448pub const GST_ELEMENT_FACTORY_KLASS_DECODER: &[u8] = b"Decoder\0";
449pub const GST_ELEMENT_FACTORY_KLASS_DECRYPTOR: &[u8] = b"Decryptor\0";
450pub const GST_ELEMENT_FACTORY_KLASS_DEMUXER: &[u8] = b"Demuxer\0";
451pub const GST_ELEMENT_FACTORY_KLASS_DEPAYLOADER: &[u8] = b"Depayloader\0";
452pub const GST_ELEMENT_FACTORY_KLASS_ENCODER: &[u8] = b"Encoder\0";
453pub const GST_ELEMENT_FACTORY_KLASS_ENCRYPTOR: &[u8] = b"Encryptor\0";
454pub const GST_ELEMENT_FACTORY_KLASS_FORMATTER: &[u8] = b"Formatter\0";
455pub const GST_ELEMENT_FACTORY_KLASS_HARDWARE: &[u8] = b"Hardware\0";
456pub const GST_ELEMENT_FACTORY_KLASS_MEDIA_AUDIO: &[u8] = b"Audio\0";
457pub const GST_ELEMENT_FACTORY_KLASS_MEDIA_IMAGE: &[u8] = b"Image\0";
458pub const GST_ELEMENT_FACTORY_KLASS_MEDIA_METADATA: &[u8] = b"Metadata\0";
459pub const GST_ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE: &[u8] = b"Subtitle\0";
460pub const GST_ELEMENT_FACTORY_KLASS_MEDIA_VIDEO: &[u8] = b"Video\0";
461pub const GST_ELEMENT_FACTORY_KLASS_MUXER: &[u8] = b"Muxer\0";
462pub const GST_ELEMENT_FACTORY_KLASS_PARSER: &[u8] = b"Parser\0";
463pub const GST_ELEMENT_FACTORY_KLASS_PAYLOADER: &[u8] = b"Payloader\0";
464pub const GST_ELEMENT_FACTORY_KLASS_SINK: &[u8] = b"Sink\0";
465pub const GST_ELEMENT_FACTORY_KLASS_SRC: &[u8] = b"Source\0";
466pub const GST_ELEMENT_FACTORY_TYPE_ANY: GstElementFactoryListType = 562949953421311;
467pub const GST_ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS: GstElementFactoryListType = 3940649673949188;
468pub const GST_ELEMENT_FACTORY_TYPE_AUDIO_ENCODER: GstElementFactoryListType = 1125899906842626;
469pub const GST_ELEMENT_FACTORY_TYPE_DECODABLE: GstElementFactoryListType = 1377;
470pub const GST_ELEMENT_FACTORY_TYPE_DECODER: GstElementFactoryListType = 1;
471pub const GST_ELEMENT_FACTORY_TYPE_DECRYPTOR: GstElementFactoryListType = 1024;
472pub const GST_ELEMENT_FACTORY_TYPE_DEMUXER: GstElementFactoryListType = 32;
473pub const GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER: GstElementFactoryListType = 256;
474pub const GST_ELEMENT_FACTORY_TYPE_ENCODER: GstElementFactoryListType = 2;
475pub const GST_ELEMENT_FACTORY_TYPE_ENCRYPTOR: GstElementFactoryListType = 2048;
476pub const GST_ELEMENT_FACTORY_TYPE_FORMATTER: GstElementFactoryListType = 512;
477pub const GST_ELEMENT_FACTORY_TYPE_HARDWARE: GstElementFactoryListType = 4096;
478pub const GST_ELEMENT_FACTORY_TYPE_MAX_ELEMENTS: GstElementFactoryListType = 281474976710656;
479pub const GST_ELEMENT_FACTORY_TYPE_MEDIA_ANY: GstElementFactoryListType = 18446462598732840960;
480pub const GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO: GstElementFactoryListType = 1125899906842624;
481pub const GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE: GstElementFactoryListType = 2251799813685248;
482pub const GST_ELEMENT_FACTORY_TYPE_MEDIA_METADATA: GstElementFactoryListType = 9007199254740992;
483pub const GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE: GstElementFactoryListType = 4503599627370496;
484pub const GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO: GstElementFactoryListType = 562949953421312;
485pub const GST_ELEMENT_FACTORY_TYPE_MUXER: GstElementFactoryListType = 16;
486pub const GST_ELEMENT_FACTORY_TYPE_PARSER: GstElementFactoryListType = 64;
487pub const GST_ELEMENT_FACTORY_TYPE_PAYLOADER: GstElementFactoryListType = 128;
488pub const GST_ELEMENT_FACTORY_TYPE_SINK: GstElementFactoryListType = 4;
489pub const GST_ELEMENT_FACTORY_TYPE_SRC: GstElementFactoryListType = 8;
490pub const GST_ELEMENT_FACTORY_TYPE_TIMESTAMPER: GstElementFactoryListType = 8192;
491pub const GST_ELEMENT_FACTORY_TYPE_VIDEO_ENCODER: GstElementFactoryListType = 2814749767106562;
492pub const GST_ELEMENT_METADATA_AUTHOR: &[u8] = b"author\0";
493pub const GST_ELEMENT_METADATA_DESCRIPTION: &[u8] = b"description\0";
494pub const GST_ELEMENT_METADATA_DOC_URI: &[u8] = b"doc-uri\0";
495pub const GST_ELEMENT_METADATA_ICON_NAME: &[u8] = b"icon-name\0";
496pub const GST_ELEMENT_METADATA_KLASS: &[u8] = b"klass\0";
497pub const GST_ELEMENT_METADATA_LONGNAME: &[u8] = b"long-name\0";
498pub const GST_EVENT_NUM_SHIFT: c_int = 8;
499pub const GST_EVENT_TYPE_BOTH: GstEventTypeFlags = 3;
500pub const GST_FLAG_SET_MASK_EXACT: c_uint = 4294967295;
501pub const GST_FORMAT_PERCENT_MAX: i64 = 1000000;
502pub const GST_FORMAT_PERCENT_SCALE: i64 = 10000;
503pub const GST_GROUP_ID_INVALID: c_int = 0;
504pub const GST_LICENSE_UNKNOWN: &[u8] = b"unknown\0";
505pub const GST_LOCK_FLAG_READWRITE: GstLockFlags = 3;
506pub const GST_MAP_READWRITE: GstMapFlags = 3;
507pub const GST_META_TAG_MEMORY_REFERENCE_STR: &[u8] = b"memory-reference\0";
508pub const GST_META_TAG_MEMORY_STR: &[u8] = b"memory\0";
509pub const GST_MSECOND: GstClockTimeDiff = 1000000;
510pub const GST_NSECOND: GstClockTimeDiff = 1;
511pub const GST_PARAM_CONDITIONALLY_AVAILABLE: c_int = 16384;
512pub const GST_PARAM_CONTROLLABLE: c_int = 512;
513pub const GST_PARAM_DOC_SHOW_DEFAULT: c_int = 8192;
514pub const GST_PARAM_MUTABLE_PAUSED: c_int = 2048;
515pub const GST_PARAM_MUTABLE_PLAYING: c_int = 4096;
516pub const GST_PARAM_MUTABLE_READY: c_int = 1024;
517pub const GST_PARAM_USER_SHIFT: c_int = 65536;
518pub const GST_PROTECTION_SYSTEM_ID_CAPS_FIELD: &[u8] = b"protection-system\0";
519pub const GST_PROTECTION_UNSPECIFIED_SYSTEM_ID: &[u8] = b"unspecified-system-id\0";
520pub const GST_QUERY_NUM_SHIFT: c_int = 8;
521pub const GST_QUERY_TYPE_BOTH: GstQueryTypeFlags = 3;
522pub const GST_SECOND: GstClockTimeDiff = 1000000000;
523pub const GST_SEGMENT_INSTANT_FLAGS: c_int = 912;
524pub const GST_SEQNUM_INVALID: c_int = 0;
525pub const GST_TAG_ALBUM: &[u8] = b"album\0";
526pub const GST_TAG_ALBUM_ARTIST: &[u8] = b"album-artist\0";
527pub const GST_TAG_ALBUM_ARTIST_SORTNAME: &[u8] = b"album-artist-sortname\0";
528pub const GST_TAG_ALBUM_GAIN: &[u8] = b"replaygain-album-gain\0";
529pub const GST_TAG_ALBUM_PEAK: &[u8] = b"replaygain-album-peak\0";
530pub const GST_TAG_ALBUM_SORTNAME: &[u8] = b"album-sortname\0";
531pub const GST_TAG_ALBUM_VOLUME_COUNT: &[u8] = b"album-disc-count\0";
532pub const GST_TAG_ALBUM_VOLUME_NUMBER: &[u8] = b"album-disc-number\0";
533pub const GST_TAG_APPLICATION_DATA: &[u8] = b"application-data\0";
534pub const GST_TAG_APPLICATION_NAME: &[u8] = b"application-name\0";
535pub const GST_TAG_ARTIST: &[u8] = b"artist\0";
536pub const GST_TAG_ARTIST_SORTNAME: &[u8] = b"artist-sortname\0";
537pub const GST_TAG_ATTACHMENT: &[u8] = b"attachment\0";
538pub const GST_TAG_AUDIO_CODEC: &[u8] = b"audio-codec\0";
539pub const GST_TAG_BEATS_PER_MINUTE: &[u8] = b"beats-per-minute\0";
540pub const GST_TAG_BITRATE: &[u8] = b"bitrate\0";
541pub const GST_TAG_CODEC: &[u8] = b"codec\0";
542pub const GST_TAG_COMMENT: &[u8] = b"comment\0";
543pub const GST_TAG_COMPOSER: &[u8] = b"composer\0";
544pub const GST_TAG_COMPOSER_SORTNAME: &[u8] = b"composer-sortname\0";
545pub const GST_TAG_CONDUCTOR: &[u8] = b"conductor\0";
546pub const GST_TAG_CONTACT: &[u8] = b"contact\0";
547pub const GST_TAG_CONTAINER_FORMAT: &[u8] = b"container-format\0";
548pub const GST_TAG_CONTAINER_SPECIFIC_TRACK_ID: &[u8] = b"container-specific-track-id\0";
549pub const GST_TAG_COPYRIGHT: &[u8] = b"copyright\0";
550pub const GST_TAG_COPYRIGHT_URI: &[u8] = b"copyright-uri\0";
551pub const GST_TAG_DATE: &[u8] = b"date\0";
552pub const GST_TAG_DATE_TIME: &[u8] = b"datetime\0";
553pub const GST_TAG_DESCRIPTION: &[u8] = b"description\0";
554pub const GST_TAG_DEVICE_MANUFACTURER: &[u8] = b"device-manufacturer\0";
555pub const GST_TAG_DEVICE_MODEL: &[u8] = b"device-model\0";
556pub const GST_TAG_DURATION: &[u8] = b"duration\0";
557pub const GST_TAG_ENCODED_BY: &[u8] = b"encoded-by\0";
558pub const GST_TAG_ENCODER: &[u8] = b"encoder\0";
559pub const GST_TAG_ENCODER_VERSION: &[u8] = b"encoder-version\0";
560pub const GST_TAG_EXTENDED_COMMENT: &[u8] = b"extended-comment\0";
561pub const GST_TAG_GENRE: &[u8] = b"genre\0";
562pub const GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION: &[u8] = b"geo-location-capture-direction\0";
563pub const GST_TAG_GEO_LOCATION_CITY: &[u8] = b"geo-location-city\0";
564pub const GST_TAG_GEO_LOCATION_COUNTRY: &[u8] = b"geo-location-country\0";
565pub const GST_TAG_GEO_LOCATION_ELEVATION: &[u8] = b"geo-location-elevation\0";
566pub const GST_TAG_GEO_LOCATION_HORIZONTAL_ERROR: &[u8] = b"geo-location-horizontal-error\0";
567pub const GST_TAG_GEO_LOCATION_LATITUDE: &[u8] = b"geo-location-latitude\0";
568pub const GST_TAG_GEO_LOCATION_LONGITUDE: &[u8] = b"geo-location-longitude\0";
569pub const GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION: &[u8] = b"geo-location-movement-direction\0";
570pub const GST_TAG_GEO_LOCATION_MOVEMENT_SPEED: &[u8] = b"geo-location-movement-speed\0";
571pub const GST_TAG_GEO_LOCATION_NAME: &[u8] = b"geo-location-name\0";
572pub const GST_TAG_GEO_LOCATION_SUBLOCATION: &[u8] = b"geo-location-sublocation\0";
573pub const GST_TAG_GROUPING: &[u8] = b"grouping\0";
574pub const GST_TAG_HOMEPAGE: &[u8] = b"homepage\0";
575pub const GST_TAG_IMAGE: &[u8] = b"image\0";
576pub const GST_TAG_IMAGE_ORIENTATION: &[u8] = b"image-orientation\0";
577pub const GST_TAG_INTERPRETED_BY: &[u8] = b"interpreted-by\0";
578pub const GST_TAG_ISRC: &[u8] = b"isrc\0";
579pub const GST_TAG_KEYWORDS: &[u8] = b"keywords\0";
580pub const GST_TAG_LANGUAGE_CODE: &[u8] = b"language-code\0";
581pub const GST_TAG_LANGUAGE_NAME: &[u8] = b"language-name\0";
582pub const GST_TAG_LICENSE: &[u8] = b"license\0";
583pub const GST_TAG_LICENSE_URI: &[u8] = b"license-uri\0";
584pub const GST_TAG_LOCATION: &[u8] = b"location\0";
585pub const GST_TAG_LYRICS: &[u8] = b"lyrics\0";
586pub const GST_TAG_MAXIMUM_BITRATE: &[u8] = b"maximum-bitrate\0";
587pub const GST_TAG_MIDI_BASE_NOTE: &[u8] = b"midi-base-note\0";
588pub const GST_TAG_MINIMUM_BITRATE: &[u8] = b"minimum-bitrate\0";
589pub const GST_TAG_NOMINAL_BITRATE: &[u8] = b"nominal-bitrate\0";
590pub const GST_TAG_ORGANIZATION: &[u8] = b"organization\0";
591pub const GST_TAG_PERFORMER: &[u8] = b"performer\0";
592pub const GST_TAG_PREVIEW_IMAGE: &[u8] = b"preview-image\0";
593pub const GST_TAG_PRIVATE_DATA: &[u8] = b"private-data\0";
594pub const GST_TAG_PUBLISHER: &[u8] = b"publisher\0";
595pub const GST_TAG_REFERENCE_LEVEL: &[u8] = b"replaygain-reference-level\0";
596pub const GST_TAG_SERIAL: &[u8] = b"serial\0";
597pub const GST_TAG_SHOW_EPISODE_NUMBER: &[u8] = b"show-episode-number\0";
598pub const GST_TAG_SHOW_NAME: &[u8] = b"show-name\0";
599pub const GST_TAG_SHOW_SEASON_NUMBER: &[u8] = b"show-season-number\0";
600pub const GST_TAG_SHOW_SORTNAME: &[u8] = b"show-sortname\0";
601pub const GST_TAG_SUBTITLE_CODEC: &[u8] = b"subtitle-codec\0";
602pub const GST_TAG_TITLE: &[u8] = b"title\0";
603pub const GST_TAG_TITLE_SORTNAME: &[u8] = b"title-sortname\0";
604pub const GST_TAG_TRACK_COUNT: &[u8] = b"track-count\0";
605pub const GST_TAG_TRACK_GAIN: &[u8] = b"replaygain-track-gain\0";
606pub const GST_TAG_TRACK_NUMBER: &[u8] = b"track-number\0";
607pub const GST_TAG_TRACK_PEAK: &[u8] = b"replaygain-track-peak\0";
608pub const GST_TAG_USER_RATING: &[u8] = b"user-rating\0";
609pub const GST_TAG_VERSION: &[u8] = b"version\0";
610pub const GST_TAG_VIDEO_CODEC: &[u8] = b"video-codec\0";
611pub const GST_TOC_REPEAT_COUNT_INFINITE: c_int = -1;
612pub const GST_URI_NO_PORT: c_int = 0;
613pub const GST_USECOND: GstClockTimeDiff = 1000;
614pub const GST_VALUE_EQUAL: c_int = 0;
615pub const GST_VALUE_GREATER_THAN: c_int = 1;
616pub const GST_VALUE_LESS_THAN: c_int = -1;
617pub const GST_VALUE_UNORDERED: c_int = 2;
618
619// Flags
620pub type GstAllocatorFlags = c_uint;
621pub const GST_ALLOCATOR_FLAG_CUSTOM_ALLOC: GstAllocatorFlags = 16;
622#[cfg(feature = "v1_24")]
623#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
624pub const GST_ALLOCATOR_FLAG_NO_COPY: GstAllocatorFlags = 32;
625pub const GST_ALLOCATOR_FLAG_LAST: GstAllocatorFlags = 1048576;
626
627pub type GstBinFlags = c_uint;
628pub const GST_BIN_FLAG_NO_RESYNC: GstBinFlags = 16384;
629pub const GST_BIN_FLAG_STREAMS_AWARE: GstBinFlags = 32768;
630pub const GST_BIN_FLAG_LAST: GstBinFlags = 524288;
631
632pub type GstBufferCopyFlags = c_uint;
633pub const GST_BUFFER_COPY_NONE: GstBufferCopyFlags = 0;
634pub const GST_BUFFER_COPY_FLAGS: GstBufferCopyFlags = 1;
635pub const GST_BUFFER_COPY_TIMESTAMPS: GstBufferCopyFlags = 2;
636pub const GST_BUFFER_COPY_META: GstBufferCopyFlags = 4;
637pub const GST_BUFFER_COPY_MEMORY: GstBufferCopyFlags = 8;
638pub const GST_BUFFER_COPY_MERGE: GstBufferCopyFlags = 16;
639pub const GST_BUFFER_COPY_DEEP: GstBufferCopyFlags = 32;
640
641pub type GstBufferFlags = c_uint;
642pub const GST_BUFFER_FLAG_LIVE: GstBufferFlags = 16;
643pub const GST_BUFFER_FLAG_DECODE_ONLY: GstBufferFlags = 32;
644pub const GST_BUFFER_FLAG_DISCONT: GstBufferFlags = 64;
645pub const GST_BUFFER_FLAG_RESYNC: GstBufferFlags = 128;
646pub const GST_BUFFER_FLAG_CORRUPTED: GstBufferFlags = 256;
647pub const GST_BUFFER_FLAG_MARKER: GstBufferFlags = 512;
648pub const GST_BUFFER_FLAG_HEADER: GstBufferFlags = 1024;
649pub const GST_BUFFER_FLAG_GAP: GstBufferFlags = 2048;
650pub const GST_BUFFER_FLAG_DROPPABLE: GstBufferFlags = 4096;
651pub const GST_BUFFER_FLAG_DELTA_UNIT: GstBufferFlags = 8192;
652pub const GST_BUFFER_FLAG_TAG_MEMORY: GstBufferFlags = 16384;
653pub const GST_BUFFER_FLAG_SYNC_AFTER: GstBufferFlags = 32768;
654pub const GST_BUFFER_FLAG_NON_DROPPABLE: GstBufferFlags = 65536;
655pub const GST_BUFFER_FLAG_LAST: GstBufferFlags = 1048576;
656
657pub type GstBufferPoolAcquireFlags = c_uint;
658pub const GST_BUFFER_POOL_ACQUIRE_FLAG_NONE: GstBufferPoolAcquireFlags = 0;
659pub const GST_BUFFER_POOL_ACQUIRE_FLAG_KEY_UNIT: GstBufferPoolAcquireFlags = 1;
660pub const GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT: GstBufferPoolAcquireFlags = 2;
661pub const GST_BUFFER_POOL_ACQUIRE_FLAG_DISCONT: GstBufferPoolAcquireFlags = 4;
662pub const GST_BUFFER_POOL_ACQUIRE_FLAG_LAST: GstBufferPoolAcquireFlags = 65536;
663
664pub type GstBusFlags = c_uint;
665pub const GST_BUS_FLUSHING: GstBusFlags = 16;
666pub const GST_BUS_FLAG_LAST: GstBusFlags = 32;
667
668pub type GstCapsFlags = c_uint;
669pub const GST_CAPS_FLAG_ANY: GstCapsFlags = 16;
670
671pub type GstClockFlags = c_uint;
672pub const GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC: GstClockFlags = 16;
673pub const GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC: GstClockFlags = 32;
674pub const GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC: GstClockFlags = 64;
675pub const GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC: GstClockFlags = 128;
676pub const GST_CLOCK_FLAG_CAN_SET_RESOLUTION: GstClockFlags = 256;
677pub const GST_CLOCK_FLAG_CAN_SET_MASTER: GstClockFlags = 512;
678pub const GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC: GstClockFlags = 1024;
679pub const GST_CLOCK_FLAG_LAST: GstClockFlags = 4096;
680
681pub type GstDebugColorFlags = c_uint;
682pub const GST_DEBUG_FG_BLACK: GstDebugColorFlags = 0;
683pub const GST_DEBUG_FG_RED: GstDebugColorFlags = 1;
684pub const GST_DEBUG_FG_GREEN: GstDebugColorFlags = 2;
685pub const GST_DEBUG_FG_YELLOW: GstDebugColorFlags = 3;
686pub const GST_DEBUG_FG_BLUE: GstDebugColorFlags = 4;
687pub const GST_DEBUG_FG_MAGENTA: GstDebugColorFlags = 5;
688pub const GST_DEBUG_FG_CYAN: GstDebugColorFlags = 6;
689pub const GST_DEBUG_FG_WHITE: GstDebugColorFlags = 7;
690pub const GST_DEBUG_BG_BLACK: GstDebugColorFlags = 0;
691pub const GST_DEBUG_BG_RED: GstDebugColorFlags = 16;
692pub const GST_DEBUG_BG_GREEN: GstDebugColorFlags = 32;
693pub const GST_DEBUG_BG_YELLOW: GstDebugColorFlags = 48;
694pub const GST_DEBUG_BG_BLUE: GstDebugColorFlags = 64;
695pub const GST_DEBUG_BG_MAGENTA: GstDebugColorFlags = 80;
696pub const GST_DEBUG_BG_CYAN: GstDebugColorFlags = 96;
697pub const GST_DEBUG_BG_WHITE: GstDebugColorFlags = 112;
698pub const GST_DEBUG_BOLD: GstDebugColorFlags = 256;
699pub const GST_DEBUG_UNDERLINE: GstDebugColorFlags = 512;
700
701pub type GstDebugGraphDetails = c_uint;
702pub const GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE: GstDebugGraphDetails = 1;
703pub const GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS: GstDebugGraphDetails = 2;
704pub const GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS: GstDebugGraphDetails = 4;
705pub const GST_DEBUG_GRAPH_SHOW_STATES: GstDebugGraphDetails = 8;
706pub const GST_DEBUG_GRAPH_SHOW_FULL_PARAMS: GstDebugGraphDetails = 16;
707pub const GST_DEBUG_GRAPH_SHOW_ALL: GstDebugGraphDetails = 15;
708pub const GST_DEBUG_GRAPH_SHOW_VERBOSE: GstDebugGraphDetails = 4294967295;
709
710pub type GstElementFlags = c_uint;
711pub const GST_ELEMENT_FLAG_LOCKED_STATE: GstElementFlags = 16;
712pub const GST_ELEMENT_FLAG_SINK: GstElementFlags = 32;
713pub const GST_ELEMENT_FLAG_SOURCE: GstElementFlags = 64;
714pub const GST_ELEMENT_FLAG_PROVIDE_CLOCK: GstElementFlags = 128;
715pub const GST_ELEMENT_FLAG_REQUIRE_CLOCK: GstElementFlags = 256;
716pub const GST_ELEMENT_FLAG_INDEXABLE: GstElementFlags = 512;
717pub const GST_ELEMENT_FLAG_LAST: GstElementFlags = 16384;
718
719pub type GstEventTypeFlags = c_uint;
720pub const GST_EVENT_TYPE_UPSTREAM: GstEventTypeFlags = 1;
721pub const GST_EVENT_TYPE_DOWNSTREAM: GstEventTypeFlags = 2;
722pub const GST_EVENT_TYPE_SERIALIZED: GstEventTypeFlags = 4;
723pub const GST_EVENT_TYPE_STICKY: GstEventTypeFlags = 8;
724pub const GST_EVENT_TYPE_STICKY_MULTI: GstEventTypeFlags = 16;
725
726pub type GstGapFlags = c_uint;
727pub const GST_GAP_FLAG_MISSING_DATA: GstGapFlags = 1;
728
729pub type GstLockFlags = c_uint;
730pub const GST_LOCK_FLAG_READ: GstLockFlags = 1;
731pub const GST_LOCK_FLAG_WRITE: GstLockFlags = 2;
732pub const GST_LOCK_FLAG_EXCLUSIVE: GstLockFlags = 4;
733pub const GST_LOCK_FLAG_LAST: GstLockFlags = 256;
734
735pub type GstLogContextFlags = c_uint;
736pub const GST_LOG_CONTEXT_FLAG_NONE: GstLogContextFlags = 0;
737pub const GST_LOG_CONTEXT_FLAG_THROTTLE: GstLogContextFlags = 1;
738
739pub type GstLogContextHashFlags = c_uint;
740pub const GST_LOG_CONTEXT_DEFAULT: GstLogContextHashFlags = 0;
741pub const GST_LOG_CONTEXT_IGNORE_OBJECT: GstLogContextHashFlags = 1;
742pub const GST_LOG_CONTEXT_IGNORE_FORMAT: GstLogContextHashFlags = 2;
743pub const GST_LOG_CONTEXT_IGNORE_FILE: GstLogContextHashFlags = 4;
744pub const GST_LOG_CONTEXT_USE_LINE_NUMBER: GstLogContextHashFlags = 8;
745pub const GST_LOG_CONTEXT_USE_STRING_ARGS: GstLogContextHashFlags = 16;
746
747pub type GstMapFlags = c_uint;
748pub const GST_MAP_READ: GstMapFlags = 1;
749pub const GST_MAP_WRITE: GstMapFlags = 2;
750pub const GST_MAP_FLAG_LAST: GstMapFlags = 65536;
751
752pub type GstMemoryFlags = c_uint;
753pub const GST_MEMORY_FLAG_READONLY: GstMemoryFlags = 2;
754pub const GST_MEMORY_FLAG_NO_SHARE: GstMemoryFlags = 16;
755pub const GST_MEMORY_FLAG_ZERO_PREFIXED: GstMemoryFlags = 32;
756pub const GST_MEMORY_FLAG_ZERO_PADDED: GstMemoryFlags = 64;
757pub const GST_MEMORY_FLAG_PHYSICALLY_CONTIGUOUS: GstMemoryFlags = 128;
758pub const GST_MEMORY_FLAG_NOT_MAPPABLE: GstMemoryFlags = 256;
759pub const GST_MEMORY_FLAG_LAST: GstMemoryFlags = 1048576;
760
761pub type GstMessageType = c_uint;
762pub const GST_MESSAGE_UNKNOWN: GstMessageType = 0;
763pub const GST_MESSAGE_EOS: GstMessageType = 1;
764pub const GST_MESSAGE_ERROR: GstMessageType = 2;
765pub const GST_MESSAGE_WARNING: GstMessageType = 4;
766pub const GST_MESSAGE_INFO: GstMessageType = 8;
767pub const GST_MESSAGE_TAG: GstMessageType = 16;
768pub const GST_MESSAGE_BUFFERING: GstMessageType = 32;
769pub const GST_MESSAGE_STATE_CHANGED: GstMessageType = 64;
770pub const GST_MESSAGE_STATE_DIRTY: GstMessageType = 128;
771pub const GST_MESSAGE_STEP_DONE: GstMessageType = 256;
772pub const GST_MESSAGE_CLOCK_PROVIDE: GstMessageType = 512;
773pub const GST_MESSAGE_CLOCK_LOST: GstMessageType = 1024;
774pub const GST_MESSAGE_NEW_CLOCK: GstMessageType = 2048;
775pub const GST_MESSAGE_STRUCTURE_CHANGE: GstMessageType = 4096;
776pub const GST_MESSAGE_STREAM_STATUS: GstMessageType = 8192;
777pub const GST_MESSAGE_APPLICATION: GstMessageType = 16384;
778pub const GST_MESSAGE_ELEMENT: GstMessageType = 32768;
779pub const GST_MESSAGE_SEGMENT_START: GstMessageType = 65536;
780pub const GST_MESSAGE_SEGMENT_DONE: GstMessageType = 131072;
781pub const GST_MESSAGE_DURATION_CHANGED: GstMessageType = 262144;
782pub const GST_MESSAGE_LATENCY: GstMessageType = 524288;
783pub const GST_MESSAGE_ASYNC_START: GstMessageType = 1048576;
784pub const GST_MESSAGE_ASYNC_DONE: GstMessageType = 2097152;
785pub const GST_MESSAGE_REQUEST_STATE: GstMessageType = 4194304;
786pub const GST_MESSAGE_STEP_START: GstMessageType = 8388608;
787pub const GST_MESSAGE_QOS: GstMessageType = 16777216;
788pub const GST_MESSAGE_PROGRESS: GstMessageType = 33554432;
789pub const GST_MESSAGE_TOC: GstMessageType = 67108864;
790pub const GST_MESSAGE_RESET_TIME: GstMessageType = 134217728;
791pub const GST_MESSAGE_STREAM_START: GstMessageType = 268435456;
792pub const GST_MESSAGE_NEED_CONTEXT: GstMessageType = 536870912;
793pub const GST_MESSAGE_HAVE_CONTEXT: GstMessageType = 1073741824;
794pub const GST_MESSAGE_EXTENDED: GstMessageType = 2147483648;
795pub const GST_MESSAGE_DEVICE_ADDED: GstMessageType = 2147483649;
796pub const GST_MESSAGE_DEVICE_REMOVED: GstMessageType = 2147483650;
797pub const GST_MESSAGE_PROPERTY_NOTIFY: GstMessageType = 2147483651;
798pub const GST_MESSAGE_STREAM_COLLECTION: GstMessageType = 2147483652;
799pub const GST_MESSAGE_STREAMS_SELECTED: GstMessageType = 2147483653;
800pub const GST_MESSAGE_REDIRECT: GstMessageType = 2147483654;
801pub const GST_MESSAGE_DEVICE_CHANGED: GstMessageType = 2147483655;
802pub const GST_MESSAGE_INSTANT_RATE_REQUEST: GstMessageType = 2147483656;
803pub const GST_MESSAGE_ANY: GstMessageType = 4294967295;
804
805pub type GstMetaFlags = c_uint;
806pub const GST_META_FLAG_NONE: GstMetaFlags = 0;
807pub const GST_META_FLAG_READONLY: GstMetaFlags = 1;
808pub const GST_META_FLAG_POOLED: GstMetaFlags = 2;
809pub const GST_META_FLAG_LOCKED: GstMetaFlags = 4;
810pub const GST_META_FLAG_LAST: GstMetaFlags = 65536;
811
812pub type GstMiniObjectFlags = c_uint;
813pub const GST_MINI_OBJECT_FLAG_LOCKABLE: GstMiniObjectFlags = 1;
814pub const GST_MINI_OBJECT_FLAG_LOCK_READONLY: GstMiniObjectFlags = 2;
815pub const GST_MINI_OBJECT_FLAG_MAY_BE_LEAKED: GstMiniObjectFlags = 4;
816pub const GST_MINI_OBJECT_FLAG_LAST: GstMiniObjectFlags = 16;
817
818pub type GstObjectFlags = c_uint;
819pub const GST_OBJECT_FLAG_MAY_BE_LEAKED: GstObjectFlags = 1;
820#[cfg(feature = "v1_24")]
821#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
822pub const GST_OBJECT_FLAG_CONSTRUCTED: GstObjectFlags = 2;
823pub const GST_OBJECT_FLAG_LAST: GstObjectFlags = 16;
824
825pub type GstPadFlags = c_uint;
826pub const GST_PAD_FLAG_BLOCKED: GstPadFlags = 16;
827pub const GST_PAD_FLAG_FLUSHING: GstPadFlags = 32;
828pub const GST_PAD_FLAG_EOS: GstPadFlags = 64;
829pub const GST_PAD_FLAG_BLOCKING: GstPadFlags = 128;
830pub const GST_PAD_FLAG_NEED_PARENT: GstPadFlags = 256;
831pub const GST_PAD_FLAG_NEED_RECONFIGURE: GstPadFlags = 512;
832pub const GST_PAD_FLAG_PENDING_EVENTS: GstPadFlags = 1024;
833pub const GST_PAD_FLAG_FIXED_CAPS: GstPadFlags = 2048;
834pub const GST_PAD_FLAG_PROXY_CAPS: GstPadFlags = 4096;
835pub const GST_PAD_FLAG_PROXY_ALLOCATION: GstPadFlags = 8192;
836pub const GST_PAD_FLAG_PROXY_SCHEDULING: GstPadFlags = 16384;
837pub const GST_PAD_FLAG_ACCEPT_INTERSECT: GstPadFlags = 32768;
838pub const GST_PAD_FLAG_ACCEPT_TEMPLATE: GstPadFlags = 65536;
839pub const GST_PAD_FLAG_LAST: GstPadFlags = 1048576;
840
841pub type GstPadLinkCheck = c_uint;
842pub const GST_PAD_LINK_CHECK_NOTHING: GstPadLinkCheck = 0;
843pub const GST_PAD_LINK_CHECK_HIERARCHY: GstPadLinkCheck = 1;
844pub const GST_PAD_LINK_CHECK_TEMPLATE_CAPS: GstPadLinkCheck = 2;
845pub const GST_PAD_LINK_CHECK_CAPS: GstPadLinkCheck = 4;
846pub const GST_PAD_LINK_CHECK_NO_RECONFIGURE: GstPadLinkCheck = 8;
847pub const GST_PAD_LINK_CHECK_DEFAULT: GstPadLinkCheck = 5;
848
849pub type GstPadProbeType = c_uint;
850pub const GST_PAD_PROBE_TYPE_INVALID: GstPadProbeType = 0;
851pub const GST_PAD_PROBE_TYPE_IDLE: GstPadProbeType = 1;
852pub const GST_PAD_PROBE_TYPE_BLOCK: GstPadProbeType = 2;
853pub const GST_PAD_PROBE_TYPE_BUFFER: GstPadProbeType = 16;
854pub const GST_PAD_PROBE_TYPE_BUFFER_LIST: GstPadProbeType = 32;
855pub const GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM: GstPadProbeType = 64;
856pub const GST_PAD_PROBE_TYPE_EVENT_UPSTREAM: GstPadProbeType = 128;
857pub const GST_PAD_PROBE_TYPE_EVENT_FLUSH: GstPadProbeType = 256;
858pub const GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM: GstPadProbeType = 512;
859pub const GST_PAD_PROBE_TYPE_QUERY_UPSTREAM: GstPadProbeType = 1024;
860pub const GST_PAD_PROBE_TYPE_PUSH: GstPadProbeType = 4096;
861pub const GST_PAD_PROBE_TYPE_PULL: GstPadProbeType = 8192;
862pub const GST_PAD_PROBE_TYPE_BLOCKING: GstPadProbeType = 3;
863pub const GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM: GstPadProbeType = 112;
864pub const GST_PAD_PROBE_TYPE_DATA_UPSTREAM: GstPadProbeType = 128;
865pub const GST_PAD_PROBE_TYPE_DATA_BOTH: GstPadProbeType = 240;
866pub const GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM: GstPadProbeType = 114;
867pub const GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM: GstPadProbeType = 130;
868pub const GST_PAD_PROBE_TYPE_EVENT_BOTH: GstPadProbeType = 192;
869pub const GST_PAD_PROBE_TYPE_QUERY_BOTH: GstPadProbeType = 1536;
870pub const GST_PAD_PROBE_TYPE_ALL_BOTH: GstPadProbeType = 1776;
871pub const GST_PAD_PROBE_TYPE_SCHEDULING: GstPadProbeType = 12288;
872
873pub type GstPadTemplateFlags = c_uint;
874pub const GST_PAD_TEMPLATE_FLAG_LAST: GstPadTemplateFlags = 256;
875
876pub type GstParseFlags = c_uint;
877pub const GST_PARSE_FLAG_NONE: GstParseFlags = 0;
878pub const GST_PARSE_FLAG_FATAL_ERRORS: GstParseFlags = 1;
879pub const GST_PARSE_FLAG_NO_SINGLE_ELEMENT_BINS: GstParseFlags = 2;
880pub const GST_PARSE_FLAG_PLACE_IN_BIN: GstParseFlags = 4;
881
882pub type GstPipelineFlags = c_uint;
883pub const GST_PIPELINE_FLAG_FIXED_CLOCK: GstPipelineFlags = 524288;
884pub const GST_PIPELINE_FLAG_LAST: GstPipelineFlags = 8388608;
885
886pub type GstPluginAPIFlags = c_uint;
887pub const GST_PLUGIN_API_FLAG_IGNORE_ENUM_MEMBERS: GstPluginAPIFlags = 1;
888
889pub type GstPluginDependencyFlags = c_uint;
890pub const GST_PLUGIN_DEPENDENCY_FLAG_NONE: GstPluginDependencyFlags = 0;
891pub const GST_PLUGIN_DEPENDENCY_FLAG_RECURSE: GstPluginDependencyFlags = 1;
892pub const GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY: GstPluginDependencyFlags = 2;
893pub const GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX: GstPluginDependencyFlags = 4;
894pub const GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_PREFIX: GstPluginDependencyFlags = 8;
895pub const GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_RELATIVE_TO_EXE: GstPluginDependencyFlags = 16;
896
897pub type GstPluginFlags = c_uint;
898pub const GST_PLUGIN_FLAG_CACHED: GstPluginFlags = 16;
899pub const GST_PLUGIN_FLAG_BLACKLISTED: GstPluginFlags = 32;
900
901pub type GstQueryTypeFlags = c_uint;
902pub const GST_QUERY_TYPE_UPSTREAM: GstQueryTypeFlags = 1;
903pub const GST_QUERY_TYPE_DOWNSTREAM: GstQueryTypeFlags = 2;
904pub const GST_QUERY_TYPE_SERIALIZED: GstQueryTypeFlags = 4;
905
906pub type GstSchedulingFlags = c_uint;
907pub const GST_SCHEDULING_FLAG_SEEKABLE: GstSchedulingFlags = 1;
908pub const GST_SCHEDULING_FLAG_SEQUENTIAL: GstSchedulingFlags = 2;
909pub const GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED: GstSchedulingFlags = 4;
910
911pub type GstSeekFlags = c_uint;
912pub const GST_SEEK_FLAG_NONE: GstSeekFlags = 0;
913pub const GST_SEEK_FLAG_FLUSH: GstSeekFlags = 1;
914pub const GST_SEEK_FLAG_ACCURATE: GstSeekFlags = 2;
915pub const GST_SEEK_FLAG_KEY_UNIT: GstSeekFlags = 4;
916pub const GST_SEEK_FLAG_SEGMENT: GstSeekFlags = 8;
917pub const GST_SEEK_FLAG_TRICKMODE: GstSeekFlags = 16;
918pub const GST_SEEK_FLAG_SKIP: GstSeekFlags = 16;
919pub const GST_SEEK_FLAG_SNAP_BEFORE: GstSeekFlags = 32;
920pub const GST_SEEK_FLAG_SNAP_AFTER: GstSeekFlags = 64;
921pub const GST_SEEK_FLAG_SNAP_NEAREST: GstSeekFlags = 96;
922pub const GST_SEEK_FLAG_TRICKMODE_KEY_UNITS: GstSeekFlags = 128;
923pub const GST_SEEK_FLAG_TRICKMODE_NO_AUDIO: GstSeekFlags = 256;
924pub const GST_SEEK_FLAG_TRICKMODE_FORWARD_PREDICTED: GstSeekFlags = 512;
925pub const GST_SEEK_FLAG_INSTANT_RATE_CHANGE: GstSeekFlags = 1024;
926
927pub type GstSegmentFlags = c_uint;
928pub const GST_SEGMENT_FLAG_NONE: GstSegmentFlags = 0;
929pub const GST_SEGMENT_FLAG_RESET: GstSegmentFlags = 1;
930pub const GST_SEGMENT_FLAG_TRICKMODE: GstSegmentFlags = 16;
931pub const GST_SEGMENT_FLAG_SKIP: GstSegmentFlags = 16;
932pub const GST_SEGMENT_FLAG_SEGMENT: GstSegmentFlags = 8;
933pub const GST_SEGMENT_FLAG_TRICKMODE_KEY_UNITS: GstSegmentFlags = 128;
934pub const GST_SEGMENT_FLAG_TRICKMODE_FORWARD_PREDICTED: GstSegmentFlags = 512;
935pub const GST_SEGMENT_FLAG_TRICKMODE_NO_AUDIO: GstSegmentFlags = 256;
936
937pub type GstSerializeFlags = c_uint;
938pub const GST_SERIALIZE_FLAG_NONE: GstSerializeFlags = 0;
939pub const GST_SERIALIZE_FLAG_BACKWARD_COMPAT: GstSerializeFlags = 1;
940#[cfg(feature = "v1_24")]
941#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
942pub const GST_SERIALIZE_FLAG_STRICT: GstSerializeFlags = 2;
943
944pub type GstStackTraceFlags = c_uint;
945pub const GST_STACK_TRACE_SHOW_NONE: GstStackTraceFlags = 0;
946pub const GST_STACK_TRACE_SHOW_FULL: GstStackTraceFlags = 1;
947
948pub type GstStreamFlags = c_uint;
949pub const GST_STREAM_FLAG_NONE: GstStreamFlags = 0;
950pub const GST_STREAM_FLAG_SPARSE: GstStreamFlags = 1;
951pub const GST_STREAM_FLAG_SELECT: GstStreamFlags = 2;
952pub const GST_STREAM_FLAG_UNSELECT: GstStreamFlags = 4;
953
954pub type GstStreamType = c_uint;
955pub const GST_STREAM_TYPE_UNKNOWN: GstStreamType = 1;
956pub const GST_STREAM_TYPE_AUDIO: GstStreamType = 2;
957pub const GST_STREAM_TYPE_VIDEO: GstStreamType = 4;
958pub const GST_STREAM_TYPE_CONTAINER: GstStreamType = 8;
959pub const GST_STREAM_TYPE_TEXT: GstStreamType = 16;
960
961pub type GstTracerValueFlags = c_uint;
962pub const GST_TRACER_VALUE_FLAGS_NONE: GstTracerValueFlags = 0;
963pub const GST_TRACER_VALUE_FLAGS_OPTIONAL: GstTracerValueFlags = 1;
964pub const GST_TRACER_VALUE_FLAGS_AGGREGATED: GstTracerValueFlags = 2;
965
966// Unions
967#[derive(Copy, Clone)]
968#[repr(C)]
969pub union GstControlBinding_ABI {
970    pub abi: GstControlBinding_ABI_abi,
971    pub _gst_reserved: [gpointer; 4],
972}
973
974impl ::std::fmt::Debug for GstControlBinding_ABI {
975    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
976        f.debug_struct(&format!("GstControlBinding_ABI @ {self:p}"))
977            .field("abi", unsafe { &self.abi })
978            .finish()
979    }
980}
981
982#[derive(Copy, Clone)]
983#[repr(C)]
984pub union GstPadProbeInfo_ABI {
985    pub _gst_reserved: [gpointer; 4],
986    pub abi: GstPadProbeInfo_ABI_abi,
987}
988
989impl ::std::fmt::Debug for GstPadProbeInfo_ABI {
990    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
991        f.debug_struct(&format!("GstPadProbeInfo_ABI @ {self:p}"))
992            .field("_gst_reserved", unsafe { &self._gst_reserved })
993            .field("abi", unsafe { &self.abi })
994            .finish()
995    }
996}
997
998#[derive(Copy, Clone)]
999#[repr(C)]
1000pub union GstPadTemplate_ABI {
1001    pub _gst_reserved: [gpointer; 4],
1002    pub abi: GstPadTemplate_ABI_abi,
1003}
1004
1005impl ::std::fmt::Debug for GstPadTemplate_ABI {
1006    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1007        f.debug_struct(&format!("GstPadTemplate_ABI @ {self:p}"))
1008            .field("_gst_reserved", unsafe { &self._gst_reserved })
1009            .field("abi", unsafe { &self.abi })
1010            .finish()
1011    }
1012}
1013
1014#[derive(Copy, Clone)]
1015#[repr(C)]
1016pub union GstPad_ABI {
1017    pub _gst_reserved: [gpointer; 4],
1018    pub abi: GstPad_ABI_abi,
1019}
1020
1021impl ::std::fmt::Debug for GstPad_ABI {
1022    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1023        f.debug_struct(&format!("GstPad_ABI @ {self:p}"))
1024            .field("_gst_reserved", unsafe { &self._gst_reserved })
1025            .field("abi", unsafe { &self.abi })
1026            .finish()
1027    }
1028}
1029
1030// Callbacks
1031pub type GstAllocationMetaParamsAggregator = Option<
1032    unsafe extern "C" fn(
1033        *mut *mut GstStructure,
1034        *const GstStructure,
1035        *const GstStructure,
1036    ) -> gboolean,
1037>;
1038pub type GstBufferForeachMetaFunc =
1039    Option<unsafe extern "C" fn(*mut GstBuffer, *mut *mut GstMeta, gpointer) -> gboolean>;
1040pub type GstBufferListFunc =
1041    Option<unsafe extern "C" fn(*mut *mut GstBuffer, c_uint, gpointer) -> gboolean>;
1042pub type GstBusFunc =
1043    Option<unsafe extern "C" fn(*mut GstBus, *mut GstMessage, gpointer) -> gboolean>;
1044pub type GstBusSyncHandler =
1045    Option<unsafe extern "C" fn(*mut GstBus, *mut GstMessage, gpointer) -> GstBusSyncReply>;
1046pub type GstCapsFilterMapFunc =
1047    Option<unsafe extern "C" fn(*mut GstCapsFeatures, *mut GstStructure, gpointer) -> gboolean>;
1048pub type GstCapsForeachFunc =
1049    Option<unsafe extern "C" fn(*mut GstCapsFeatures, *mut GstStructure, gpointer) -> gboolean>;
1050pub type GstCapsMapFunc =
1051    Option<unsafe extern "C" fn(*mut GstCapsFeatures, *mut GstStructure, gpointer) -> gboolean>;
1052pub type GstClockCallback =
1053    Option<unsafe extern "C" fn(*mut GstClock, GstClockTime, GstClockID, gpointer) -> gboolean>;
1054pub type GstControlBindingConvert =
1055    Option<unsafe extern "C" fn(*mut GstControlBinding, c_double, *mut gobject::GValue)>;
1056pub type GstControlSourceGetValue =
1057    Option<unsafe extern "C" fn(*mut GstControlSource, GstClockTime, *mut c_double) -> gboolean>;
1058pub type GstControlSourceGetValueArray = Option<
1059    unsafe extern "C" fn(
1060        *mut GstControlSource,
1061        GstClockTime,
1062        GstClockTime,
1063        c_uint,
1064        *mut c_double,
1065    ) -> gboolean,
1066>;
1067pub type GstCustomMetaTransformFunction = Option<
1068    unsafe extern "C" fn(
1069        *mut GstBuffer,
1070        *mut GstCustomMeta,
1071        *mut GstBuffer,
1072        glib::GQuark,
1073        gpointer,
1074        gpointer,
1075    ) -> gboolean,
1076>;
1077pub type GstDebugFuncPtr = Option<unsafe extern "C" fn()>;
1078pub type GstElementCallAsyncFunc = Option<unsafe extern "C" fn(*mut GstElement, gpointer)>;
1079pub type GstElementForeachPadFunc =
1080    Option<unsafe extern "C" fn(*mut GstElement, *mut GstPad, gpointer) -> gboolean>;
1081pub type GstIteratorCopyFunction =
1082    Option<unsafe extern "C" fn(*const GstIterator, *mut GstIterator)>;
1083pub type GstIteratorFoldFunction = Option<
1084    unsafe extern "C" fn(*const gobject::GValue, *mut gobject::GValue, gpointer) -> gboolean,
1085>;
1086pub type GstIteratorForeachFunction =
1087    Option<unsafe extern "C" fn(*const gobject::GValue, gpointer)>;
1088pub type GstIteratorFreeFunction = Option<unsafe extern "C" fn(*mut GstIterator)>;
1089pub type GstIteratorItemFunction =
1090    Option<unsafe extern "C" fn(*mut GstIterator, *const gobject::GValue) -> GstIteratorItem>;
1091pub type GstIteratorNextFunction =
1092    Option<unsafe extern "C" fn(*mut GstIterator, *mut gobject::GValue) -> GstIteratorResult>;
1093pub type GstIteratorResyncFunction = Option<unsafe extern "C" fn(*mut GstIterator)>;
1094pub type GstLogFunction = Option<
1095    unsafe extern "C" fn(
1096        *mut GstDebugCategory,
1097        GstDebugLevel,
1098        *const c_char,
1099        *const c_char,
1100        c_int,
1101        *mut gobject::GObject,
1102        *mut GstDebugMessage,
1103        gpointer,
1104    ),
1105>;
1106pub type GstMemoryCopyFunction =
1107    Option<unsafe extern "C" fn(*mut GstMemory, ssize_t, ssize_t) -> *mut GstMemory>;
1108pub type GstMemoryIsSpanFunction =
1109    Option<unsafe extern "C" fn(*mut GstMemory, *mut GstMemory, *mut size_t) -> gboolean>;
1110pub type GstMemoryMapFullFunction =
1111    Option<unsafe extern "C" fn(*mut GstMemory, *mut GstMapInfo, size_t) -> gpointer>;
1112pub type GstMemoryMapFunction =
1113    Option<unsafe extern "C" fn(*mut GstMemory, size_t, GstMapFlags) -> gpointer>;
1114pub type GstMemoryShareFunction =
1115    Option<unsafe extern "C" fn(*mut GstMemory, ssize_t, ssize_t) -> *mut GstMemory>;
1116pub type GstMemoryUnmapFullFunction = Option<unsafe extern "C" fn(*mut GstMemory, *mut GstMapInfo)>;
1117pub type GstMemoryUnmapFunction = Option<unsafe extern "C" fn(*mut GstMemory)>;
1118pub type GstMetaClearFunction = Option<unsafe extern "C" fn(*mut GstBuffer, *mut GstMeta)>;
1119pub type GstMetaDeserializeFunction = Option<
1120    unsafe extern "C" fn(*const GstMetaInfo, *mut GstBuffer, *const u8, size_t, u8) -> *mut GstMeta,
1121>;
1122pub type GstMetaFreeFunction = Option<unsafe extern "C" fn(*mut GstMeta, *mut GstBuffer)>;
1123pub type GstMetaInitFunction =
1124    Option<unsafe extern "C" fn(*mut GstMeta, gpointer, *mut GstBuffer) -> gboolean>;
1125pub type GstMetaSerializeFunction =
1126    Option<unsafe extern "C" fn(*const GstMeta, *mut GstByteArrayInterface, *mut u8) -> gboolean>;
1127pub type GstMetaTransformFunction = Option<
1128    unsafe extern "C" fn(
1129        *mut GstBuffer,
1130        *mut GstMeta,
1131        *mut GstBuffer,
1132        glib::GQuark,
1133        gpointer,
1134    ) -> gboolean,
1135>;
1136pub type GstMiniObjectCopyFunction =
1137    Option<unsafe extern "C" fn(*const GstMiniObject) -> *mut GstMiniObject>;
1138pub type GstMiniObjectDisposeFunction =
1139    Option<unsafe extern "C" fn(*mut GstMiniObject) -> gboolean>;
1140pub type GstMiniObjectFreeFunction = Option<unsafe extern "C" fn(*mut GstMiniObject)>;
1141pub type GstMiniObjectNotify = Option<unsafe extern "C" fn(gpointer, *mut GstMiniObject)>;
1142pub type GstPadActivateFunction =
1143    Option<unsafe extern "C" fn(*mut GstPad, *mut GstObject) -> gboolean>;
1144pub type GstPadActivateModeFunction =
1145    Option<unsafe extern "C" fn(*mut GstPad, *mut GstObject, GstPadMode, gboolean) -> gboolean>;
1146pub type GstPadChainFunction =
1147    Option<unsafe extern "C" fn(*mut GstPad, *mut GstObject, *mut GstBuffer) -> GstFlowReturn>;
1148pub type GstPadChainListFunction =
1149    Option<unsafe extern "C" fn(*mut GstPad, *mut GstObject, *mut GstBufferList) -> GstFlowReturn>;
1150pub type GstPadEventFullFunction =
1151    Option<unsafe extern "C" fn(*mut GstPad, *mut GstObject, *mut GstEvent) -> GstFlowReturn>;
1152pub type GstPadEventFunction =
1153    Option<unsafe extern "C" fn(*mut GstPad, *mut GstObject, *mut GstEvent) -> gboolean>;
1154pub type GstPadForwardFunction = Option<unsafe extern "C" fn(*mut GstPad, gpointer) -> gboolean>;
1155pub type GstPadGetRangeFunction = Option<
1156    unsafe extern "C" fn(
1157        *mut GstPad,
1158        *mut GstObject,
1159        u64,
1160        c_uint,
1161        *mut *mut GstBuffer,
1162    ) -> GstFlowReturn,
1163>;
1164pub type GstPadIterIntLinkFunction =
1165    Option<unsafe extern "C" fn(*mut GstPad, *mut GstObject) -> *mut GstIterator>;
1166pub type GstPadLinkFunction =
1167    Option<unsafe extern "C" fn(*mut GstPad, *mut GstObject, *mut GstPad) -> GstPadLinkReturn>;
1168pub type GstPadProbeCallback =
1169    Option<unsafe extern "C" fn(*mut GstPad, *mut GstPadProbeInfo, gpointer) -> GstPadProbeReturn>;
1170pub type GstPadQueryFunction =
1171    Option<unsafe extern "C" fn(*mut GstPad, *mut GstObject, *mut GstQuery) -> gboolean>;
1172pub type GstPadStickyEventsForeachFunction =
1173    Option<unsafe extern "C" fn(*mut GstPad, *mut *mut GstEvent, gpointer) -> gboolean>;
1174pub type GstPadUnlinkFunction = Option<unsafe extern "C" fn(*mut GstPad, *mut GstObject)>;
1175pub type GstPluginFeatureFilter =
1176    Option<unsafe extern "C" fn(*mut GstPluginFeature, gpointer) -> gboolean>;
1177pub type GstPluginFilter = Option<unsafe extern "C" fn(*mut GstPlugin, gpointer) -> gboolean>;
1178pub type GstPluginInitFullFunc = Option<unsafe extern "C" fn(*mut GstPlugin, gpointer) -> gboolean>;
1179pub type GstPluginInitFunc = Option<unsafe extern "C" fn(*mut GstPlugin) -> gboolean>;
1180pub type GstPromiseChangeFunc = Option<unsafe extern "C" fn(*mut GstPromise, gpointer)>;
1181pub type GstStructureFilterMapFunc =
1182    Option<unsafe extern "C" fn(glib::GQuark, *mut gobject::GValue, gpointer) -> gboolean>;
1183pub type GstStructureFilterMapIdStrFunc =
1184    Option<unsafe extern "C" fn(*const GstIdStr, *mut gobject::GValue, gpointer) -> gboolean>;
1185pub type GstStructureForeachFunc =
1186    Option<unsafe extern "C" fn(glib::GQuark, *const gobject::GValue, gpointer) -> gboolean>;
1187pub type GstStructureForeachIdStrFunc =
1188    Option<unsafe extern "C" fn(*const GstIdStr, *const gobject::GValue, gpointer) -> gboolean>;
1189pub type GstStructureMapFunc =
1190    Option<unsafe extern "C" fn(glib::GQuark, *mut gobject::GValue, gpointer) -> gboolean>;
1191pub type GstStructureMapIdStrFunc =
1192    Option<unsafe extern "C" fn(*const GstIdStr, *mut gobject::GValue, gpointer) -> gboolean>;
1193pub type GstTagForeachFunc =
1194    Option<unsafe extern "C" fn(*const GstTagList, *const c_char, gpointer)>;
1195pub type GstTagMergeFunc =
1196    Option<unsafe extern "C" fn(*mut gobject::GValue, *const gobject::GValue)>;
1197pub type GstTaskFunction = Option<unsafe extern "C" fn(gpointer)>;
1198pub type GstTaskPoolFunction = Option<unsafe extern "C" fn(*mut c_void)>;
1199pub type GstTaskThreadFunc =
1200    Option<unsafe extern "C" fn(*mut GstTask, *mut glib::GThread, gpointer)>;
1201pub type GstTypeFindFunction = Option<unsafe extern "C" fn(*mut GstTypeFind, gpointer)>;
1202pub type GstValueCompareFunc =
1203    Option<unsafe extern "C" fn(*const gobject::GValue, *const gobject::GValue) -> c_int>;
1204pub type GstValueDeserializeFunc =
1205    Option<unsafe extern "C" fn(*mut gobject::GValue, *const c_char) -> gboolean>;
1206pub type GstValueDeserializeWithPSpecFunc = Option<
1207    unsafe extern "C" fn(*mut gobject::GValue, *const c_char, *mut gobject::GParamSpec) -> gboolean,
1208>;
1209pub type GstValueHashFunc =
1210    Option<unsafe extern "C" fn(*const gobject::GValue, *mut c_uint) -> gboolean>;
1211pub type GstValueSerializeFunc =
1212    Option<unsafe extern "C" fn(*const gobject::GValue) -> *mut c_char>;
1213
1214// Records
1215#[derive(Copy, Clone)]
1216#[repr(C)]
1217pub struct GstAllocationParams {
1218    pub flags: GstMemoryFlags,
1219    pub align: size_t,
1220    pub prefix: size_t,
1221    pub padding: size_t,
1222    pub _gst_reserved: [gpointer; 4],
1223}
1224
1225impl ::std::fmt::Debug for GstAllocationParams {
1226    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1227        f.debug_struct(&format!("GstAllocationParams @ {self:p}"))
1228            .field("flags", &self.flags)
1229            .field("align", &self.align)
1230            .field("prefix", &self.prefix)
1231            .field("padding", &self.padding)
1232            .finish()
1233    }
1234}
1235
1236#[derive(Copy, Clone)]
1237#[repr(C)]
1238pub struct GstAllocatorClass {
1239    pub object_class: GstObjectClass,
1240    pub alloc: Option<
1241        unsafe extern "C" fn(*mut GstAllocator, size_t, *mut GstAllocationParams) -> *mut GstMemory,
1242    >,
1243    pub free: Option<unsafe extern "C" fn(*mut GstAllocator, *mut GstMemory)>,
1244    pub _gst_reserved: [gpointer; 4],
1245}
1246
1247impl ::std::fmt::Debug for GstAllocatorClass {
1248    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1249        f.debug_struct(&format!("GstAllocatorClass @ {self:p}"))
1250            .field("object_class", &self.object_class)
1251            .field("alloc", &self.alloc)
1252            .field("free", &self.free)
1253            .finish()
1254    }
1255}
1256
1257#[repr(C)]
1258#[allow(dead_code)]
1259pub struct _GstAllocatorPrivate {
1260    _data: [u8; 0],
1261    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1262}
1263
1264pub type GstAllocatorPrivate = _GstAllocatorPrivate;
1265
1266#[repr(C)]
1267#[allow(dead_code)]
1268pub struct GstAtomicQueue {
1269    _data: [u8; 0],
1270    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1271}
1272
1273impl ::std::fmt::Debug for GstAtomicQueue {
1274    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1275        f.debug_struct(&format!("GstAtomicQueue @ {self:p}"))
1276            .finish()
1277    }
1278}
1279
1280#[derive(Copy, Clone)]
1281#[repr(C)]
1282pub struct GstBinClass {
1283    pub parent_class: GstElementClass,
1284    pub pool: *mut glib::GThreadPool,
1285    pub element_added: Option<unsafe extern "C" fn(*mut GstBin, *mut GstElement)>,
1286    pub element_removed: Option<unsafe extern "C" fn(*mut GstBin, *mut GstElement)>,
1287    pub add_element: Option<unsafe extern "C" fn(*mut GstBin, *mut GstElement) -> gboolean>,
1288    pub remove_element: Option<unsafe extern "C" fn(*mut GstBin, *mut GstElement) -> gboolean>,
1289    pub handle_message: Option<unsafe extern "C" fn(*mut GstBin, *mut GstMessage)>,
1290    pub do_latency: Option<unsafe extern "C" fn(*mut GstBin) -> gboolean>,
1291    pub deep_element_added: Option<unsafe extern "C" fn(*mut GstBin, *mut GstBin, *mut GstElement)>,
1292    pub deep_element_removed:
1293        Option<unsafe extern "C" fn(*mut GstBin, *mut GstBin, *mut GstElement)>,
1294    pub _gst_reserved: [gpointer; 2],
1295}
1296
1297impl ::std::fmt::Debug for GstBinClass {
1298    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1299        f.debug_struct(&format!("GstBinClass @ {self:p}"))
1300            .field("parent_class", &self.parent_class)
1301            .field("element_added", &self.element_added)
1302            .field("element_removed", &self.element_removed)
1303            .field("add_element", &self.add_element)
1304            .field("remove_element", &self.remove_element)
1305            .field("handle_message", &self.handle_message)
1306            .field("do_latency", &self.do_latency)
1307            .field("deep_element_added", &self.deep_element_added)
1308            .field("deep_element_removed", &self.deep_element_removed)
1309            .finish()
1310    }
1311}
1312
1313#[repr(C)]
1314#[allow(dead_code)]
1315pub struct _GstBinPrivate {
1316    _data: [u8; 0],
1317    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1318}
1319
1320pub type GstBinPrivate = _GstBinPrivate;
1321
1322#[derive(Copy, Clone)]
1323#[repr(C)]
1324pub struct GstBuffer {
1325    pub mini_object: GstMiniObject,
1326    pub pool: *mut GstBufferPool,
1327    pub pts: GstClockTime,
1328    pub dts: GstClockTime,
1329    pub duration: GstClockTime,
1330    pub offset: u64,
1331    pub offset_end: u64,
1332}
1333
1334impl ::std::fmt::Debug for GstBuffer {
1335    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1336        f.debug_struct(&format!("GstBuffer @ {self:p}"))
1337            .field("mini_object", &self.mini_object)
1338            .field("pool", &self.pool)
1339            .field("pts", &self.pts)
1340            .field("dts", &self.dts)
1341            .field("duration", &self.duration)
1342            .field("offset", &self.offset)
1343            .field("offset_end", &self.offset_end)
1344            .finish()
1345    }
1346}
1347
1348#[repr(C)]
1349#[allow(dead_code)]
1350pub struct GstBufferList {
1351    _data: [u8; 0],
1352    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1353}
1354
1355impl ::std::fmt::Debug for GstBufferList {
1356    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1357        f.debug_struct(&format!("GstBufferList @ {self:p}"))
1358            .finish()
1359    }
1360}
1361
1362#[derive(Copy, Clone)]
1363#[repr(C)]
1364pub struct GstBufferPoolAcquireParams {
1365    pub format: GstFormat,
1366    pub start: i64,
1367    pub stop: i64,
1368    pub flags: GstBufferPoolAcquireFlags,
1369    pub _gst_reserved: [gpointer; 4],
1370}
1371
1372impl ::std::fmt::Debug for GstBufferPoolAcquireParams {
1373    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1374        f.debug_struct(&format!("GstBufferPoolAcquireParams @ {self:p}"))
1375            .field("format", &self.format)
1376            .field("start", &self.start)
1377            .field("stop", &self.stop)
1378            .field("flags", &self.flags)
1379            .finish()
1380    }
1381}
1382
1383#[derive(Copy, Clone)]
1384#[repr(C)]
1385pub struct GstBufferPoolClass {
1386    pub object_class: GstObjectClass,
1387    pub get_options: Option<unsafe extern "C" fn(*mut GstBufferPool) -> *mut *const c_char>,
1388    pub set_config: Option<unsafe extern "C" fn(*mut GstBufferPool, *mut GstStructure) -> gboolean>,
1389    pub start: Option<unsafe extern "C" fn(*mut GstBufferPool) -> gboolean>,
1390    pub stop: Option<unsafe extern "C" fn(*mut GstBufferPool) -> gboolean>,
1391    pub acquire_buffer: Option<
1392        unsafe extern "C" fn(
1393            *mut GstBufferPool,
1394            *mut *mut GstBuffer,
1395            *mut GstBufferPoolAcquireParams,
1396        ) -> GstFlowReturn,
1397    >,
1398    pub alloc_buffer: Option<
1399        unsafe extern "C" fn(
1400            *mut GstBufferPool,
1401            *mut *mut GstBuffer,
1402            *mut GstBufferPoolAcquireParams,
1403        ) -> GstFlowReturn,
1404    >,
1405    pub reset_buffer: Option<unsafe extern "C" fn(*mut GstBufferPool, *mut GstBuffer)>,
1406    pub release_buffer: Option<unsafe extern "C" fn(*mut GstBufferPool, *mut GstBuffer)>,
1407    pub free_buffer: Option<unsafe extern "C" fn(*mut GstBufferPool, *mut GstBuffer)>,
1408    pub flush_start: Option<unsafe extern "C" fn(*mut GstBufferPool)>,
1409    pub flush_stop: Option<unsafe extern "C" fn(*mut GstBufferPool)>,
1410    pub _gst_reserved: [gpointer; 2],
1411}
1412
1413impl ::std::fmt::Debug for GstBufferPoolClass {
1414    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1415        f.debug_struct(&format!("GstBufferPoolClass @ {self:p}"))
1416            .field("object_class", &self.object_class)
1417            .field("get_options", &self.get_options)
1418            .field("set_config", &self.set_config)
1419            .field("start", &self.start)
1420            .field("stop", &self.stop)
1421            .field("acquire_buffer", &self.acquire_buffer)
1422            .field("alloc_buffer", &self.alloc_buffer)
1423            .field("reset_buffer", &self.reset_buffer)
1424            .field("release_buffer", &self.release_buffer)
1425            .field("free_buffer", &self.free_buffer)
1426            .field("flush_start", &self.flush_start)
1427            .field("flush_stop", &self.flush_stop)
1428            .finish()
1429    }
1430}
1431
1432#[repr(C)]
1433#[allow(dead_code)]
1434pub struct _GstBufferPoolPrivate {
1435    _data: [u8; 0],
1436    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1437}
1438
1439pub type GstBufferPoolPrivate = _GstBufferPoolPrivate;
1440
1441#[derive(Copy, Clone)]
1442#[repr(C)]
1443pub struct GstBusClass {
1444    pub parent_class: GstObjectClass,
1445    pub message: Option<unsafe extern "C" fn(*mut GstBus, *mut GstMessage)>,
1446    pub sync_message: Option<unsafe extern "C" fn(*mut GstBus, *mut GstMessage)>,
1447    pub _gst_reserved: [gpointer; 4],
1448}
1449
1450impl ::std::fmt::Debug for GstBusClass {
1451    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1452        f.debug_struct(&format!("GstBusClass @ {self:p}"))
1453            .field("parent_class", &self.parent_class)
1454            .field("message", &self.message)
1455            .field("sync_message", &self.sync_message)
1456            .finish()
1457    }
1458}
1459
1460#[repr(C)]
1461#[allow(dead_code)]
1462pub struct _GstBusPrivate {
1463    _data: [u8; 0],
1464    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1465}
1466
1467pub type GstBusPrivate = _GstBusPrivate;
1468
1469#[derive(Copy, Clone)]
1470#[repr(C)]
1471pub struct GstByteArrayInterface {
1472    pub data: *mut u8,
1473    pub len: size_t,
1474    pub resize: Option<unsafe extern "C" fn(*mut GstByteArrayInterface, size_t) -> gboolean>,
1475    pub _gst_reserved: [gpointer; 4],
1476}
1477
1478impl ::std::fmt::Debug for GstByteArrayInterface {
1479    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1480        f.debug_struct(&format!("GstByteArrayInterface @ {self:p}"))
1481            .field("data", &self.data)
1482            .field("len", &self.len)
1483            .field("resize", &self.resize)
1484            .finish()
1485    }
1486}
1487
1488#[derive(Copy, Clone)]
1489#[repr(C)]
1490pub struct GstCaps {
1491    pub mini_object: GstMiniObject,
1492}
1493
1494impl ::std::fmt::Debug for GstCaps {
1495    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1496        f.debug_struct(&format!("GstCaps @ {self:p}"))
1497            .field("mini_object", &self.mini_object)
1498            .finish()
1499    }
1500}
1501
1502#[repr(C)]
1503#[allow(dead_code)]
1504pub struct GstCapsFeatures {
1505    _data: [u8; 0],
1506    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1507}
1508
1509impl ::std::fmt::Debug for GstCapsFeatures {
1510    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1511        f.debug_struct(&format!("GstCapsFeatures @ {self:p}"))
1512            .finish()
1513    }
1514}
1515
1516#[derive(Copy, Clone)]
1517#[repr(C)]
1518pub struct GstChildProxyInterface {
1519    pub parent: gobject::GTypeInterface,
1520    pub get_child_by_name:
1521        Option<unsafe extern "C" fn(*mut GstChildProxy, *const c_char) -> *mut gobject::GObject>,
1522    pub get_child_by_index:
1523        Option<unsafe extern "C" fn(*mut GstChildProxy, c_uint) -> *mut gobject::GObject>,
1524    pub get_children_count: Option<unsafe extern "C" fn(*mut GstChildProxy) -> c_uint>,
1525    pub child_added:
1526        Option<unsafe extern "C" fn(*mut GstChildProxy, *mut gobject::GObject, *const c_char)>,
1527    pub child_removed:
1528        Option<unsafe extern "C" fn(*mut GstChildProxy, *mut gobject::GObject, *const c_char)>,
1529    pub _gst_reserved: [gpointer; 4],
1530}
1531
1532impl ::std::fmt::Debug for GstChildProxyInterface {
1533    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1534        f.debug_struct(&format!("GstChildProxyInterface @ {self:p}"))
1535            .field("parent", &self.parent)
1536            .field("get_child_by_name", &self.get_child_by_name)
1537            .field("get_child_by_index", &self.get_child_by_index)
1538            .field("get_children_count", &self.get_children_count)
1539            .field("child_added", &self.child_added)
1540            .field("child_removed", &self.child_removed)
1541            .finish()
1542    }
1543}
1544
1545#[derive(Copy, Clone)]
1546#[repr(C)]
1547pub struct GstClockClass {
1548    pub parent_class: GstObjectClass,
1549    pub change_resolution:
1550        Option<unsafe extern "C" fn(*mut GstClock, GstClockTime, GstClockTime) -> GstClockTime>,
1551    pub get_resolution: Option<unsafe extern "C" fn(*mut GstClock) -> GstClockTime>,
1552    pub get_internal_time: Option<unsafe extern "C" fn(*mut GstClock) -> GstClockTime>,
1553    pub wait: Option<
1554        unsafe extern "C" fn(
1555            *mut GstClock,
1556            *mut GstClockEntry,
1557            *mut GstClockTimeDiff,
1558        ) -> GstClockReturn,
1559    >,
1560    pub wait_async:
1561        Option<unsafe extern "C" fn(*mut GstClock, *mut GstClockEntry) -> GstClockReturn>,
1562    pub unschedule: Option<unsafe extern "C" fn(*mut GstClock, *mut GstClockEntry)>,
1563    pub _gst_reserved: [gpointer; 4],
1564}
1565
1566impl ::std::fmt::Debug for GstClockClass {
1567    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1568        f.debug_struct(&format!("GstClockClass @ {self:p}"))
1569            .field("parent_class", &self.parent_class)
1570            .field("change_resolution", &self.change_resolution)
1571            .field("get_resolution", &self.get_resolution)
1572            .field("get_internal_time", &self.get_internal_time)
1573            .field("wait", &self.wait)
1574            .field("wait_async", &self.wait_async)
1575            .field("unschedule", &self.unschedule)
1576            .finish()
1577    }
1578}
1579
1580#[derive(Copy, Clone)]
1581#[repr(C)]
1582pub struct GstClockEntry {
1583    pub refcount: c_int,
1584    pub clock: *mut GstClock,
1585    pub type_: GstClockEntryType,
1586    pub time: GstClockTime,
1587    pub interval: GstClockTime,
1588    pub status: GstClockReturn,
1589    pub func: GstClockCallback,
1590    pub user_data: gpointer,
1591    pub destroy_data: glib::GDestroyNotify,
1592    pub unscheduled: gboolean,
1593    pub woken_up: gboolean,
1594    pub _gst_reserved: [gpointer; 4],
1595}
1596
1597impl ::std::fmt::Debug for GstClockEntry {
1598    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1599        f.debug_struct(&format!("GstClockEntry @ {self:p}"))
1600            .field("refcount", &self.refcount)
1601            .finish()
1602    }
1603}
1604
1605#[repr(C)]
1606#[allow(dead_code)]
1607pub struct _GstClockPrivate {
1608    _data: [u8; 0],
1609    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1610}
1611
1612pub type GstClockPrivate = _GstClockPrivate;
1613
1614#[repr(C)]
1615#[allow(dead_code)]
1616pub struct GstContext {
1617    _data: [u8; 0],
1618    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1619}
1620
1621impl ::std::fmt::Debug for GstContext {
1622    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1623        f.debug_struct(&format!("GstContext @ {self:p}")).finish()
1624    }
1625}
1626
1627#[derive(Copy, Clone)]
1628#[repr(C)]
1629pub struct GstControlBindingClass {
1630    pub parent_class: GstObjectClass,
1631    pub sync_values: Option<
1632        unsafe extern "C" fn(
1633            *mut GstControlBinding,
1634            *mut GstObject,
1635            GstClockTime,
1636            GstClockTime,
1637        ) -> gboolean,
1638    >,
1639    pub get_value:
1640        Option<unsafe extern "C" fn(*mut GstControlBinding, GstClockTime) -> *mut gobject::GValue>,
1641    pub get_value_array: Option<
1642        unsafe extern "C" fn(
1643            *mut GstControlBinding,
1644            GstClockTime,
1645            GstClockTime,
1646            c_uint,
1647            gpointer,
1648        ) -> gboolean,
1649    >,
1650    pub get_g_value_array: Option<
1651        unsafe extern "C" fn(
1652            *mut GstControlBinding,
1653            GstClockTime,
1654            GstClockTime,
1655            c_uint,
1656            *mut gobject::GValue,
1657        ) -> gboolean,
1658    >,
1659    pub _gst_reserved: [gpointer; 4],
1660}
1661
1662impl ::std::fmt::Debug for GstControlBindingClass {
1663    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1664        f.debug_struct(&format!("GstControlBindingClass @ {self:p}"))
1665            .field("parent_class", &self.parent_class)
1666            .field("sync_values", &self.sync_values)
1667            .field("get_value", &self.get_value)
1668            .field("get_value_array", &self.get_value_array)
1669            .field("get_g_value_array", &self.get_g_value_array)
1670            .finish()
1671    }
1672}
1673
1674#[repr(C)]
1675#[allow(dead_code)]
1676pub struct _GstControlBindingPrivate {
1677    _data: [u8; 0],
1678    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1679}
1680
1681pub type GstControlBindingPrivate = _GstControlBindingPrivate;
1682
1683#[derive(Copy, Clone)]
1684#[repr(C)]
1685pub struct GstControlBinding_ABI_abi {
1686    pub priv_: *mut GstControlBindingPrivate,
1687}
1688
1689impl ::std::fmt::Debug for GstControlBinding_ABI_abi {
1690    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1691        f.debug_struct(&format!("GstControlBinding_ABI_abi @ {self:p}"))
1692            .finish()
1693    }
1694}
1695
1696#[derive(Copy, Clone)]
1697#[repr(C)]
1698pub struct GstControlSourceClass {
1699    pub parent_class: GstObjectClass,
1700    pub _gst_reserved: [gpointer; 4],
1701}
1702
1703impl ::std::fmt::Debug for GstControlSourceClass {
1704    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1705        f.debug_struct(&format!("GstControlSourceClass @ {self:p}"))
1706            .field("parent_class", &self.parent_class)
1707            .finish()
1708    }
1709}
1710
1711#[derive(Copy, Clone)]
1712#[repr(C)]
1713pub struct GstCustomMeta {
1714    pub meta: GstMeta,
1715    pub structure: *mut GstStructure,
1716}
1717
1718impl ::std::fmt::Debug for GstCustomMeta {
1719    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1720        f.debug_struct(&format!("GstCustomMeta @ {self:p}"))
1721            .field("meta", &self.meta)
1722            .field("structure", &self.structure)
1723            .finish()
1724    }
1725}
1726
1727#[repr(C)]
1728#[allow(dead_code)]
1729pub struct GstDateTime {
1730    _data: [u8; 0],
1731    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1732}
1733
1734impl ::std::fmt::Debug for GstDateTime {
1735    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1736        f.debug_struct(&format!("GstDateTime @ {self:p}")).finish()
1737    }
1738}
1739
1740#[derive(Copy, Clone)]
1741#[repr(C)]
1742pub struct GstDebugCategory {
1743    pub threshold: c_int,
1744    pub color: c_uint,
1745    pub name: *const c_char,
1746    pub description: *const c_char,
1747}
1748
1749impl ::std::fmt::Debug for GstDebugCategory {
1750    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1751        f.debug_struct(&format!("GstDebugCategory @ {self:p}"))
1752            .finish()
1753    }
1754}
1755
1756#[repr(C)]
1757#[allow(dead_code)]
1758pub struct _GstDebugMessage {
1759    _data: [u8; 0],
1760    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1761}
1762
1763pub type GstDebugMessage = _GstDebugMessage;
1764
1765#[derive(Copy, Clone)]
1766#[repr(C)]
1767pub struct GstDeviceClass {
1768    pub parent_class: GstObjectClass,
1769    pub create_element:
1770        Option<unsafe extern "C" fn(*mut GstDevice, *const c_char) -> *mut GstElement>,
1771    pub reconfigure_element:
1772        Option<unsafe extern "C" fn(*mut GstDevice, *mut GstElement) -> gboolean>,
1773    pub _gst_reserved: [gpointer; 4],
1774}
1775
1776impl ::std::fmt::Debug for GstDeviceClass {
1777    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1778        f.debug_struct(&format!("GstDeviceClass @ {self:p}"))
1779            .field("parent_class", &self.parent_class)
1780            .field("create_element", &self.create_element)
1781            .field("reconfigure_element", &self.reconfigure_element)
1782            .finish()
1783    }
1784}
1785
1786#[derive(Copy, Clone)]
1787#[repr(C)]
1788pub struct GstDeviceMonitorClass {
1789    pub parent_class: GstObjectClass,
1790    pub _gst_reserved: [gpointer; 4],
1791}
1792
1793impl ::std::fmt::Debug for GstDeviceMonitorClass {
1794    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1795        f.debug_struct(&format!("GstDeviceMonitorClass @ {self:p}"))
1796            .field("parent_class", &self.parent_class)
1797            .finish()
1798    }
1799}
1800
1801#[repr(C)]
1802#[allow(dead_code)]
1803pub struct _GstDeviceMonitorPrivate {
1804    _data: [u8; 0],
1805    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1806}
1807
1808pub type GstDeviceMonitorPrivate = _GstDeviceMonitorPrivate;
1809
1810#[repr(C)]
1811#[allow(dead_code)]
1812pub struct _GstDevicePrivate {
1813    _data: [u8; 0],
1814    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1815}
1816
1817pub type GstDevicePrivate = _GstDevicePrivate;
1818
1819#[derive(Copy, Clone)]
1820#[repr(C)]
1821pub struct GstDeviceProviderClass {
1822    pub parent_class: GstObjectClass,
1823    pub factory: *mut GstDeviceProviderFactory,
1824    pub probe: Option<unsafe extern "C" fn(*mut GstDeviceProvider) -> *mut glib::GList>,
1825    pub start: Option<unsafe extern "C" fn(*mut GstDeviceProvider) -> gboolean>,
1826    pub stop: Option<unsafe extern "C" fn(*mut GstDeviceProvider)>,
1827    pub metadata: gpointer,
1828    pub _gst_reserved: [gpointer; 4],
1829}
1830
1831impl ::std::fmt::Debug for GstDeviceProviderClass {
1832    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1833        f.debug_struct(&format!("GstDeviceProviderClass @ {self:p}"))
1834            .field("parent_class", &self.parent_class)
1835            .field("factory", &self.factory)
1836            .field("probe", &self.probe)
1837            .field("start", &self.start)
1838            .field("stop", &self.stop)
1839            .finish()
1840    }
1841}
1842
1843#[repr(C)]
1844#[allow(dead_code)]
1845pub struct _GstDeviceProviderFactoryClass {
1846    _data: [u8; 0],
1847    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1848}
1849
1850pub type GstDeviceProviderFactoryClass = _GstDeviceProviderFactoryClass;
1851
1852#[repr(C)]
1853#[allow(dead_code)]
1854pub struct _GstDeviceProviderPrivate {
1855    _data: [u8; 0],
1856    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1857}
1858
1859pub type GstDeviceProviderPrivate = _GstDeviceProviderPrivate;
1860
1861#[repr(C)]
1862#[allow(dead_code)]
1863pub struct _GstDynamicTypeFactoryClass {
1864    _data: [u8; 0],
1865    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1866}
1867
1868pub type GstDynamicTypeFactoryClass = _GstDynamicTypeFactoryClass;
1869
1870#[derive(Copy, Clone)]
1871#[repr(C)]
1872pub struct GstElementClass {
1873    pub parent_class: GstObjectClass,
1874    pub metadata: gpointer,
1875    pub elementfactory: *mut GstElementFactory,
1876    pub padtemplates: *mut glib::GList,
1877    pub numpadtemplates: c_int,
1878    pub pad_templ_cookie: u32,
1879    pub pad_added: Option<unsafe extern "C" fn(*mut GstElement, *mut GstPad)>,
1880    pub pad_removed: Option<unsafe extern "C" fn(*mut GstElement, *mut GstPad)>,
1881    pub no_more_pads: Option<unsafe extern "C" fn(*mut GstElement)>,
1882    pub request_new_pad: Option<
1883        unsafe extern "C" fn(
1884            *mut GstElement,
1885            *mut GstPadTemplate,
1886            *const c_char,
1887            *const GstCaps,
1888        ) -> *mut GstPad,
1889    >,
1890    pub release_pad: Option<unsafe extern "C" fn(*mut GstElement, *mut GstPad)>,
1891    pub get_state: Option<
1892        unsafe extern "C" fn(
1893            *mut GstElement,
1894            *mut GstState,
1895            *mut GstState,
1896            GstClockTime,
1897        ) -> GstStateChangeReturn,
1898    >,
1899    pub set_state: Option<unsafe extern "C" fn(*mut GstElement, GstState) -> GstStateChangeReturn>,
1900    pub change_state:
1901        Option<unsafe extern "C" fn(*mut GstElement, GstStateChange) -> GstStateChangeReturn>,
1902    pub state_changed: Option<unsafe extern "C" fn(*mut GstElement, GstState, GstState, GstState)>,
1903    pub set_bus: Option<unsafe extern "C" fn(*mut GstElement, *mut GstBus)>,
1904    pub provide_clock: Option<unsafe extern "C" fn(*mut GstElement) -> *mut GstClock>,
1905    pub set_clock: Option<unsafe extern "C" fn(*mut GstElement, *mut GstClock) -> gboolean>,
1906    pub send_event: Option<unsafe extern "C" fn(*mut GstElement, *mut GstEvent) -> gboolean>,
1907    pub query: Option<unsafe extern "C" fn(*mut GstElement, *mut GstQuery) -> gboolean>,
1908    pub post_message: Option<unsafe extern "C" fn(*mut GstElement, *mut GstMessage) -> gboolean>,
1909    pub set_context: Option<unsafe extern "C" fn(*mut GstElement, *mut GstContext)>,
1910    pub _gst_reserved: [gpointer; 18],
1911}
1912
1913impl ::std::fmt::Debug for GstElementClass {
1914    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1915        f.debug_struct(&format!("GstElementClass @ {self:p}"))
1916            .field("parent_class", &self.parent_class)
1917            .field("metadata", &self.metadata)
1918            .field("elementfactory", &self.elementfactory)
1919            .field("padtemplates", &self.padtemplates)
1920            .field("numpadtemplates", &self.numpadtemplates)
1921            .field("pad_templ_cookie", &self.pad_templ_cookie)
1922            .field("pad_added", &self.pad_added)
1923            .field("pad_removed", &self.pad_removed)
1924            .field("no_more_pads", &self.no_more_pads)
1925            .field("request_new_pad", &self.request_new_pad)
1926            .field("release_pad", &self.release_pad)
1927            .field("get_state", &self.get_state)
1928            .field("set_state", &self.set_state)
1929            .field("change_state", &self.change_state)
1930            .field("state_changed", &self.state_changed)
1931            .field("set_bus", &self.set_bus)
1932            .field("provide_clock", &self.provide_clock)
1933            .field("set_clock", &self.set_clock)
1934            .field("send_event", &self.send_event)
1935            .field("query", &self.query)
1936            .field("post_message", &self.post_message)
1937            .field("set_context", &self.set_context)
1938            .finish()
1939    }
1940}
1941
1942#[repr(C)]
1943#[allow(dead_code)]
1944pub struct _GstElementFactoryClass {
1945    _data: [u8; 0],
1946    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1947}
1948
1949pub type GstElementFactoryClass = _GstElementFactoryClass;
1950
1951#[derive(Copy, Clone)]
1952#[repr(C)]
1953pub struct GstEvent {
1954    pub mini_object: GstMiniObject,
1955    pub type_: GstEventType,
1956    pub timestamp: u64,
1957    pub seqnum: u32,
1958}
1959
1960impl ::std::fmt::Debug for GstEvent {
1961    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1962        f.debug_struct(&format!("GstEvent @ {self:p}"))
1963            .field("mini_object", &self.mini_object)
1964            .field("type_", &self.type_)
1965            .field("timestamp", &self.timestamp)
1966            .field("seqnum", &self.seqnum)
1967            .finish()
1968    }
1969}
1970
1971#[derive(Copy, Clone)]
1972#[repr(C)]
1973pub struct GstFormatDefinition {
1974    pub value: GstFormat,
1975    pub nick: *const c_char,
1976    pub description: *const c_char,
1977    pub quark: glib::GQuark,
1978}
1979
1980impl ::std::fmt::Debug for GstFormatDefinition {
1981    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1982        f.debug_struct(&format!("GstFormatDefinition @ {self:p}"))
1983            .field("value", &self.value)
1984            .field("nick", &self.nick)
1985            .field("description", &self.description)
1986            .field("quark", &self.quark)
1987            .finish()
1988    }
1989}
1990
1991#[derive(Copy, Clone)]
1992#[repr(C)]
1993pub struct GstGhostPadClass {
1994    pub parent_class: GstProxyPadClass,
1995    pub _gst_reserved: [gpointer; 4],
1996}
1997
1998impl ::std::fmt::Debug for GstGhostPadClass {
1999    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2000        f.debug_struct(&format!("GstGhostPadClass @ {self:p}"))
2001            .field("parent_class", &self.parent_class)
2002            .finish()
2003    }
2004}
2005
2006#[repr(C)]
2007#[allow(dead_code)]
2008pub struct _GstGhostPadPrivate {
2009    _data: [u8; 0],
2010    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2011}
2012
2013pub type GstGhostPadPrivate = _GstGhostPadPrivate;
2014
2015#[derive(Copy, Clone)]
2016#[repr(C)]
2017pub struct GstIterator {
2018    pub copy: GstIteratorCopyFunction,
2019    pub next: GstIteratorNextFunction,
2020    pub item: GstIteratorItemFunction,
2021    pub resync: GstIteratorResyncFunction,
2022    pub free: GstIteratorFreeFunction,
2023    pub pushed: *mut GstIterator,
2024    pub type_: GType,
2025    pub lock: *mut glib::GMutex,
2026    pub cookie: u32,
2027    pub master_cookie: *mut u32,
2028    pub size: c_uint,
2029    pub _gst_reserved: [gpointer; 4],
2030}
2031
2032impl ::std::fmt::Debug for GstIterator {
2033    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2034        f.debug_struct(&format!("GstIterator @ {self:p}"))
2035            .field("copy", &self.copy)
2036            .field("next", &self.next)
2037            .field("item", &self.item)
2038            .field("resync", &self.resync)
2039            .field("free", &self.free)
2040            .field("pushed", &self.pushed)
2041            .field("type_", &self.type_)
2042            .field("lock", &self.lock)
2043            .field("cookie", &self.cookie)
2044            .field("master_cookie", &self.master_cookie)
2045            .field("size", &self.size)
2046            .finish()
2047    }
2048}
2049
2050#[repr(C)]
2051#[allow(dead_code)]
2052pub struct _GstLogContext {
2053    _data: [u8; 0],
2054    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2055}
2056
2057pub type GstLogContext = _GstLogContext;
2058
2059#[repr(C)]
2060#[allow(dead_code)]
2061pub struct _GstLogContextBuilder {
2062    _data: [u8; 0],
2063    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2064}
2065
2066pub type GstLogContextBuilder = _GstLogContextBuilder;
2067
2068#[derive(Copy, Clone)]
2069#[repr(C)]
2070pub struct GstMapInfo {
2071    pub memory: *mut GstMemory,
2072    pub flags: GstMapFlags,
2073    pub data: *mut u8,
2074    pub size: size_t,
2075    pub maxsize: size_t,
2076    pub user_data: [gpointer; 4],
2077    pub _gst_reserved: [gpointer; 4],
2078}
2079
2080impl ::std::fmt::Debug for GstMapInfo {
2081    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2082        f.debug_struct(&format!("GstMapInfo @ {self:p}"))
2083            .field("memory", &self.memory)
2084            .field("flags", &self.flags)
2085            .field("data", &self.data)
2086            .field("size", &self.size)
2087            .field("maxsize", &self.maxsize)
2088            .field("user_data", &self.user_data)
2089            .finish()
2090    }
2091}
2092
2093#[derive(Copy, Clone)]
2094#[repr(C)]
2095pub struct GstMemory {
2096    pub mini_object: GstMiniObject,
2097    pub allocator: *mut GstAllocator,
2098    pub parent: *mut GstMemory,
2099    pub maxsize: size_t,
2100    pub align: size_t,
2101    pub offset: size_t,
2102    pub size: size_t,
2103}
2104
2105impl ::std::fmt::Debug for GstMemory {
2106    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2107        f.debug_struct(&format!("GstMemory @ {self:p}"))
2108            .field("mini_object", &self.mini_object)
2109            .field("allocator", &self.allocator)
2110            .field("parent", &self.parent)
2111            .field("maxsize", &self.maxsize)
2112            .field("align", &self.align)
2113            .field("offset", &self.offset)
2114            .field("size", &self.size)
2115            .finish()
2116    }
2117}
2118
2119#[derive(Copy, Clone)]
2120#[repr(C)]
2121pub struct GstMessage {
2122    pub mini_object: GstMiniObject,
2123    pub type_: GstMessageType,
2124    pub timestamp: u64,
2125    pub src: *mut GstObject,
2126    pub seqnum: u32,
2127    pub lock: glib::GMutex,
2128    pub cond: glib::GCond,
2129}
2130
2131impl ::std::fmt::Debug for GstMessage {
2132    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2133        f.debug_struct(&format!("GstMessage @ {self:p}"))
2134            .field("mini_object", &self.mini_object)
2135            .field("type_", &self.type_)
2136            .field("timestamp", &self.timestamp)
2137            .field("src", &self.src)
2138            .field("seqnum", &self.seqnum)
2139            .finish()
2140    }
2141}
2142
2143#[derive(Copy, Clone)]
2144#[repr(C)]
2145pub struct GstMeta {
2146    pub flags: GstMetaFlags,
2147    pub info: *const GstMetaInfo,
2148}
2149
2150impl ::std::fmt::Debug for GstMeta {
2151    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2152        f.debug_struct(&format!("GstMeta @ {self:p}"))
2153            .field("flags", &self.flags)
2154            .field("info", &self.info)
2155            .finish()
2156    }
2157}
2158
2159#[derive(Copy, Clone)]
2160#[repr(C)]
2161pub struct GstMetaInfo {
2162    pub api: GType,
2163    pub type_: GType,
2164    pub size: size_t,
2165    pub init_func: GstMetaInitFunction,
2166    pub free_func: GstMetaFreeFunction,
2167    pub transform_func: GstMetaTransformFunction,
2168    pub serialize_func: GstMetaSerializeFunction,
2169    pub deserialize_func: GstMetaDeserializeFunction,
2170    pub clear_func: GstMetaClearFunction,
2171}
2172
2173impl ::std::fmt::Debug for GstMetaInfo {
2174    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2175        f.debug_struct(&format!("GstMetaInfo @ {self:p}"))
2176            .field("api", &self.api)
2177            .field("type_", &self.type_)
2178            .field("size", &self.size)
2179            .field("init_func", &self.init_func)
2180            .field("free_func", &self.free_func)
2181            .field("transform_func", &self.transform_func)
2182            .field("serialize_func", &self.serialize_func)
2183            .field("deserialize_func", &self.deserialize_func)
2184            .field("clear_func", &self.clear_func)
2185            .finish()
2186    }
2187}
2188
2189#[derive(Copy, Clone)]
2190#[repr(C)]
2191pub struct GstMetaTransformCopy {
2192    pub region: gboolean,
2193    pub offset: size_t,
2194    pub size: size_t,
2195}
2196
2197impl ::std::fmt::Debug for GstMetaTransformCopy {
2198    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2199        f.debug_struct(&format!("GstMetaTransformCopy @ {self:p}"))
2200            .field("region", &self.region)
2201            .field("offset", &self.offset)
2202            .field("size", &self.size)
2203            .finish()
2204    }
2205}
2206
2207#[derive(Copy, Clone)]
2208#[repr(C)]
2209pub struct GstMiniObject {
2210    pub type_: GType,
2211    pub refcount: c_int,
2212    pub lockstate: c_int,
2213    pub flags: c_uint,
2214    pub copy: GstMiniObjectCopyFunction,
2215    pub dispose: GstMiniObjectDisposeFunction,
2216    pub free: GstMiniObjectFreeFunction,
2217    pub priv_uint: c_uint,
2218    pub priv_pointer: gpointer,
2219}
2220
2221impl ::std::fmt::Debug for GstMiniObject {
2222    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2223        f.debug_struct(&format!("GstMiniObject @ {self:p}"))
2224            .field("type_", &self.type_)
2225            .field("refcount", &self.refcount)
2226            .field("lockstate", &self.lockstate)
2227            .field("flags", &self.flags)
2228            .field("copy", &self.copy)
2229            .field("dispose", &self.dispose)
2230            .field("free", &self.free)
2231            .finish()
2232    }
2233}
2234
2235#[derive(Copy, Clone)]
2236#[repr(C)]
2237pub struct GstObjectClass {
2238    pub parent_class: gobject::GInitiallyUnownedClass,
2239    pub path_string_separator: *const c_char,
2240    pub deep_notify:
2241        Option<unsafe extern "C" fn(*mut GstObject, *mut GstObject, *mut gobject::GParamSpec)>,
2242    pub _gst_reserved: [gpointer; 4],
2243}
2244
2245impl ::std::fmt::Debug for GstObjectClass {
2246    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2247        f.debug_struct(&format!("GstObjectClass @ {self:p}"))
2248            .field("parent_class", &self.parent_class)
2249            .field("path_string_separator", &self.path_string_separator)
2250            .field("deep_notify", &self.deep_notify)
2251            .finish()
2252    }
2253}
2254
2255#[derive(Copy, Clone)]
2256#[repr(C)]
2257pub struct GstPadClass {
2258    pub parent_class: GstObjectClass,
2259    pub linked: Option<unsafe extern "C" fn(*mut GstPad, *mut GstPad)>,
2260    pub unlinked: Option<unsafe extern "C" fn(*mut GstPad, *mut GstPad)>,
2261    pub _gst_reserved: [gpointer; 4],
2262}
2263
2264impl ::std::fmt::Debug for GstPadClass {
2265    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2266        f.debug_struct(&format!("GstPadClass @ {self:p}"))
2267            .field("parent_class", &self.parent_class)
2268            .field("linked", &self.linked)
2269            .field("unlinked", &self.unlinked)
2270            .finish()
2271    }
2272}
2273
2274#[repr(C)]
2275#[allow(dead_code)]
2276pub struct _GstPadPrivate {
2277    _data: [u8; 0],
2278    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2279}
2280
2281pub type GstPadPrivate = _GstPadPrivate;
2282
2283#[derive(Copy, Clone)]
2284#[repr(C)]
2285pub struct GstPadProbeInfo {
2286    pub type_: GstPadProbeType,
2287    pub id: c_ulong,
2288    pub data: gpointer,
2289    pub offset: u64,
2290    pub size: c_uint,
2291    pub ABI: GstPadProbeInfo_ABI,
2292}
2293
2294impl ::std::fmt::Debug for GstPadProbeInfo {
2295    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2296        f.debug_struct(&format!("GstPadProbeInfo @ {self:p}"))
2297            .field("type_", &self.type_)
2298            .field("id", &self.id)
2299            .field("data", &self.data)
2300            .field("offset", &self.offset)
2301            .field("size", &self.size)
2302            .field("ABI", &self.ABI)
2303            .finish()
2304    }
2305}
2306
2307#[derive(Copy, Clone)]
2308#[repr(C)]
2309pub struct GstPadProbeInfo_ABI_abi {
2310    pub flow_ret: GstFlowReturn,
2311}
2312
2313impl ::std::fmt::Debug for GstPadProbeInfo_ABI_abi {
2314    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2315        f.debug_struct(&format!("GstPadProbeInfo_ABI_abi @ {self:p}"))
2316            .field("flow_ret", &self.flow_ret)
2317            .finish()
2318    }
2319}
2320
2321#[derive(Copy, Clone)]
2322#[repr(C)]
2323pub struct GstPadTemplateClass {
2324    pub parent_class: GstObjectClass,
2325    pub pad_created: Option<unsafe extern "C" fn(*mut GstPadTemplate, *mut GstPad)>,
2326    pub _gst_reserved: [gpointer; 4],
2327}
2328
2329impl ::std::fmt::Debug for GstPadTemplateClass {
2330    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2331        f.debug_struct(&format!("GstPadTemplateClass @ {self:p}"))
2332            .field("parent_class", &self.parent_class)
2333            .field("pad_created", &self.pad_created)
2334            .finish()
2335    }
2336}
2337
2338#[derive(Copy, Clone)]
2339#[repr(C)]
2340pub struct GstPadTemplate_ABI_abi {
2341    pub gtype: GType,
2342    pub documentation_caps: *mut GstCaps,
2343}
2344
2345impl ::std::fmt::Debug for GstPadTemplate_ABI_abi {
2346    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2347        f.debug_struct(&format!("GstPadTemplate_ABI_abi @ {self:p}"))
2348            .field("gtype", &self.gtype)
2349            .field("documentation_caps", &self.documentation_caps)
2350            .finish()
2351    }
2352}
2353
2354#[derive(Copy, Clone)]
2355#[repr(C)]
2356pub struct GstPad_ABI_abi {
2357    pub last_flowret: GstFlowReturn,
2358    pub eventfullfunc: GstPadEventFullFunction,
2359}
2360
2361impl ::std::fmt::Debug for GstPad_ABI_abi {
2362    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2363        f.debug_struct(&format!("GstPad_ABI_abi @ {self:p}"))
2364            .field("last_flowret", &self.last_flowret)
2365            .field("eventfullfunc", &self.eventfullfunc)
2366            .finish()
2367    }
2368}
2369
2370#[derive(Copy, Clone)]
2371#[repr(C)]
2372pub struct GstParamSpecArray {
2373    pub parent_instance: gobject::GParamSpec,
2374    pub element_spec: *mut gobject::GParamSpec,
2375}
2376
2377impl ::std::fmt::Debug for GstParamSpecArray {
2378    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2379        f.debug_struct(&format!("GstParamSpecArray @ {self:p}"))
2380            .field("parent_instance", &self.parent_instance)
2381            .field("element_spec", &self.element_spec)
2382            .finish()
2383    }
2384}
2385
2386#[derive(Copy, Clone)]
2387#[repr(C)]
2388pub struct GstParamSpecFraction {
2389    pub parent_instance: gobject::GParamSpec,
2390    pub min_num: c_int,
2391    pub min_den: c_int,
2392    pub max_num: c_int,
2393    pub max_den: c_int,
2394    pub def_num: c_int,
2395    pub def_den: c_int,
2396}
2397
2398impl ::std::fmt::Debug for GstParamSpecFraction {
2399    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2400        f.debug_struct(&format!("GstParamSpecFraction @ {self:p}"))
2401            .field("parent_instance", &self.parent_instance)
2402            .field("min_num", &self.min_num)
2403            .field("min_den", &self.min_den)
2404            .field("max_num", &self.max_num)
2405            .field("max_den", &self.max_den)
2406            .field("def_num", &self.def_num)
2407            .field("def_den", &self.def_den)
2408            .finish()
2409    }
2410}
2411
2412#[derive(Copy, Clone)]
2413#[repr(C)]
2414pub struct GstParentBufferMeta {
2415    pub parent: GstMeta,
2416    pub buffer: *mut GstBuffer,
2417}
2418
2419impl ::std::fmt::Debug for GstParentBufferMeta {
2420    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2421        f.debug_struct(&format!("GstParentBufferMeta @ {self:p}"))
2422            .field("parent", &self.parent)
2423            .field("buffer", &self.buffer)
2424            .finish()
2425    }
2426}
2427
2428#[repr(C)]
2429#[allow(dead_code)]
2430pub struct GstParseContext {
2431    _data: [u8; 0],
2432    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2433}
2434
2435impl ::std::fmt::Debug for GstParseContext {
2436    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2437        f.debug_struct(&format!("GstParseContext @ {self:p}"))
2438            .finish()
2439    }
2440}
2441
2442#[derive(Copy, Clone)]
2443#[repr(C)]
2444pub struct GstPipelineClass {
2445    pub parent_class: GstBinClass,
2446    pub _gst_reserved: [gpointer; 4],
2447}
2448
2449impl ::std::fmt::Debug for GstPipelineClass {
2450    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2451        f.debug_struct(&format!("GstPipelineClass @ {self:p}"))
2452            .field("parent_class", &self.parent_class)
2453            .finish()
2454    }
2455}
2456
2457#[repr(C)]
2458#[allow(dead_code)]
2459pub struct _GstPipelinePrivate {
2460    _data: [u8; 0],
2461    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2462}
2463
2464pub type GstPipelinePrivate = _GstPipelinePrivate;
2465
2466#[repr(C)]
2467#[allow(dead_code)]
2468pub struct _GstPluginClass {
2469    _data: [u8; 0],
2470    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2471}
2472
2473pub type GstPluginClass = _GstPluginClass;
2474
2475#[derive(Copy, Clone)]
2476#[repr(C)]
2477pub struct GstPluginDesc {
2478    pub major_version: c_int,
2479    pub minor_version: c_int,
2480    pub name: *const c_char,
2481    pub description: *const c_char,
2482    pub plugin_init: GstPluginInitFunc,
2483    pub version: *const c_char,
2484    pub license: *const c_char,
2485    pub source: *const c_char,
2486    pub package: *const c_char,
2487    pub origin: *const c_char,
2488    pub release_datetime: *const c_char,
2489    pub _gst_reserved: [gpointer; 4],
2490}
2491
2492impl ::std::fmt::Debug for GstPluginDesc {
2493    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2494        f.debug_struct(&format!("GstPluginDesc @ {self:p}"))
2495            .field("major_version", &self.major_version)
2496            .field("minor_version", &self.minor_version)
2497            .field("name", &self.name)
2498            .field("description", &self.description)
2499            .field("plugin_init", &self.plugin_init)
2500            .field("version", &self.version)
2501            .field("license", &self.license)
2502            .field("source", &self.source)
2503            .field("package", &self.package)
2504            .field("origin", &self.origin)
2505            .field("release_datetime", &self.release_datetime)
2506            .finish()
2507    }
2508}
2509
2510#[repr(C)]
2511#[allow(dead_code)]
2512pub struct _GstPluginFeatureClass {
2513    _data: [u8; 0],
2514    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2515}
2516
2517pub type GstPluginFeatureClass = _GstPluginFeatureClass;
2518
2519#[repr(C)]
2520#[allow(dead_code)]
2521pub struct _GstPoll {
2522    _data: [u8; 0],
2523    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2524}
2525
2526pub type GstPoll = _GstPoll;
2527
2528#[derive(Copy, Clone)]
2529#[repr(C)]
2530pub struct GstPollFD {
2531    pub fd: c_int,
2532    pub idx: c_int,
2533}
2534
2535impl ::std::fmt::Debug for GstPollFD {
2536    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2537        f.debug_struct(&format!("GstPollFD @ {self:p}"))
2538            .field("fd", &self.fd)
2539            .finish()
2540    }
2541}
2542
2543#[derive(Copy, Clone)]
2544#[repr(C)]
2545pub struct GstPresetInterface {
2546    pub parent: gobject::GTypeInterface,
2547    pub get_preset_names: Option<unsafe extern "C" fn(*mut GstPreset) -> *mut *mut c_char>,
2548    pub get_property_names: Option<unsafe extern "C" fn(*mut GstPreset) -> *mut *mut c_char>,
2549    pub load_preset: Option<unsafe extern "C" fn(*mut GstPreset, *const c_char) -> gboolean>,
2550    pub save_preset: Option<unsafe extern "C" fn(*mut GstPreset, *const c_char) -> gboolean>,
2551    pub rename_preset:
2552        Option<unsafe extern "C" fn(*mut GstPreset, *const c_char, *const c_char) -> gboolean>,
2553    pub delete_preset: Option<unsafe extern "C" fn(*mut GstPreset, *const c_char) -> gboolean>,
2554    pub set_meta: Option<
2555        unsafe extern "C" fn(
2556            *mut GstPreset,
2557            *const c_char,
2558            *const c_char,
2559            *mut *mut c_char,
2560        ) -> gboolean,
2561    >,
2562    pub get_meta: Option<
2563        unsafe extern "C" fn(
2564            *mut GstPreset,
2565            *const c_char,
2566            *const c_char,
2567            *mut *mut c_char,
2568        ) -> gboolean,
2569    >,
2570    pub _gst_reserved: [gpointer; 4],
2571}
2572
2573impl ::std::fmt::Debug for GstPresetInterface {
2574    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2575        f.debug_struct(&format!("GstPresetInterface @ {self:p}"))
2576            .field("parent", &self.parent)
2577            .field("get_preset_names", &self.get_preset_names)
2578            .field("get_property_names", &self.get_property_names)
2579            .field("load_preset", &self.load_preset)
2580            .field("save_preset", &self.save_preset)
2581            .field("rename_preset", &self.rename_preset)
2582            .field("delete_preset", &self.delete_preset)
2583            .field("set_meta", &self.set_meta)
2584            .field("get_meta", &self.get_meta)
2585            .finish()
2586    }
2587}
2588
2589#[derive(Copy, Clone)]
2590#[repr(C)]
2591pub struct GstPromise {
2592    pub parent: GstMiniObject,
2593}
2594
2595impl ::std::fmt::Debug for GstPromise {
2596    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2597        f.debug_struct(&format!("GstPromise @ {self:p}"))
2598            .field("parent", &self.parent)
2599            .finish()
2600    }
2601}
2602
2603#[derive(Copy, Clone)]
2604#[repr(C)]
2605pub struct GstProtectionMeta {
2606    pub meta: GstMeta,
2607    pub info: *mut GstStructure,
2608}
2609
2610impl ::std::fmt::Debug for GstProtectionMeta {
2611    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2612        f.debug_struct(&format!("GstProtectionMeta @ {self:p}"))
2613            .field("meta", &self.meta)
2614            .field("info", &self.info)
2615            .finish()
2616    }
2617}
2618
2619#[derive(Copy, Clone)]
2620#[repr(C)]
2621pub struct GstProxyPadClass {
2622    pub parent_class: GstPadClass,
2623    pub _gst_reserved: [gpointer; 1],
2624}
2625
2626impl ::std::fmt::Debug for GstProxyPadClass {
2627    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2628        f.debug_struct(&format!("GstProxyPadClass @ {self:p}"))
2629            .field("parent_class", &self.parent_class)
2630            .finish()
2631    }
2632}
2633
2634#[repr(C)]
2635#[allow(dead_code)]
2636pub struct _GstProxyPadPrivate {
2637    _data: [u8; 0],
2638    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2639}
2640
2641pub type GstProxyPadPrivate = _GstProxyPadPrivate;
2642
2643#[derive(Copy, Clone)]
2644#[repr(C)]
2645pub struct GstQuery {
2646    pub mini_object: GstMiniObject,
2647    pub type_: GstQueryType,
2648}
2649
2650impl ::std::fmt::Debug for GstQuery {
2651    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2652        f.debug_struct(&format!("GstQuery @ {self:p}"))
2653            .field("mini_object", &self.mini_object)
2654            .field("type_", &self.type_)
2655            .finish()
2656    }
2657}
2658
2659#[derive(Copy, Clone)]
2660#[repr(C)]
2661pub struct GstReferenceTimestampMeta {
2662    pub parent: GstMeta,
2663    pub reference: *mut GstCaps,
2664    pub timestamp: GstClockTime,
2665    pub duration: GstClockTime,
2666    pub info: *mut GstStructure,
2667}
2668
2669impl ::std::fmt::Debug for GstReferenceTimestampMeta {
2670    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2671        f.debug_struct(&format!("GstReferenceTimestampMeta @ {self:p}"))
2672            .field("parent", &self.parent)
2673            .field("reference", &self.reference)
2674            .field("timestamp", &self.timestamp)
2675            .field("duration", &self.duration)
2676            .field("info", &self.info)
2677            .finish()
2678    }
2679}
2680
2681#[derive(Copy, Clone)]
2682#[repr(C)]
2683pub struct GstRegistryClass {
2684    pub parent_class: GstObjectClass,
2685}
2686
2687impl ::std::fmt::Debug for GstRegistryClass {
2688    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2689        f.debug_struct(&format!("GstRegistryClass @ {self:p}"))
2690            .field("parent_class", &self.parent_class)
2691            .finish()
2692    }
2693}
2694
2695#[repr(C)]
2696#[allow(dead_code)]
2697pub struct _GstRegistryPrivate {
2698    _data: [u8; 0],
2699    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2700}
2701
2702pub type GstRegistryPrivate = _GstRegistryPrivate;
2703
2704#[repr(C)]
2705#[allow(dead_code)]
2706pub struct GstSample {
2707    _data: [u8; 0],
2708    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2709}
2710
2711impl ::std::fmt::Debug for GstSample {
2712    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2713        f.debug_struct(&format!("GstSample @ {self:p}")).finish()
2714    }
2715}
2716
2717#[derive(Copy, Clone)]
2718#[repr(C)]
2719pub struct GstSegment {
2720    pub flags: GstSegmentFlags,
2721    pub rate: c_double,
2722    pub applied_rate: c_double,
2723    pub format: GstFormat,
2724    pub base: u64,
2725    pub offset: u64,
2726    pub start: u64,
2727    pub stop: u64,
2728    pub time: u64,
2729    pub position: u64,
2730    pub duration: u64,
2731    pub _gst_reserved: [gpointer; 4],
2732}
2733
2734impl ::std::fmt::Debug for GstSegment {
2735    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2736        f.debug_struct(&format!("GstSegment @ {self:p}"))
2737            .field("flags", &self.flags)
2738            .field("rate", &self.rate)
2739            .field("applied_rate", &self.applied_rate)
2740            .field("format", &self.format)
2741            .field("base", &self.base)
2742            .field("offset", &self.offset)
2743            .field("start", &self.start)
2744            .field("stop", &self.stop)
2745            .field("time", &self.time)
2746            .field("position", &self.position)
2747            .field("duration", &self.duration)
2748            .finish()
2749    }
2750}
2751
2752#[derive(Copy, Clone)]
2753#[repr(C)]
2754pub struct GstSharedTaskPoolClass {
2755    pub parent_class: GstTaskPoolClass,
2756    pub _gst_reserved: [gpointer; 4],
2757}
2758
2759impl ::std::fmt::Debug for GstSharedTaskPoolClass {
2760    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2761        f.debug_struct(&format!("GstSharedTaskPoolClass @ {self:p}"))
2762            .field("parent_class", &self.parent_class)
2763            .finish()
2764    }
2765}
2766
2767#[repr(C)]
2768#[allow(dead_code)]
2769pub struct _GstSharedTaskPoolPrivate {
2770    _data: [u8; 0],
2771    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2772}
2773
2774pub type GstSharedTaskPoolPrivate = _GstSharedTaskPoolPrivate;
2775
2776#[derive(Copy, Clone)]
2777#[repr(C)]
2778pub struct GstStaticCaps {
2779    pub caps: *mut GstCaps,
2780    pub string: *const c_char,
2781    pub _gst_reserved: [gpointer; 4],
2782}
2783
2784impl ::std::fmt::Debug for GstStaticCaps {
2785    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2786        f.debug_struct(&format!("GstStaticCaps @ {self:p}"))
2787            .field("caps", &self.caps)
2788            .field("string", &self.string)
2789            .finish()
2790    }
2791}
2792
2793#[derive(Copy, Clone)]
2794#[repr(C)]
2795pub struct GstStaticPadTemplate {
2796    pub name_template: *const c_char,
2797    pub direction: GstPadDirection,
2798    pub presence: GstPadPresence,
2799    pub static_caps: GstStaticCaps,
2800}
2801
2802impl ::std::fmt::Debug for GstStaticPadTemplate {
2803    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2804        f.debug_struct(&format!("GstStaticPadTemplate @ {self:p}"))
2805            .field("name_template", &self.name_template)
2806            .field("direction", &self.direction)
2807            .field("presence", &self.presence)
2808            .field("static_caps", &self.static_caps)
2809            .finish()
2810    }
2811}
2812
2813#[derive(Copy, Clone)]
2814#[repr(C)]
2815pub struct GstStreamClass {
2816    pub parent_class: GstObjectClass,
2817    pub _gst_reserved: [gpointer; 4],
2818}
2819
2820impl ::std::fmt::Debug for GstStreamClass {
2821    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2822        f.debug_struct(&format!("GstStreamClass @ {self:p}"))
2823            .field("parent_class", &self.parent_class)
2824            .finish()
2825    }
2826}
2827
2828#[derive(Copy, Clone)]
2829#[repr(C)]
2830pub struct GstStreamCollectionClass {
2831    pub parent_class: GstObjectClass,
2832    pub stream_notify: Option<
2833        unsafe extern "C" fn(*mut GstStreamCollection, *mut GstStream, *mut gobject::GParamSpec),
2834    >,
2835    pub _gst_reserved: [gpointer; 4],
2836}
2837
2838impl ::std::fmt::Debug for GstStreamCollectionClass {
2839    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2840        f.debug_struct(&format!("GstStreamCollectionClass @ {self:p}"))
2841            .field("parent_class", &self.parent_class)
2842            .field("stream_notify", &self.stream_notify)
2843            .finish()
2844    }
2845}
2846
2847#[repr(C)]
2848#[allow(dead_code)]
2849pub struct _GstStreamCollectionPrivate {
2850    _data: [u8; 0],
2851    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2852}
2853
2854pub type GstStreamCollectionPrivate = _GstStreamCollectionPrivate;
2855
2856#[repr(C)]
2857#[allow(dead_code)]
2858pub struct _GstStreamPrivate {
2859    _data: [u8; 0],
2860    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2861}
2862
2863pub type GstStreamPrivate = _GstStreamPrivate;
2864
2865#[derive(Copy, Clone)]
2866#[repr(C)]
2867pub struct GstStructure {
2868    pub type_: GType,
2869    pub name: glib::GQuark,
2870}
2871
2872impl ::std::fmt::Debug for GstStructure {
2873    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2874        f.debug_struct(&format!("GstStructure @ {self:p}"))
2875            .field("type_", &self.type_)
2876            .finish()
2877    }
2878}
2879
2880#[derive(Copy, Clone)]
2881#[repr(C)]
2882pub struct GstSystemClockClass {
2883    pub parent_class: GstClockClass,
2884    pub _gst_reserved: [gpointer; 4],
2885}
2886
2887impl ::std::fmt::Debug for GstSystemClockClass {
2888    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2889        f.debug_struct(&format!("GstSystemClockClass @ {self:p}"))
2890            .field("parent_class", &self.parent_class)
2891            .finish()
2892    }
2893}
2894
2895#[repr(C)]
2896#[allow(dead_code)]
2897pub struct _GstSystemClockPrivate {
2898    _data: [u8; 0],
2899    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2900}
2901
2902pub type GstSystemClockPrivate = _GstSystemClockPrivate;
2903
2904#[derive(Copy, Clone)]
2905#[repr(C)]
2906pub struct GstTagList {
2907    pub mini_object: GstMiniObject,
2908}
2909
2910impl ::std::fmt::Debug for GstTagList {
2911    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2912        f.debug_struct(&format!("GstTagList @ {self:p}"))
2913            .field("mini_object", &self.mini_object)
2914            .finish()
2915    }
2916}
2917
2918#[derive(Copy, Clone)]
2919#[repr(C)]
2920pub struct GstTagSetterInterface {
2921    pub g_iface: gobject::GTypeInterface,
2922}
2923
2924impl ::std::fmt::Debug for GstTagSetterInterface {
2925    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2926        f.debug_struct(&format!("GstTagSetterInterface @ {self:p}"))
2927            .field("g_iface", &self.g_iface)
2928            .finish()
2929    }
2930}
2931
2932#[derive(Copy, Clone)]
2933#[repr(C)]
2934pub struct GstTaskClass {
2935    pub parent_class: GstObjectClass,
2936    pub pool: *mut GstTaskPool,
2937    pub _gst_reserved: [gpointer; 4],
2938}
2939
2940impl ::std::fmt::Debug for GstTaskClass {
2941    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2942        f.debug_struct(&format!("GstTaskClass @ {self:p}"))
2943            .field("parent_class", &self.parent_class)
2944            .finish()
2945    }
2946}
2947
2948#[derive(Copy, Clone)]
2949#[repr(C)]
2950pub struct GstTaskPoolClass {
2951    pub parent_class: GstObjectClass,
2952    pub prepare: Option<unsafe extern "C" fn(*mut GstTaskPool, *mut *mut glib::GError)>,
2953    pub cleanup: Option<unsafe extern "C" fn(*mut GstTaskPool)>,
2954    pub push: Option<
2955        unsafe extern "C" fn(
2956            *mut GstTaskPool,
2957            GstTaskPoolFunction,
2958            gpointer,
2959            *mut *mut glib::GError,
2960        ) -> gpointer,
2961    >,
2962    pub join: Option<unsafe extern "C" fn(*mut GstTaskPool, gpointer)>,
2963    pub dispose_handle: Option<unsafe extern "C" fn(*mut GstTaskPool, gpointer)>,
2964    pub _gst_reserved: [gpointer; 3],
2965}
2966
2967impl ::std::fmt::Debug for GstTaskPoolClass {
2968    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2969        f.debug_struct(&format!("GstTaskPoolClass @ {self:p}"))
2970            .field("parent_class", &self.parent_class)
2971            .field("prepare", &self.prepare)
2972            .field("cleanup", &self.cleanup)
2973            .field("push", &self.push)
2974            .field("join", &self.join)
2975            .field("dispose_handle", &self.dispose_handle)
2976            .finish()
2977    }
2978}
2979
2980#[repr(C)]
2981#[allow(dead_code)]
2982pub struct _GstTaskPrivate {
2983    _data: [u8; 0],
2984    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2985}
2986
2987pub type GstTaskPrivate = _GstTaskPrivate;
2988
2989#[derive(Copy, Clone)]
2990#[repr(C)]
2991pub struct GstTimedValue {
2992    pub timestamp: GstClockTime,
2993    pub value: c_double,
2994}
2995
2996impl ::std::fmt::Debug for GstTimedValue {
2997    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2998        f.debug_struct(&format!("GstTimedValue @ {self:p}"))
2999            .field("timestamp", &self.timestamp)
3000            .field("value", &self.value)
3001            .finish()
3002    }
3003}
3004
3005#[repr(C)]
3006#[allow(dead_code)]
3007pub struct GstToc {
3008    _data: [u8; 0],
3009    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3010}
3011
3012impl ::std::fmt::Debug for GstToc {
3013    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3014        f.debug_struct(&format!("GstToc @ {self:p}")).finish()
3015    }
3016}
3017
3018#[repr(C)]
3019#[allow(dead_code)]
3020pub struct GstTocEntry {
3021    _data: [u8; 0],
3022    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3023}
3024
3025impl ::std::fmt::Debug for GstTocEntry {
3026    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3027        f.debug_struct(&format!("GstTocEntry @ {self:p}")).finish()
3028    }
3029}
3030
3031#[derive(Copy, Clone)]
3032#[repr(C)]
3033pub struct GstTocSetterInterface {
3034    pub g_iface: gobject::GTypeInterface,
3035}
3036
3037impl ::std::fmt::Debug for GstTocSetterInterface {
3038    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3039        f.debug_struct(&format!("GstTocSetterInterface @ {self:p}"))
3040            .field("g_iface", &self.g_iface)
3041            .finish()
3042    }
3043}
3044
3045#[derive(Copy, Clone)]
3046#[repr(C)]
3047pub struct GstTracerClass {
3048    pub parent_class: GstObjectClass,
3049    pub _gst_reserved: [gpointer; 4],
3050}
3051
3052impl ::std::fmt::Debug for GstTracerClass {
3053    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3054        f.debug_struct(&format!("GstTracerClass @ {self:p}"))
3055            .field("parent_class", &self.parent_class)
3056            .finish()
3057    }
3058}
3059
3060#[repr(C)]
3061#[allow(dead_code)]
3062pub struct _GstTracerFactoryClass {
3063    _data: [u8; 0],
3064    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3065}
3066
3067pub type GstTracerFactoryClass = _GstTracerFactoryClass;
3068
3069#[repr(C)]
3070#[allow(dead_code)]
3071pub struct _GstTracerPrivate {
3072    _data: [u8; 0],
3073    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3074}
3075
3076pub type GstTracerPrivate = _GstTracerPrivate;
3077
3078#[repr(C)]
3079#[allow(dead_code)]
3080pub struct _GstTracerRecordClass {
3081    _data: [u8; 0],
3082    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3083}
3084
3085pub type GstTracerRecordClass = _GstTracerRecordClass;
3086
3087#[derive(Copy, Clone)]
3088#[repr(C)]
3089pub struct GstTypeFind {
3090    pub peek: Option<unsafe extern "C" fn(gpointer, i64, c_uint) -> *const u8>,
3091    pub suggest: Option<unsafe extern "C" fn(gpointer, c_uint, *mut GstCaps)>,
3092    pub data: gpointer,
3093    pub get_length: Option<unsafe extern "C" fn(gpointer) -> u64>,
3094    pub _gst_reserved: [gpointer; 4],
3095}
3096
3097impl ::std::fmt::Debug for GstTypeFind {
3098    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3099        f.debug_struct(&format!("GstTypeFind @ {self:p}"))
3100            .field("peek", &self.peek)
3101            .field("suggest", &self.suggest)
3102            .field("data", &self.data)
3103            .field("get_length", &self.get_length)
3104            .finish()
3105    }
3106}
3107
3108#[repr(C)]
3109#[allow(dead_code)]
3110pub struct _GstTypeFindFactoryClass {
3111    _data: [u8; 0],
3112    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3113}
3114
3115pub type GstTypeFindFactoryClass = _GstTypeFindFactoryClass;
3116
3117#[derive(Copy, Clone)]
3118#[repr(C)]
3119pub struct GstURIHandlerInterface {
3120    pub parent: gobject::GTypeInterface,
3121    pub get_type: Option<unsafe extern "C" fn(GType) -> GstURIType>,
3122    pub get_protocols: Option<unsafe extern "C" fn(GType) -> *const *const c_char>,
3123    pub get_uri: Option<unsafe extern "C" fn(*mut GstURIHandler) -> *mut c_char>,
3124    pub set_uri: Option<
3125        unsafe extern "C" fn(*mut GstURIHandler, *const c_char, *mut *mut glib::GError) -> gboolean,
3126    >,
3127}
3128
3129impl ::std::fmt::Debug for GstURIHandlerInterface {
3130    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3131        f.debug_struct(&format!("GstURIHandlerInterface @ {self:p}"))
3132            .field("parent", &self.parent)
3133            .field("get_type", &self.get_type)
3134            .field("get_protocols", &self.get_protocols)
3135            .field("get_uri", &self.get_uri)
3136            .field("set_uri", &self.set_uri)
3137            .finish()
3138    }
3139}
3140
3141#[repr(C)]
3142#[allow(dead_code)]
3143pub struct GstUri {
3144    _data: [u8; 0],
3145    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3146}
3147
3148impl ::std::fmt::Debug for GstUri {
3149    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3150        f.debug_struct(&format!("GstUri @ {self:p}")).finish()
3151    }
3152}
3153
3154#[derive(Copy, Clone)]
3155#[repr(C)]
3156pub struct GstValueTable {
3157    pub type_: GType,
3158    pub compare: GstValueCompareFunc,
3159    pub serialize: GstValueSerializeFunc,
3160    pub deserialize: GstValueDeserializeFunc,
3161    pub deserialize_with_pspec: GstValueDeserializeWithPSpecFunc,
3162    pub hash: GstValueHashFunc,
3163    pub _gst_reserved: [gpointer; 2],
3164}
3165
3166impl ::std::fmt::Debug for GstValueTable {
3167    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3168        f.debug_struct(&format!("GstValueTable @ {self:p}"))
3169            .field("type_", &self.type_)
3170            .field("compare", &self.compare)
3171            .field("serialize", &self.serialize)
3172            .field("deserialize", &self.deserialize)
3173            .field("deserialize_with_pspec", &self.deserialize_with_pspec)
3174            .field("hash", &self.hash)
3175            .finish()
3176    }
3177}
3178
3179#[repr(C)]
3180#[allow(dead_code)]
3181pub struct _GstVecDeque {
3182    _data: [u8; 0],
3183    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3184}
3185
3186pub type GstVecDeque = _GstVecDeque;
3187
3188// Classes
3189#[derive(Copy, Clone)]
3190#[repr(C)]
3191pub struct GstAllocator {
3192    pub object: GstObject,
3193    pub mem_type: *const c_char,
3194    pub mem_map: GstMemoryMapFunction,
3195    pub mem_unmap: GstMemoryUnmapFunction,
3196    pub mem_copy: GstMemoryCopyFunction,
3197    pub mem_share: GstMemoryShareFunction,
3198    pub mem_is_span: GstMemoryIsSpanFunction,
3199    pub mem_map_full: GstMemoryMapFullFunction,
3200    pub mem_unmap_full: GstMemoryUnmapFullFunction,
3201    pub _gst_reserved: [gpointer; 2],
3202    pub priv_: *mut GstAllocatorPrivate,
3203}
3204
3205impl ::std::fmt::Debug for GstAllocator {
3206    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3207        f.debug_struct(&format!("GstAllocator @ {self:p}"))
3208            .field("object", &self.object)
3209            .field("mem_type", &self.mem_type)
3210            .field("mem_map", &self.mem_map)
3211            .field("mem_unmap", &self.mem_unmap)
3212            .field("mem_copy", &self.mem_copy)
3213            .field("mem_share", &self.mem_share)
3214            .field("mem_is_span", &self.mem_is_span)
3215            .field("mem_map_full", &self.mem_map_full)
3216            .field("mem_unmap_full", &self.mem_unmap_full)
3217            .finish()
3218    }
3219}
3220
3221#[derive(Copy, Clone)]
3222#[repr(C)]
3223pub struct GstBin {
3224    pub element: GstElement,
3225    pub numchildren: c_int,
3226    pub children: *mut glib::GList,
3227    pub children_cookie: u32,
3228    pub child_bus: *mut GstBus,
3229    pub messages: *mut glib::GList,
3230    pub polling: gboolean,
3231    pub state_dirty: gboolean,
3232    pub clock_dirty: gboolean,
3233    pub provided_clock: *mut GstClock,
3234    pub clock_provider: *mut GstElement,
3235    pub priv_: *mut GstBinPrivate,
3236    pub _gst_reserved: [gpointer; 4],
3237}
3238
3239impl ::std::fmt::Debug for GstBin {
3240    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3241        f.debug_struct(&format!("GstBin @ {self:p}"))
3242            .field("element", &self.element)
3243            .field("numchildren", &self.numchildren)
3244            .field("children", &self.children)
3245            .field("children_cookie", &self.children_cookie)
3246            .field("child_bus", &self.child_bus)
3247            .field("messages", &self.messages)
3248            .field("polling", &self.polling)
3249            .field("state_dirty", &self.state_dirty)
3250            .field("clock_dirty", &self.clock_dirty)
3251            .field("provided_clock", &self.provided_clock)
3252            .field("clock_provider", &self.clock_provider)
3253            .finish()
3254    }
3255}
3256
3257#[repr(C)]
3258#[allow(dead_code)]
3259pub struct GstBitmask {
3260    _data: [u8; 0],
3261    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3262}
3263
3264impl ::std::fmt::Debug for GstBitmask {
3265    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3266        f.debug_struct(&format!("GstBitmask @ {self:p}")).finish()
3267    }
3268}
3269
3270#[derive(Copy, Clone)]
3271#[repr(C)]
3272pub struct GstBufferPool {
3273    pub object: GstObject,
3274    pub flushing: c_int,
3275    pub priv_: *mut GstBufferPoolPrivate,
3276    pub _gst_reserved: [gpointer; 4],
3277}
3278
3279impl ::std::fmt::Debug for GstBufferPool {
3280    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3281        f.debug_struct(&format!("GstBufferPool @ {self:p}"))
3282            .field("object", &self.object)
3283            .field("flushing", &self.flushing)
3284            .finish()
3285    }
3286}
3287
3288#[derive(Copy, Clone)]
3289#[repr(C)]
3290pub struct GstBus {
3291    pub object: GstObject,
3292    pub priv_: *mut GstBusPrivate,
3293    pub _gst_reserved: [gpointer; 4],
3294}
3295
3296impl ::std::fmt::Debug for GstBus {
3297    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3298        f.debug_struct(&format!("GstBus @ {self:p}"))
3299            .field("object", &self.object)
3300            .finish()
3301    }
3302}
3303
3304#[derive(Copy, Clone)]
3305#[repr(C)]
3306pub struct GstClock {
3307    pub object: GstObject,
3308    pub priv_: *mut GstClockPrivate,
3309    pub _gst_reserved: [gpointer; 4],
3310}
3311
3312impl ::std::fmt::Debug for GstClock {
3313    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3314        f.debug_struct(&format!("GstClock @ {self:p}"))
3315            .field("object", &self.object)
3316            .finish()
3317    }
3318}
3319
3320#[derive(Copy, Clone)]
3321#[repr(C)]
3322pub struct GstControlBinding {
3323    pub parent: GstObject,
3324    pub name: *mut c_char,
3325    pub pspec: *mut gobject::GParamSpec,
3326    pub object: *mut GstObject,
3327    pub disabled: gboolean,
3328    pub ABI: GstControlBinding_ABI,
3329}
3330
3331impl ::std::fmt::Debug for GstControlBinding {
3332    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3333        f.debug_struct(&format!("GstControlBinding @ {self:p}"))
3334            .field("parent", &self.parent)
3335            .field("name", &self.name)
3336            .field("pspec", &self.pspec)
3337            .field("ABI", &self.ABI)
3338            .finish()
3339    }
3340}
3341
3342#[derive(Copy, Clone)]
3343#[repr(C)]
3344pub struct GstControlSource {
3345    pub parent: GstObject,
3346    pub get_value: GstControlSourceGetValue,
3347    pub get_value_array: GstControlSourceGetValueArray,
3348    pub _gst_reserved: [gpointer; 4],
3349}
3350
3351impl ::std::fmt::Debug for GstControlSource {
3352    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3353        f.debug_struct(&format!("GstControlSource @ {self:p}"))
3354            .field("parent", &self.parent)
3355            .field("get_value", &self.get_value)
3356            .field("get_value_array", &self.get_value_array)
3357            .finish()
3358    }
3359}
3360
3361#[derive(Copy, Clone)]
3362#[repr(C)]
3363pub struct GstDevice {
3364    pub parent: GstObject,
3365    pub priv_: *mut GstDevicePrivate,
3366    pub _gst_reserved: [gpointer; 4],
3367}
3368
3369impl ::std::fmt::Debug for GstDevice {
3370    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3371        f.debug_struct(&format!("GstDevice @ {self:p}"))
3372            .field("parent", &self.parent)
3373            .finish()
3374    }
3375}
3376
3377#[derive(Copy, Clone)]
3378#[repr(C)]
3379pub struct GstDeviceMonitor {
3380    pub parent: GstObject,
3381    pub priv_: *mut GstDeviceMonitorPrivate,
3382    pub _gst_reserved: [gpointer; 4],
3383}
3384
3385impl ::std::fmt::Debug for GstDeviceMonitor {
3386    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3387        f.debug_struct(&format!("GstDeviceMonitor @ {self:p}"))
3388            .field("parent", &self.parent)
3389            .finish()
3390    }
3391}
3392
3393#[derive(Copy, Clone)]
3394#[repr(C)]
3395pub struct GstDeviceProvider {
3396    pub parent: GstObject,
3397    pub devices: *mut glib::GList,
3398    pub priv_: *mut GstDeviceProviderPrivate,
3399    pub _gst_reserved: [gpointer; 4],
3400}
3401
3402impl ::std::fmt::Debug for GstDeviceProvider {
3403    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3404        f.debug_struct(&format!("GstDeviceProvider @ {self:p}"))
3405            .field("parent", &self.parent)
3406            .field("devices", &self.devices)
3407            .finish()
3408    }
3409}
3410
3411#[repr(C)]
3412#[allow(dead_code)]
3413pub struct GstDeviceProviderFactory {
3414    _data: [u8; 0],
3415    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3416}
3417
3418impl ::std::fmt::Debug for GstDeviceProviderFactory {
3419    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3420        f.debug_struct(&format!("GstDeviceProviderFactory @ {self:p}"))
3421            .finish()
3422    }
3423}
3424
3425#[repr(C)]
3426#[allow(dead_code)]
3427pub struct GstDoubleRange {
3428    _data: [u8; 0],
3429    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3430}
3431
3432impl ::std::fmt::Debug for GstDoubleRange {
3433    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3434        f.debug_struct(&format!("GstDoubleRange @ {self:p}"))
3435            .finish()
3436    }
3437}
3438
3439#[repr(C)]
3440#[allow(dead_code)]
3441pub struct GstDynamicTypeFactory {
3442    _data: [u8; 0],
3443    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3444}
3445
3446impl ::std::fmt::Debug for GstDynamicTypeFactory {
3447    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3448        f.debug_struct(&format!("GstDynamicTypeFactory @ {self:p}"))
3449            .finish()
3450    }
3451}
3452
3453#[derive(Copy, Clone)]
3454#[repr(C)]
3455pub struct GstElement {
3456    pub object: GstObject,
3457    pub state_lock: glib::GRecMutex,
3458    pub state_cond: glib::GCond,
3459    pub state_cookie: u32,
3460    pub target_state: GstState,
3461    pub current_state: GstState,
3462    pub next_state: GstState,
3463    pub pending_state: GstState,
3464    pub last_return: GstStateChangeReturn,
3465    pub bus: *mut GstBus,
3466    pub clock: *mut GstClock,
3467    pub base_time: GstClockTimeDiff,
3468    pub start_time: GstClockTime,
3469    pub numpads: u16,
3470    pub pads: *mut glib::GList,
3471    pub numsrcpads: u16,
3472    pub srcpads: *mut glib::GList,
3473    pub numsinkpads: u16,
3474    pub sinkpads: *mut glib::GList,
3475    pub pads_cookie: u32,
3476    pub contexts: *mut glib::GList,
3477    pub _gst_reserved: [gpointer; 3],
3478}
3479
3480impl ::std::fmt::Debug for GstElement {
3481    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3482        f.debug_struct(&format!("GstElement @ {self:p}"))
3483            .field("object", &self.object)
3484            .field("state_lock", &self.state_lock)
3485            .field("state_cond", &self.state_cond)
3486            .field("state_cookie", &self.state_cookie)
3487            .field("target_state", &self.target_state)
3488            .field("current_state", &self.current_state)
3489            .field("next_state", &self.next_state)
3490            .field("pending_state", &self.pending_state)
3491            .field("last_return", &self.last_return)
3492            .field("bus", &self.bus)
3493            .field("clock", &self.clock)
3494            .field("base_time", &self.base_time)
3495            .field("start_time", &self.start_time)
3496            .field("numpads", &self.numpads)
3497            .field("pads", &self.pads)
3498            .field("numsrcpads", &self.numsrcpads)
3499            .field("srcpads", &self.srcpads)
3500            .field("numsinkpads", &self.numsinkpads)
3501            .field("sinkpads", &self.sinkpads)
3502            .field("pads_cookie", &self.pads_cookie)
3503            .field("contexts", &self.contexts)
3504            .finish()
3505    }
3506}
3507
3508#[repr(C)]
3509#[allow(dead_code)]
3510pub struct GstElementFactory {
3511    _data: [u8; 0],
3512    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3513}
3514
3515impl ::std::fmt::Debug for GstElementFactory {
3516    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3517        f.debug_struct(&format!("GstElementFactory @ {self:p}"))
3518            .finish()
3519    }
3520}
3521
3522#[repr(C)]
3523#[allow(dead_code)]
3524pub struct GstFlagSet {
3525    _data: [u8; 0],
3526    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3527}
3528
3529impl ::std::fmt::Debug for GstFlagSet {
3530    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3531        f.debug_struct(&format!("GstFlagSet @ {self:p}")).finish()
3532    }
3533}
3534
3535#[repr(C)]
3536#[allow(dead_code)]
3537pub struct GstFraction {
3538    _data: [u8; 0],
3539    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3540}
3541
3542impl ::std::fmt::Debug for GstFraction {
3543    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3544        f.debug_struct(&format!("GstFraction @ {self:p}")).finish()
3545    }
3546}
3547
3548#[repr(C)]
3549#[allow(dead_code)]
3550pub struct GstFractionRange {
3551    _data: [u8; 0],
3552    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3553}
3554
3555impl ::std::fmt::Debug for GstFractionRange {
3556    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3557        f.debug_struct(&format!("GstFractionRange @ {self:p}"))
3558            .finish()
3559    }
3560}
3561
3562#[derive(Copy, Clone)]
3563#[repr(C)]
3564pub struct GstGhostPad {
3565    pub pad: GstProxyPad,
3566    pub priv_: *mut GstGhostPadPrivate,
3567}
3568
3569impl ::std::fmt::Debug for GstGhostPad {
3570    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3571        f.debug_struct(&format!("GstGhostPad @ {self:p}"))
3572            .field("pad", &self.pad)
3573            .finish()
3574    }
3575}
3576
3577#[repr(C)]
3578#[allow(dead_code)]
3579pub struct GstInt64Range {
3580    _data: [u8; 0],
3581    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3582}
3583
3584impl ::std::fmt::Debug for GstInt64Range {
3585    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3586        f.debug_struct(&format!("GstInt64Range @ {self:p}"))
3587            .finish()
3588    }
3589}
3590
3591#[repr(C)]
3592#[allow(dead_code)]
3593pub struct GstIntRange {
3594    _data: [u8; 0],
3595    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3596}
3597
3598impl ::std::fmt::Debug for GstIntRange {
3599    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3600        f.debug_struct(&format!("GstIntRange @ {self:p}")).finish()
3601    }
3602}
3603
3604#[derive(Copy, Clone)]
3605#[repr(C)]
3606pub struct GstObject {
3607    pub object: gobject::GInitiallyUnowned,
3608    pub lock: glib::GMutex,
3609    pub name: *mut c_char,
3610    pub parent: *mut GstObject,
3611    pub flags: u32,
3612    pub control_bindings: *mut glib::GList,
3613    pub control_rate: u64,
3614    pub last_sync: u64,
3615    pub _gst_reserved: gpointer,
3616}
3617
3618impl ::std::fmt::Debug for GstObject {
3619    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3620        f.debug_struct(&format!("GstObject @ {self:p}"))
3621            .field("object", &self.object)
3622            .field("lock", &self.lock)
3623            .field("name", &self.name)
3624            .field("parent", &self.parent)
3625            .field("flags", &self.flags)
3626            .finish()
3627    }
3628}
3629
3630#[derive(Copy, Clone)]
3631#[repr(C)]
3632pub struct GstPad {
3633    pub object: GstObject,
3634    pub element_private: gpointer,
3635    pub padtemplate: *mut GstPadTemplate,
3636    pub direction: GstPadDirection,
3637    pub stream_rec_lock: glib::GRecMutex,
3638    pub task: *mut GstTask,
3639    pub block_cond: glib::GCond,
3640    pub probes: glib::GHookList,
3641    pub mode: GstPadMode,
3642    pub activatefunc: GstPadActivateFunction,
3643    pub activatedata: gpointer,
3644    pub activatenotify: glib::GDestroyNotify,
3645    pub activatemodefunc: GstPadActivateModeFunction,
3646    pub activatemodedata: gpointer,
3647    pub activatemodenotify: glib::GDestroyNotify,
3648    pub peer: *mut GstPad,
3649    pub linkfunc: GstPadLinkFunction,
3650    pub linkdata: gpointer,
3651    pub linknotify: glib::GDestroyNotify,
3652    pub unlinkfunc: GstPadUnlinkFunction,
3653    pub unlinkdata: gpointer,
3654    pub unlinknotify: glib::GDestroyNotify,
3655    pub chainfunc: GstPadChainFunction,
3656    pub chaindata: gpointer,
3657    pub chainnotify: glib::GDestroyNotify,
3658    pub chainlistfunc: GstPadChainListFunction,
3659    pub chainlistdata: gpointer,
3660    pub chainlistnotify: glib::GDestroyNotify,
3661    pub getrangefunc: GstPadGetRangeFunction,
3662    pub getrangedata: gpointer,
3663    pub getrangenotify: glib::GDestroyNotify,
3664    pub eventfunc: GstPadEventFunction,
3665    pub eventdata: gpointer,
3666    pub eventnotify: glib::GDestroyNotify,
3667    pub offset: i64,
3668    pub queryfunc: GstPadQueryFunction,
3669    pub querydata: gpointer,
3670    pub querynotify: glib::GDestroyNotify,
3671    pub iterintlinkfunc: GstPadIterIntLinkFunction,
3672    pub iterintlinkdata: gpointer,
3673    pub iterintlinknotify: glib::GDestroyNotify,
3674    pub num_probes: c_int,
3675    pub num_blocked: c_int,
3676    pub priv_: *mut GstPadPrivate,
3677    pub ABI: GstPad_ABI,
3678}
3679
3680impl ::std::fmt::Debug for GstPad {
3681    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3682        f.debug_struct(&format!("GstPad @ {self:p}"))
3683            .field("object", &self.object)
3684            .field("element_private", &self.element_private)
3685            .field("padtemplate", &self.padtemplate)
3686            .field("direction", &self.direction)
3687            .field("ABI", &self.ABI)
3688            .finish()
3689    }
3690}
3691
3692#[derive(Copy, Clone)]
3693#[repr(C)]
3694pub struct GstPadTemplate {
3695    pub object: GstObject,
3696    pub name_template: *mut c_char,
3697    pub direction: GstPadDirection,
3698    pub presence: GstPadPresence,
3699    pub caps: *mut GstCaps,
3700    pub ABI: GstPadTemplate_ABI,
3701}
3702
3703impl ::std::fmt::Debug for GstPadTemplate {
3704    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3705        f.debug_struct(&format!("GstPadTemplate @ {self:p}"))
3706            .field("object", &self.object)
3707            .field("name_template", &self.name_template)
3708            .field("direction", &self.direction)
3709            .field("presence", &self.presence)
3710            .field("caps", &self.caps)
3711            .field("ABI", &self.ABI)
3712            .finish()
3713    }
3714}
3715
3716#[repr(C)]
3717#[allow(dead_code)]
3718pub struct GstParamArray {
3719    _data: [u8; 0],
3720    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3721}
3722
3723impl ::std::fmt::Debug for GstParamArray {
3724    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3725        f.debug_struct(&format!("GstParamArray @ {self:p}"))
3726            .finish()
3727    }
3728}
3729
3730#[repr(C)]
3731#[allow(dead_code)]
3732pub struct GstParamFraction {
3733    _data: [u8; 0],
3734    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3735}
3736
3737impl ::std::fmt::Debug for GstParamFraction {
3738    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3739        f.debug_struct(&format!("GstParamFraction @ {self:p}"))
3740            .finish()
3741    }
3742}
3743
3744#[derive(Copy, Clone)]
3745#[repr(C)]
3746pub struct GstPipeline {
3747    pub bin: GstBin,
3748    pub fixed_clock: *mut GstClock,
3749    pub stream_time: GstClockTime,
3750    pub delay: GstClockTime,
3751    pub priv_: *mut GstPipelinePrivate,
3752    pub _gst_reserved: [gpointer; 4],
3753}
3754
3755impl ::std::fmt::Debug for GstPipeline {
3756    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3757        f.debug_struct(&format!("GstPipeline @ {self:p}"))
3758            .field("bin", &self.bin)
3759            .field("fixed_clock", &self.fixed_clock)
3760            .field("stream_time", &self.stream_time)
3761            .field("delay", &self.delay)
3762            .finish()
3763    }
3764}
3765
3766#[repr(C)]
3767#[allow(dead_code)]
3768pub struct GstPlugin {
3769    _data: [u8; 0],
3770    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3771}
3772
3773impl ::std::fmt::Debug for GstPlugin {
3774    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3775        f.debug_struct(&format!("GstPlugin @ {self:p}")).finish()
3776    }
3777}
3778
3779#[repr(C)]
3780#[allow(dead_code)]
3781pub struct GstPluginFeature {
3782    _data: [u8; 0],
3783    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3784}
3785
3786impl ::std::fmt::Debug for GstPluginFeature {
3787    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3788        f.debug_struct(&format!("GstPluginFeature @ {self:p}"))
3789            .finish()
3790    }
3791}
3792
3793#[derive(Copy, Clone)]
3794#[repr(C)]
3795pub struct GstProxyPad {
3796    pub pad: GstPad,
3797    pub priv_: *mut GstProxyPadPrivate,
3798}
3799
3800impl ::std::fmt::Debug for GstProxyPad {
3801    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3802        f.debug_struct(&format!("GstProxyPad @ {self:p}"))
3803            .field("pad", &self.pad)
3804            .finish()
3805    }
3806}
3807
3808#[derive(Copy, Clone)]
3809#[repr(C)]
3810pub struct GstRegistry {
3811    pub object: GstObject,
3812    pub priv_: *mut GstRegistryPrivate,
3813}
3814
3815impl ::std::fmt::Debug for GstRegistry {
3816    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3817        f.debug_struct(&format!("GstRegistry @ {self:p}"))
3818            .field("object", &self.object)
3819            .finish()
3820    }
3821}
3822
3823#[derive(Copy, Clone)]
3824#[repr(C)]
3825pub struct GstSharedTaskPool {
3826    pub parent: GstTaskPool,
3827    pub priv_: *mut GstSharedTaskPoolPrivate,
3828    pub _gst_reserved: [gpointer; 4],
3829}
3830
3831impl ::std::fmt::Debug for GstSharedTaskPool {
3832    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3833        f.debug_struct(&format!("GstSharedTaskPool @ {self:p}"))
3834            .field("parent", &self.parent)
3835            .finish()
3836    }
3837}
3838
3839#[derive(Copy, Clone)]
3840#[repr(C)]
3841pub struct GstStream {
3842    pub object: GstObject,
3843    pub stream_id: *const c_char,
3844    pub priv_: *mut GstStreamPrivate,
3845    pub _gst_reserved: [gpointer; 4],
3846}
3847
3848impl ::std::fmt::Debug for GstStream {
3849    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3850        f.debug_struct(&format!("GstStream @ {self:p}"))
3851            .field("stream_id", &self.stream_id)
3852            .finish()
3853    }
3854}
3855
3856#[derive(Copy, Clone)]
3857#[repr(C)]
3858pub struct GstStreamCollection {
3859    pub object: GstObject,
3860    pub upstream_id: *mut c_char,
3861    pub priv_: *mut GstStreamCollectionPrivate,
3862    pub _gst_reserved: [gpointer; 4],
3863}
3864
3865impl ::std::fmt::Debug for GstStreamCollection {
3866    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3867        f.debug_struct(&format!("GstStreamCollection @ {self:p}"))
3868            .finish()
3869    }
3870}
3871
3872#[derive(Copy, Clone)]
3873#[repr(C)]
3874pub struct GstSystemClock {
3875    pub clock: GstClock,
3876    pub priv_: *mut GstSystemClockPrivate,
3877    pub _gst_reserved: [gpointer; 4],
3878}
3879
3880impl ::std::fmt::Debug for GstSystemClock {
3881    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3882        f.debug_struct(&format!("GstSystemClock @ {self:p}"))
3883            .field("clock", &self.clock)
3884            .finish()
3885    }
3886}
3887
3888#[derive(Copy, Clone)]
3889#[repr(C)]
3890pub struct GstTask {
3891    pub object: GstObject,
3892    pub state: GstTaskState,
3893    pub cond: glib::GCond,
3894    pub lock: *mut glib::GRecMutex,
3895    pub func: GstTaskFunction,
3896    pub user_data: gpointer,
3897    pub notify: glib::GDestroyNotify,
3898    pub running: gboolean,
3899    pub thread: *mut glib::GThread,
3900    pub priv_: *mut GstTaskPrivate,
3901    pub _gst_reserved: [gpointer; 4],
3902}
3903
3904impl ::std::fmt::Debug for GstTask {
3905    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3906        f.debug_struct(&format!("GstTask @ {self:p}"))
3907            .field("object", &self.object)
3908            .field("state", &self.state)
3909            .field("cond", &self.cond)
3910            .field("lock", &self.lock)
3911            .field("func", &self.func)
3912            .field("user_data", &self.user_data)
3913            .field("notify", &self.notify)
3914            .field("running", &self.running)
3915            .finish()
3916    }
3917}
3918
3919#[derive(Copy, Clone)]
3920#[repr(C)]
3921pub struct GstTaskPool {
3922    pub object: GstObject,
3923    pub pool: *mut glib::GThreadPool,
3924    pub _gst_reserved: [gpointer; 4],
3925}
3926
3927impl ::std::fmt::Debug for GstTaskPool {
3928    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3929        f.debug_struct(&format!("GstTaskPool @ {self:p}"))
3930            .field("object", &self.object)
3931            .finish()
3932    }
3933}
3934
3935#[derive(Copy, Clone)]
3936#[repr(C)]
3937pub struct GstTracer {
3938    pub parent: GstObject,
3939    pub priv_: *mut GstTracerPrivate,
3940    pub _gst_reserved: [gpointer; 4],
3941}
3942
3943impl ::std::fmt::Debug for GstTracer {
3944    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3945        f.debug_struct(&format!("GstTracer @ {self:p}"))
3946            .field("parent", &self.parent)
3947            .finish()
3948    }
3949}
3950
3951#[repr(C)]
3952#[allow(dead_code)]
3953pub struct GstTracerFactory {
3954    _data: [u8; 0],
3955    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3956}
3957
3958impl ::std::fmt::Debug for GstTracerFactory {
3959    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3960        f.debug_struct(&format!("GstTracerFactory @ {self:p}"))
3961            .finish()
3962    }
3963}
3964
3965#[repr(C)]
3966#[allow(dead_code)]
3967pub struct GstTracerRecord {
3968    _data: [u8; 0],
3969    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3970}
3971
3972impl ::std::fmt::Debug for GstTracerRecord {
3973    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3974        f.debug_struct(&format!("GstTracerRecord @ {self:p}"))
3975            .finish()
3976    }
3977}
3978
3979#[repr(C)]
3980#[allow(dead_code)]
3981pub struct GstTypeFindFactory {
3982    _data: [u8; 0],
3983    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3984}
3985
3986impl ::std::fmt::Debug for GstTypeFindFactory {
3987    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3988        f.debug_struct(&format!("GstTypeFindFactory @ {self:p}"))
3989            .finish()
3990    }
3991}
3992
3993#[repr(C)]
3994#[allow(dead_code)]
3995pub struct GstValueArray {
3996    _data: [u8; 0],
3997    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
3998}
3999
4000impl ::std::fmt::Debug for GstValueArray {
4001    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
4002        f.debug_struct(&format!("GstValueArray @ {self:p}"))
4003            .finish()
4004    }
4005}
4006
4007#[repr(C)]
4008#[allow(dead_code)]
4009pub struct GstValueList {
4010    _data: [u8; 0],
4011    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
4012}
4013
4014impl ::std::fmt::Debug for GstValueList {
4015    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
4016        f.debug_struct(&format!("GstValueList @ {self:p}")).finish()
4017    }
4018}
4019
4020// Interfaces
4021#[repr(C)]
4022#[allow(dead_code)]
4023pub struct GstChildProxy {
4024    _data: [u8; 0],
4025    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
4026}
4027
4028impl ::std::fmt::Debug for GstChildProxy {
4029    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
4030        write!(f, "GstChildProxy @ {self:p}")
4031    }
4032}
4033
4034#[repr(C)]
4035#[allow(dead_code)]
4036pub struct GstPreset {
4037    _data: [u8; 0],
4038    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
4039}
4040
4041impl ::std::fmt::Debug for GstPreset {
4042    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
4043        write!(f, "GstPreset @ {self:p}")
4044    }
4045}
4046
4047#[repr(C)]
4048#[allow(dead_code)]
4049pub struct GstTagSetter {
4050    _data: [u8; 0],
4051    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
4052}
4053
4054impl ::std::fmt::Debug for GstTagSetter {
4055    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
4056        write!(f, "GstTagSetter @ {self:p}")
4057    }
4058}
4059
4060#[repr(C)]
4061#[allow(dead_code)]
4062pub struct GstTocSetter {
4063    _data: [u8; 0],
4064    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
4065}
4066
4067impl ::std::fmt::Debug for GstTocSetter {
4068    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
4069        write!(f, "GstTocSetter @ {self:p}")
4070    }
4071}
4072
4073#[repr(C)]
4074#[allow(dead_code)]
4075pub struct GstURIHandler {
4076    _data: [u8; 0],
4077    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
4078}
4079
4080impl ::std::fmt::Debug for GstURIHandler {
4081    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
4082        write!(f, "GstURIHandler @ {self:p}")
4083    }
4084}
4085
4086extern "C" {
4087
4088    //=========================================================================
4089    // GstBufferingMode
4090    //=========================================================================
4091    pub fn gst_buffering_mode_get_type() -> GType;
4092
4093    //=========================================================================
4094    // GstBusSyncReply
4095    //=========================================================================
4096    pub fn gst_bus_sync_reply_get_type() -> GType;
4097
4098    //=========================================================================
4099    // GstCapsIntersectMode
4100    //=========================================================================
4101    pub fn gst_caps_intersect_mode_get_type() -> GType;
4102
4103    //=========================================================================
4104    // GstClockEntryType
4105    //=========================================================================
4106    pub fn gst_clock_entry_type_get_type() -> GType;
4107
4108    //=========================================================================
4109    // GstClockReturn
4110    //=========================================================================
4111    pub fn gst_clock_return_get_type() -> GType;
4112
4113    //=========================================================================
4114    // GstClockType
4115    //=========================================================================
4116    pub fn gst_clock_type_get_type() -> GType;
4117
4118    //=========================================================================
4119    // GstCoreError
4120    //=========================================================================
4121    pub fn gst_core_error_get_type() -> GType;
4122    pub fn gst_core_error_quark() -> glib::GQuark;
4123
4124    //=========================================================================
4125    // GstDebugColorMode
4126    //=========================================================================
4127    pub fn gst_debug_color_mode_get_type() -> GType;
4128
4129    //=========================================================================
4130    // GstDebugLevel
4131    //=========================================================================
4132    pub fn gst_debug_level_get_type() -> GType;
4133    pub fn gst_debug_level_get_name(level: GstDebugLevel) -> *const c_char;
4134
4135    //=========================================================================
4136    // GstEventType
4137    //=========================================================================
4138    pub fn gst_event_type_get_type() -> GType;
4139    pub fn gst_event_type_get_flags(type_: GstEventType) -> GstEventTypeFlags;
4140    pub fn gst_event_type_get_name(type_: GstEventType) -> *const c_char;
4141    pub fn gst_event_type_to_quark(type_: GstEventType) -> glib::GQuark;
4142    #[cfg(feature = "v1_22")]
4143    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
4144    pub fn gst_event_type_to_sticky_ordering(type_: GstEventType) -> c_uint;
4145
4146    //=========================================================================
4147    // GstFlowReturn
4148    //=========================================================================
4149    pub fn gst_flow_return_get_type() -> GType;
4150
4151    //=========================================================================
4152    // GstFormat
4153    //=========================================================================
4154    pub fn gst_format_get_type() -> GType;
4155    pub fn gst_format_get_by_nick(nick: *const c_char) -> GstFormat;
4156    pub fn gst_format_get_details(format: GstFormat) -> *const GstFormatDefinition;
4157    pub fn gst_format_get_name(format: GstFormat) -> *const c_char;
4158    pub fn gst_format_iterate_definitions() -> *mut GstIterator;
4159    pub fn gst_format_register(nick: *const c_char, description: *const c_char) -> GstFormat;
4160    pub fn gst_format_to_quark(format: GstFormat) -> glib::GQuark;
4161
4162    //=========================================================================
4163    // GstIteratorItem
4164    //=========================================================================
4165    pub fn gst_iterator_item_get_type() -> GType;
4166
4167    //=========================================================================
4168    // GstIteratorResult
4169    //=========================================================================
4170    pub fn gst_iterator_result_get_type() -> GType;
4171
4172    //=========================================================================
4173    // GstLibraryError
4174    //=========================================================================
4175    pub fn gst_library_error_get_type() -> GType;
4176    pub fn gst_library_error_quark() -> glib::GQuark;
4177
4178    //=========================================================================
4179    // GstPadDirection
4180    //=========================================================================
4181    pub fn gst_pad_direction_get_type() -> GType;
4182
4183    //=========================================================================
4184    // GstPadLinkReturn
4185    //=========================================================================
4186    pub fn gst_pad_link_return_get_type() -> GType;
4187
4188    //=========================================================================
4189    // GstPadMode
4190    //=========================================================================
4191    pub fn gst_pad_mode_get_type() -> GType;
4192    pub fn gst_pad_mode_get_name(mode: GstPadMode) -> *const c_char;
4193
4194    //=========================================================================
4195    // GstPadPresence
4196    //=========================================================================
4197    pub fn gst_pad_presence_get_type() -> GType;
4198
4199    //=========================================================================
4200    // GstPadProbeReturn
4201    //=========================================================================
4202    pub fn gst_pad_probe_return_get_type() -> GType;
4203
4204    //=========================================================================
4205    // GstParseError
4206    //=========================================================================
4207    pub fn gst_parse_error_get_type() -> GType;
4208    pub fn gst_parse_error_quark() -> glib::GQuark;
4209
4210    //=========================================================================
4211    // GstPluginError
4212    //=========================================================================
4213    pub fn gst_plugin_error_get_type() -> GType;
4214    pub fn gst_plugin_error_quark() -> glib::GQuark;
4215
4216    //=========================================================================
4217    // GstProgressType
4218    //=========================================================================
4219    pub fn gst_progress_type_get_type() -> GType;
4220
4221    //=========================================================================
4222    // GstPromiseResult
4223    //=========================================================================
4224    pub fn gst_promise_result_get_type() -> GType;
4225
4226    //=========================================================================
4227    // GstQOSType
4228    //=========================================================================
4229    pub fn gst_qos_type_get_type() -> GType;
4230
4231    //=========================================================================
4232    // GstQueryType
4233    //=========================================================================
4234    pub fn gst_query_type_get_type() -> GType;
4235    pub fn gst_query_type_get_flags(type_: GstQueryType) -> GstQueryTypeFlags;
4236    pub fn gst_query_type_get_name(type_: GstQueryType) -> *const c_char;
4237    pub fn gst_query_type_to_quark(type_: GstQueryType) -> glib::GQuark;
4238
4239    //=========================================================================
4240    // GstRank
4241    //=========================================================================
4242    pub fn gst_rank_get_type() -> GType;
4243
4244    //=========================================================================
4245    // GstResourceError
4246    //=========================================================================
4247    pub fn gst_resource_error_get_type() -> GType;
4248    pub fn gst_resource_error_quark() -> glib::GQuark;
4249
4250    //=========================================================================
4251    // GstSearchMode
4252    //=========================================================================
4253    pub fn gst_search_mode_get_type() -> GType;
4254
4255    //=========================================================================
4256    // GstSeekType
4257    //=========================================================================
4258    pub fn gst_seek_type_get_type() -> GType;
4259
4260    //=========================================================================
4261    // GstState
4262    //=========================================================================
4263    pub fn gst_state_get_type() -> GType;
4264
4265    //=========================================================================
4266    // GstStateChange
4267    //=========================================================================
4268    pub fn gst_state_change_get_type() -> GType;
4269    pub fn gst_state_change_get_name(transition: GstStateChange) -> *const c_char;
4270
4271    //=========================================================================
4272    // GstStateChangeReturn
4273    //=========================================================================
4274    pub fn gst_state_change_return_get_type() -> GType;
4275
4276    //=========================================================================
4277    // GstStreamError
4278    //=========================================================================
4279    pub fn gst_stream_error_get_type() -> GType;
4280    pub fn gst_stream_error_quark() -> glib::GQuark;
4281
4282    //=========================================================================
4283    // GstStreamStatusType
4284    //=========================================================================
4285    pub fn gst_stream_status_type_get_type() -> GType;
4286
4287    //=========================================================================
4288    // GstStructureChangeType
4289    //=========================================================================
4290    pub fn gst_structure_change_type_get_type() -> GType;
4291
4292    //=========================================================================
4293    // GstTagFlag
4294    //=========================================================================
4295    pub fn gst_tag_flag_get_type() -> GType;
4296
4297    //=========================================================================
4298    // GstTagMergeMode
4299    //=========================================================================
4300    pub fn gst_tag_merge_mode_get_type() -> GType;
4301
4302    //=========================================================================
4303    // GstTagScope
4304    //=========================================================================
4305    pub fn gst_tag_scope_get_type() -> GType;
4306
4307    //=========================================================================
4308    // GstTaskState
4309    //=========================================================================
4310    pub fn gst_task_state_get_type() -> GType;
4311
4312    //=========================================================================
4313    // GstTocEntryType
4314    //=========================================================================
4315    pub fn gst_toc_entry_type_get_type() -> GType;
4316    pub fn gst_toc_entry_type_get_nick(type_: GstTocEntryType) -> *const c_char;
4317
4318    //=========================================================================
4319    // GstTocLoopType
4320    //=========================================================================
4321    pub fn gst_toc_loop_type_get_type() -> GType;
4322
4323    //=========================================================================
4324    // GstTocScope
4325    //=========================================================================
4326    pub fn gst_toc_scope_get_type() -> GType;
4327
4328    //=========================================================================
4329    // GstTracerValueScope
4330    //=========================================================================
4331    pub fn gst_tracer_value_scope_get_type() -> GType;
4332
4333    //=========================================================================
4334    // GstTypeFindProbability
4335    //=========================================================================
4336    pub fn gst_type_find_probability_get_type() -> GType;
4337
4338    //=========================================================================
4339    // GstURIError
4340    //=========================================================================
4341    pub fn gst_uri_error_get_type() -> GType;
4342    pub fn gst_uri_error_quark() -> glib::GQuark;
4343
4344    //=========================================================================
4345    // GstURIType
4346    //=========================================================================
4347    pub fn gst_uri_type_get_type() -> GType;
4348
4349    //=========================================================================
4350    // GstAllocatorFlags
4351    //=========================================================================
4352    pub fn gst_allocator_flags_get_type() -> GType;
4353
4354    //=========================================================================
4355    // GstBinFlags
4356    //=========================================================================
4357    pub fn gst_bin_flags_get_type() -> GType;
4358
4359    //=========================================================================
4360    // GstBufferCopyFlags
4361    //=========================================================================
4362    pub fn gst_buffer_copy_flags_get_type() -> GType;
4363
4364    //=========================================================================
4365    // GstBufferFlags
4366    //=========================================================================
4367    pub fn gst_buffer_flags_get_type() -> GType;
4368
4369    //=========================================================================
4370    // GstBufferPoolAcquireFlags
4371    //=========================================================================
4372    pub fn gst_buffer_pool_acquire_flags_get_type() -> GType;
4373
4374    //=========================================================================
4375    // GstBusFlags
4376    //=========================================================================
4377    pub fn gst_bus_flags_get_type() -> GType;
4378
4379    //=========================================================================
4380    // GstCapsFlags
4381    //=========================================================================
4382    pub fn gst_caps_flags_get_type() -> GType;
4383
4384    //=========================================================================
4385    // GstClockFlags
4386    //=========================================================================
4387    pub fn gst_clock_flags_get_type() -> GType;
4388
4389    //=========================================================================
4390    // GstDebugColorFlags
4391    //=========================================================================
4392    pub fn gst_debug_color_flags_get_type() -> GType;
4393
4394    //=========================================================================
4395    // GstDebugGraphDetails
4396    //=========================================================================
4397    pub fn gst_debug_graph_details_get_type() -> GType;
4398
4399    //=========================================================================
4400    // GstElementFlags
4401    //=========================================================================
4402    pub fn gst_element_flags_get_type() -> GType;
4403
4404    //=========================================================================
4405    // GstEventTypeFlags
4406    //=========================================================================
4407    pub fn gst_event_type_flags_get_type() -> GType;
4408
4409    //=========================================================================
4410    // GstGapFlags
4411    //=========================================================================
4412    #[cfg(feature = "v1_20")]
4413    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4414    pub fn gst_gap_flags_get_type() -> GType;
4415
4416    //=========================================================================
4417    // GstLockFlags
4418    //=========================================================================
4419    pub fn gst_lock_flags_get_type() -> GType;
4420
4421    //=========================================================================
4422    // GstLogContextFlags
4423    //=========================================================================
4424    #[cfg(feature = "v1_28")]
4425    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
4426    pub fn gst_log_context_flags_get_type() -> GType;
4427
4428    //=========================================================================
4429    // GstLogContextHashFlags
4430    //=========================================================================
4431    #[cfg(feature = "v1_28")]
4432    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
4433    pub fn gst_log_context_hash_flags_get_type() -> GType;
4434
4435    //=========================================================================
4436    // GstMapFlags
4437    //=========================================================================
4438    pub fn gst_map_flags_get_type() -> GType;
4439
4440    //=========================================================================
4441    // GstMemoryFlags
4442    //=========================================================================
4443    pub fn gst_memory_flags_get_type() -> GType;
4444
4445    //=========================================================================
4446    // GstMessageType
4447    //=========================================================================
4448    pub fn gst_message_type_get_type() -> GType;
4449    pub fn gst_message_type_get_name(type_: GstMessageType) -> *const c_char;
4450    pub fn gst_message_type_to_quark(type_: GstMessageType) -> glib::GQuark;
4451
4452    //=========================================================================
4453    // GstMetaFlags
4454    //=========================================================================
4455    pub fn gst_meta_flags_get_type() -> GType;
4456
4457    //=========================================================================
4458    // GstMiniObjectFlags
4459    //=========================================================================
4460    pub fn gst_mini_object_flags_get_type() -> GType;
4461
4462    //=========================================================================
4463    // GstObjectFlags
4464    //=========================================================================
4465    pub fn gst_object_flags_get_type() -> GType;
4466
4467    //=========================================================================
4468    // GstPadFlags
4469    //=========================================================================
4470    pub fn gst_pad_flags_get_type() -> GType;
4471
4472    //=========================================================================
4473    // GstPadLinkCheck
4474    //=========================================================================
4475    pub fn gst_pad_link_check_get_type() -> GType;
4476
4477    //=========================================================================
4478    // GstPadProbeType
4479    //=========================================================================
4480    pub fn gst_pad_probe_type_get_type() -> GType;
4481
4482    //=========================================================================
4483    // GstPadTemplateFlags
4484    //=========================================================================
4485    pub fn gst_pad_template_flags_get_type() -> GType;
4486
4487    //=========================================================================
4488    // GstParseFlags
4489    //=========================================================================
4490    pub fn gst_parse_flags_get_type() -> GType;
4491
4492    //=========================================================================
4493    // GstPipelineFlags
4494    //=========================================================================
4495    pub fn gst_pipeline_flags_get_type() -> GType;
4496
4497    //=========================================================================
4498    // GstPluginAPIFlags
4499    //=========================================================================
4500    #[cfg(feature = "v1_18")]
4501    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4502    pub fn gst_plugin_api_flags_get_type() -> GType;
4503
4504    //=========================================================================
4505    // GstPluginDependencyFlags
4506    //=========================================================================
4507    pub fn gst_plugin_dependency_flags_get_type() -> GType;
4508
4509    //=========================================================================
4510    // GstPluginFlags
4511    //=========================================================================
4512    pub fn gst_plugin_flags_get_type() -> GType;
4513
4514    //=========================================================================
4515    // GstQueryTypeFlags
4516    //=========================================================================
4517    pub fn gst_query_type_flags_get_type() -> GType;
4518
4519    //=========================================================================
4520    // GstSchedulingFlags
4521    //=========================================================================
4522    pub fn gst_scheduling_flags_get_type() -> GType;
4523
4524    //=========================================================================
4525    // GstSeekFlags
4526    //=========================================================================
4527    pub fn gst_seek_flags_get_type() -> GType;
4528
4529    //=========================================================================
4530    // GstSegmentFlags
4531    //=========================================================================
4532    pub fn gst_segment_flags_get_type() -> GType;
4533
4534    //=========================================================================
4535    // GstSerializeFlags
4536    //=========================================================================
4537    #[cfg(feature = "v1_20")]
4538    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4539    pub fn gst_serialize_flags_get_type() -> GType;
4540
4541    //=========================================================================
4542    // GstStackTraceFlags
4543    //=========================================================================
4544    pub fn gst_stack_trace_flags_get_type() -> GType;
4545
4546    //=========================================================================
4547    // GstStreamFlags
4548    //=========================================================================
4549    pub fn gst_stream_flags_get_type() -> GType;
4550
4551    //=========================================================================
4552    // GstStreamType
4553    //=========================================================================
4554    pub fn gst_stream_type_get_type() -> GType;
4555    pub fn gst_stream_type_get_name(stype: GstStreamType) -> *const c_char;
4556
4557    //=========================================================================
4558    // GstTracerValueFlags
4559    //=========================================================================
4560    pub fn gst_tracer_value_flags_get_type() -> GType;
4561
4562    //=========================================================================
4563    // GstAllocationParams
4564    //=========================================================================
4565    pub fn gst_allocation_params_get_type() -> GType;
4566    #[cfg(feature = "v1_20")]
4567    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4568    pub fn gst_allocation_params_new() -> *mut GstAllocationParams;
4569    pub fn gst_allocation_params_copy(
4570        params: *const GstAllocationParams,
4571    ) -> *mut GstAllocationParams;
4572    pub fn gst_allocation_params_free(params: *mut GstAllocationParams);
4573    pub fn gst_allocation_params_init(params: *mut GstAllocationParams);
4574
4575    //=========================================================================
4576    // GstAtomicQueue
4577    //=========================================================================
4578    pub fn gst_atomic_queue_get_type() -> GType;
4579    pub fn gst_atomic_queue_new(initial_size: c_uint) -> *mut GstAtomicQueue;
4580    pub fn gst_atomic_queue_length(queue: *mut GstAtomicQueue) -> c_uint;
4581    pub fn gst_atomic_queue_peek(queue: *mut GstAtomicQueue) -> gpointer;
4582    pub fn gst_atomic_queue_pop(queue: *mut GstAtomicQueue) -> gpointer;
4583    pub fn gst_atomic_queue_push(queue: *mut GstAtomicQueue, data: gpointer);
4584    pub fn gst_atomic_queue_ref(queue: *mut GstAtomicQueue);
4585    pub fn gst_atomic_queue_unref(queue: *mut GstAtomicQueue);
4586
4587    //=========================================================================
4588    // GstBuffer
4589    //=========================================================================
4590    pub fn gst_buffer_get_type() -> GType;
4591    pub fn gst_buffer_new() -> *mut GstBuffer;
4592    pub fn gst_buffer_new_allocate(
4593        allocator: *mut GstAllocator,
4594        size: size_t,
4595        params: *mut GstAllocationParams,
4596    ) -> *mut GstBuffer;
4597    #[cfg(feature = "v1_20")]
4598    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4599    pub fn gst_buffer_new_memdup(data: gconstpointer, size: size_t) -> *mut GstBuffer;
4600    pub fn gst_buffer_new_wrapped(data: gpointer, size: size_t) -> *mut GstBuffer;
4601    #[cfg(feature = "v1_16")]
4602    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
4603    pub fn gst_buffer_new_wrapped_bytes(bytes: *mut glib::GBytes) -> *mut GstBuffer;
4604    pub fn gst_buffer_new_wrapped_full(
4605        flags: GstMemoryFlags,
4606        data: gpointer,
4607        maxsize: size_t,
4608        offset: size_t,
4609        size: size_t,
4610        user_data: gpointer,
4611        notify: glib::GDestroyNotify,
4612    ) -> *mut GstBuffer;
4613    #[cfg(feature = "v1_20")]
4614    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4615    pub fn gst_buffer_add_custom_meta(
4616        buffer: *mut GstBuffer,
4617        name: *const c_char,
4618    ) -> *mut GstCustomMeta;
4619    pub fn gst_buffer_add_meta(
4620        buffer: *mut GstBuffer,
4621        info: *const GstMetaInfo,
4622        params: gpointer,
4623    ) -> *mut GstMeta;
4624    pub fn gst_buffer_add_parent_buffer_meta(
4625        buffer: *mut GstBuffer,
4626        ref_: *mut GstBuffer,
4627    ) -> *mut GstParentBufferMeta;
4628    pub fn gst_buffer_add_protection_meta(
4629        buffer: *mut GstBuffer,
4630        info: *mut GstStructure,
4631    ) -> *mut GstProtectionMeta;
4632    pub fn gst_buffer_add_reference_timestamp_meta(
4633        buffer: *mut GstBuffer,
4634        reference: *mut GstCaps,
4635        timestamp: GstClockTime,
4636        duration: GstClockTime,
4637    ) -> *mut GstReferenceTimestampMeta;
4638    pub fn gst_buffer_append(buf1: *mut GstBuffer, buf2: *mut GstBuffer) -> *mut GstBuffer;
4639    pub fn gst_buffer_append_memory(buffer: *mut GstBuffer, mem: *mut GstMemory);
4640    pub fn gst_buffer_append_region(
4641        buf1: *mut GstBuffer,
4642        buf2: *mut GstBuffer,
4643        offset: ssize_t,
4644        size: ssize_t,
4645    ) -> *mut GstBuffer;
4646    #[cfg(feature = "v1_18_3")]
4647    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
4648    pub fn gst_buffer_copy(buf: *const GstBuffer) -> *mut GstBuffer;
4649    pub fn gst_buffer_copy_deep(buf: *const GstBuffer) -> *mut GstBuffer;
4650    pub fn gst_buffer_copy_into(
4651        dest: *mut GstBuffer,
4652        src: *mut GstBuffer,
4653        flags: GstBufferCopyFlags,
4654        offset: size_t,
4655        size: size_t,
4656    ) -> gboolean;
4657    pub fn gst_buffer_copy_region(
4658        parent: *mut GstBuffer,
4659        flags: GstBufferCopyFlags,
4660        offset: size_t,
4661        size: size_t,
4662    ) -> *mut GstBuffer;
4663    pub fn gst_buffer_extract(
4664        buffer: *mut GstBuffer,
4665        offset: size_t,
4666        dest: gpointer,
4667        size: size_t,
4668    ) -> size_t;
4669    pub fn gst_buffer_extract_dup(
4670        buffer: *mut GstBuffer,
4671        offset: size_t,
4672        size: size_t,
4673        dest: *mut u8,
4674        dest_size: *mut size_t,
4675    );
4676    pub fn gst_buffer_fill(
4677        buffer: *mut GstBuffer,
4678        offset: size_t,
4679        src: gconstpointer,
4680        size: size_t,
4681    ) -> size_t;
4682    pub fn gst_buffer_find_memory(
4683        buffer: *mut GstBuffer,
4684        offset: size_t,
4685        size: size_t,
4686        idx: *mut c_uint,
4687        length: *mut c_uint,
4688        skip: *mut size_t,
4689    ) -> gboolean;
4690    pub fn gst_buffer_foreach_meta(
4691        buffer: *mut GstBuffer,
4692        func: GstBufferForeachMetaFunc,
4693        user_data: gpointer,
4694    ) -> gboolean;
4695    pub fn gst_buffer_get_all_memory(buffer: *mut GstBuffer) -> *mut GstMemory;
4696    #[cfg(feature = "v1_20")]
4697    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4698    pub fn gst_buffer_get_custom_meta(
4699        buffer: *mut GstBuffer,
4700        name: *const c_char,
4701    ) -> *mut GstCustomMeta;
4702    pub fn gst_buffer_get_flags(buffer: *mut GstBuffer) -> GstBufferFlags;
4703    pub fn gst_buffer_get_memory(buffer: *mut GstBuffer, idx: c_uint) -> *mut GstMemory;
4704    pub fn gst_buffer_get_memory_range(
4705        buffer: *mut GstBuffer,
4706        idx: c_uint,
4707        length: c_int,
4708    ) -> *mut GstMemory;
4709    pub fn gst_buffer_get_meta(buffer: *mut GstBuffer, api: GType) -> *mut GstMeta;
4710    pub fn gst_buffer_get_n_meta(buffer: *mut GstBuffer, api_type: GType) -> c_uint;
4711    pub fn gst_buffer_get_reference_timestamp_meta(
4712        buffer: *mut GstBuffer,
4713        reference: *mut GstCaps,
4714    ) -> *mut GstReferenceTimestampMeta;
4715    pub fn gst_buffer_get_size(buffer: *mut GstBuffer) -> size_t;
4716    pub fn gst_buffer_get_sizes(
4717        buffer: *mut GstBuffer,
4718        offset: *mut size_t,
4719        maxsize: *mut size_t,
4720    ) -> size_t;
4721    pub fn gst_buffer_get_sizes_range(
4722        buffer: *mut GstBuffer,
4723        idx: c_uint,
4724        length: c_int,
4725        offset: *mut size_t,
4726        maxsize: *mut size_t,
4727    ) -> size_t;
4728    pub fn gst_buffer_has_flags(buffer: *mut GstBuffer, flags: GstBufferFlags) -> gboolean;
4729    pub fn gst_buffer_insert_memory(buffer: *mut GstBuffer, idx: c_int, mem: *mut GstMemory);
4730    pub fn gst_buffer_is_all_memory_writable(buffer: *mut GstBuffer) -> gboolean;
4731    pub fn gst_buffer_is_memory_range_writable(
4732        buffer: *mut GstBuffer,
4733        idx: c_uint,
4734        length: c_int,
4735    ) -> gboolean;
4736    pub fn gst_buffer_is_writable(buf: *const GstBuffer) -> gboolean;
4737    pub fn gst_buffer_iterate_meta(buffer: *mut GstBuffer, state: *mut gpointer) -> *mut GstMeta;
4738    pub fn gst_buffer_iterate_meta_filtered(
4739        buffer: *mut GstBuffer,
4740        state: *mut gpointer,
4741        meta_api_type: GType,
4742    ) -> *mut GstMeta;
4743    pub fn gst_buffer_make_writable(buf: *mut GstBuffer) -> *mut GstBuffer;
4744    pub fn gst_buffer_map(
4745        buffer: *mut GstBuffer,
4746        info: *mut GstMapInfo,
4747        flags: GstMapFlags,
4748    ) -> gboolean;
4749    pub fn gst_buffer_map_range(
4750        buffer: *mut GstBuffer,
4751        idx: c_uint,
4752        length: c_int,
4753        info: *mut GstMapInfo,
4754        flags: GstMapFlags,
4755    ) -> gboolean;
4756    pub fn gst_buffer_memcmp(
4757        buffer: *mut GstBuffer,
4758        offset: size_t,
4759        mem: gconstpointer,
4760        size: size_t,
4761    ) -> c_int;
4762    pub fn gst_buffer_memset(
4763        buffer: *mut GstBuffer,
4764        offset: size_t,
4765        val: u8,
4766        size: size_t,
4767    ) -> size_t;
4768    pub fn gst_buffer_n_memory(buffer: *mut GstBuffer) -> c_uint;
4769    pub fn gst_buffer_peek_memory(buffer: *mut GstBuffer, idx: c_uint) -> *mut GstMemory;
4770    pub fn gst_buffer_prepend_memory(buffer: *mut GstBuffer, mem: *mut GstMemory);
4771    #[cfg(feature = "v1_18_3")]
4772    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
4773    pub fn gst_buffer_ref(buf: *mut GstBuffer) -> *mut GstBuffer;
4774    pub fn gst_buffer_remove_all_memory(buffer: *mut GstBuffer);
4775    pub fn gst_buffer_remove_memory(buffer: *mut GstBuffer, idx: c_uint);
4776    pub fn gst_buffer_remove_memory_range(buffer: *mut GstBuffer, idx: c_uint, length: c_int);
4777    pub fn gst_buffer_remove_meta(buffer: *mut GstBuffer, meta: *mut GstMeta) -> gboolean;
4778    pub fn gst_buffer_replace_all_memory(buffer: *mut GstBuffer, mem: *mut GstMemory);
4779    pub fn gst_buffer_replace_memory(buffer: *mut GstBuffer, idx: c_uint, mem: *mut GstMemory);
4780    pub fn gst_buffer_replace_memory_range(
4781        buffer: *mut GstBuffer,
4782        idx: c_uint,
4783        length: c_int,
4784        mem: *mut GstMemory,
4785    );
4786    pub fn gst_buffer_resize(buffer: *mut GstBuffer, offset: ssize_t, size: ssize_t);
4787    pub fn gst_buffer_resize_range(
4788        buffer: *mut GstBuffer,
4789        idx: c_uint,
4790        length: c_int,
4791        offset: ssize_t,
4792        size: ssize_t,
4793    ) -> gboolean;
4794    pub fn gst_buffer_set_flags(buffer: *mut GstBuffer, flags: GstBufferFlags) -> gboolean;
4795    pub fn gst_buffer_set_size(buffer: *mut GstBuffer, size: ssize_t);
4796    pub fn gst_buffer_unmap(buffer: *mut GstBuffer, info: *mut GstMapInfo);
4797    #[cfg(feature = "v1_18_3")]
4798    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
4799    pub fn gst_buffer_unref(buf: *mut GstBuffer);
4800    pub fn gst_buffer_unset_flags(buffer: *mut GstBuffer, flags: GstBufferFlags) -> gboolean;
4801    pub fn gst_buffer_get_max_memory() -> c_uint;
4802    #[cfg(feature = "v1_18_3")]
4803    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
4804    pub fn gst_buffer_replace(obuf: *mut *mut GstBuffer, nbuf: *mut GstBuffer) -> gboolean;
4805    #[cfg(feature = "v1_28")]
4806    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
4807    pub fn gst_buffer_steal(old_buffer: *mut *mut GstBuffer) -> *mut GstBuffer;
4808    #[cfg(feature = "v1_28")]
4809    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
4810    pub fn gst_buffer_take(old_buffer: *mut *mut GstBuffer, new_buffer: *mut GstBuffer)
4811        -> gboolean;
4812
4813    //=========================================================================
4814    // GstBufferList
4815    //=========================================================================
4816    pub fn gst_buffer_list_get_type() -> GType;
4817    pub fn gst_buffer_list_new() -> *mut GstBufferList;
4818    pub fn gst_buffer_list_new_sized(size: c_uint) -> *mut GstBufferList;
4819    pub fn gst_buffer_list_calculate_size(list: *mut GstBufferList) -> size_t;
4820    #[cfg(feature = "v1_18_3")]
4821    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
4822    pub fn gst_buffer_list_copy(list: *const GstBufferList) -> *mut GstBufferList;
4823    pub fn gst_buffer_list_copy_deep(list: *const GstBufferList) -> *mut GstBufferList;
4824    pub fn gst_buffer_list_foreach(
4825        list: *mut GstBufferList,
4826        func: GstBufferListFunc,
4827        user_data: gpointer,
4828    ) -> gboolean;
4829    pub fn gst_buffer_list_get(list: *mut GstBufferList, idx: c_uint) -> *mut GstBuffer;
4830    pub fn gst_buffer_list_get_writable(list: *mut GstBufferList, idx: c_uint) -> *mut GstBuffer;
4831    pub fn gst_buffer_list_insert(list: *mut GstBufferList, idx: c_int, buffer: *mut GstBuffer);
4832    pub fn gst_buffer_list_is_writable(list: *const GstBufferList) -> gboolean;
4833    pub fn gst_buffer_list_length(list: *mut GstBufferList) -> c_uint;
4834    pub fn gst_buffer_list_make_writable(list: *mut GstBufferList) -> *mut GstBufferList;
4835    #[cfg(feature = "v1_18_3")]
4836    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
4837    pub fn gst_buffer_list_ref(list: *mut GstBufferList) -> *mut GstBufferList;
4838    pub fn gst_buffer_list_remove(list: *mut GstBufferList, idx: c_uint, length: c_uint);
4839    #[cfg(feature = "v1_18_3")]
4840    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
4841    pub fn gst_buffer_list_unref(list: *mut GstBufferList);
4842    #[cfg(feature = "v1_18_3")]
4843    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
4844    pub fn gst_buffer_list_replace(
4845        old_list: *mut *mut GstBufferList,
4846        new_list: *mut GstBufferList,
4847    ) -> gboolean;
4848    #[cfg(feature = "v1_28")]
4849    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
4850    pub fn gst_buffer_list_steal(old_list: *mut *mut GstBufferList) -> *mut GstBufferList;
4851    #[cfg(feature = "v1_18_3")]
4852    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
4853    pub fn gst_buffer_list_take(
4854        old_list: *mut *mut GstBufferList,
4855        new_list: *mut GstBufferList,
4856    ) -> gboolean;
4857
4858    //=========================================================================
4859    // GstCaps
4860    //=========================================================================
4861    pub fn gst_caps_get_type() -> GType;
4862    pub fn gst_caps_new_any() -> *mut GstCaps;
4863    pub fn gst_caps_new_empty() -> *mut GstCaps;
4864    pub fn gst_caps_new_empty_simple(media_type: *const c_char) -> *mut GstCaps;
4865    pub fn gst_caps_new_full(struct1: *mut GstStructure, ...) -> *mut GstCaps;
4866    //pub fn gst_caps_new_full_valist(structure: *mut GstStructure, var_args: /*Unimplemented*/va_list) -> *mut GstCaps;
4867    #[cfg(feature = "v1_26")]
4868    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
4869    pub fn gst_caps_new_id_str_empty_simple(media_type: *const GstIdStr) -> *mut GstCaps;
4870    #[cfg(feature = "v1_26")]
4871    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
4872    pub fn gst_caps_new_id_str_simple(
4873        media_type: *const GstIdStr,
4874        fieldname: *const GstIdStr,
4875        ...
4876    ) -> *mut GstCaps;
4877    pub fn gst_caps_new_simple(
4878        media_type: *const c_char,
4879        fieldname: *const c_char,
4880        ...
4881    ) -> *mut GstCaps;
4882    #[cfg(feature = "v1_26")]
4883    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
4884    pub fn gst_caps_new_static_str_empty_simple(media_type: *const c_char) -> *mut GstCaps;
4885    #[cfg(feature = "v1_26")]
4886    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
4887    pub fn gst_caps_new_static_str_simple(
4888        media_type: *const c_char,
4889        fieldname: *const c_char,
4890        ...
4891    ) -> *mut GstCaps;
4892    pub fn gst_caps_append(caps1: *mut GstCaps, caps2: *mut GstCaps);
4893    pub fn gst_caps_append_structure(caps: *mut GstCaps, structure: *mut GstStructure);
4894    pub fn gst_caps_append_structure_full(
4895        caps: *mut GstCaps,
4896        structure: *mut GstStructure,
4897        features: *mut GstCapsFeatures,
4898    );
4899    pub fn gst_caps_can_intersect(caps1: *const GstCaps, caps2: *const GstCaps) -> gboolean;
4900    #[cfg(feature = "v1_16")]
4901    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
4902    pub fn gst_caps_copy(caps: *const GstCaps) -> *mut GstCaps;
4903    #[cfg(feature = "v1_16")]
4904    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
4905    pub fn gst_caps_copy_nth(caps: *const GstCaps, nth: c_uint) -> *mut GstCaps;
4906    pub fn gst_caps_filter_and_map_in_place(
4907        caps: *mut GstCaps,
4908        func: GstCapsFilterMapFunc,
4909        user_data: gpointer,
4910    );
4911    pub fn gst_caps_fixate(caps: *mut GstCaps) -> *mut GstCaps;
4912    pub fn gst_caps_foreach(
4913        caps: *const GstCaps,
4914        func: GstCapsForeachFunc,
4915        user_data: gpointer,
4916    ) -> gboolean;
4917    pub fn gst_caps_get_features(caps: *const GstCaps, index: c_uint) -> *mut GstCapsFeatures;
4918    pub fn gst_caps_get_size(caps: *const GstCaps) -> c_uint;
4919    pub fn gst_caps_get_structure(caps: *const GstCaps, index: c_uint) -> *mut GstStructure;
4920    #[cfg(feature = "v1_26")]
4921    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
4922    pub fn gst_caps_id_str_set_simple(caps: *mut GstCaps, field: *const GstIdStr, ...);
4923    //#[cfg(feature = "v1_26")]
4924    //#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
4925    //pub fn gst_caps_id_str_set_simple_valist(caps: *mut GstCaps, field: *const GstIdStr, varargs: /*Unimplemented*/va_list);
4926    #[cfg(feature = "v1_26")]
4927    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
4928    pub fn gst_caps_id_str_set_value(
4929        caps: *mut GstCaps,
4930        field: *const GstIdStr,
4931        value: *const gobject::GValue,
4932    );
4933    pub fn gst_caps_intersect(caps1: *mut GstCaps, caps2: *mut GstCaps) -> *mut GstCaps;
4934    pub fn gst_caps_intersect_full(
4935        caps1: *mut GstCaps,
4936        caps2: *mut GstCaps,
4937        mode: GstCapsIntersectMode,
4938    ) -> *mut GstCaps;
4939    pub fn gst_caps_is_always_compatible(caps1: *const GstCaps, caps2: *const GstCaps) -> gboolean;
4940    pub fn gst_caps_is_any(caps: *const GstCaps) -> gboolean;
4941    pub fn gst_caps_is_empty(caps: *const GstCaps) -> gboolean;
4942    pub fn gst_caps_is_equal(caps1: *const GstCaps, caps2: *const GstCaps) -> gboolean;
4943    pub fn gst_caps_is_equal_fixed(caps1: *const GstCaps, caps2: *const GstCaps) -> gboolean;
4944    pub fn gst_caps_is_fixed(caps: *const GstCaps) -> gboolean;
4945    pub fn gst_caps_is_strictly_equal(caps1: *const GstCaps, caps2: *const GstCaps) -> gboolean;
4946    pub fn gst_caps_is_subset(subset: *const GstCaps, superset: *const GstCaps) -> gboolean;
4947    pub fn gst_caps_is_subset_structure(
4948        caps: *const GstCaps,
4949        structure: *const GstStructure,
4950    ) -> gboolean;
4951    pub fn gst_caps_is_subset_structure_full(
4952        caps: *const GstCaps,
4953        structure: *const GstStructure,
4954        features: *const GstCapsFeatures,
4955    ) -> gboolean;
4956    pub fn gst_caps_is_writable(caps: *const GstCaps) -> gboolean;
4957    pub fn gst_caps_make_writable(caps: *mut GstCaps) -> *mut GstCaps;
4958    pub fn gst_caps_map_in_place(
4959        caps: *mut GstCaps,
4960        func: GstCapsMapFunc,
4961        user_data: gpointer,
4962    ) -> gboolean;
4963    pub fn gst_caps_merge(caps1: *mut GstCaps, caps2: *mut GstCaps) -> *mut GstCaps;
4964    pub fn gst_caps_merge_structure(
4965        caps: *mut GstCaps,
4966        structure: *mut GstStructure,
4967    ) -> *mut GstCaps;
4968    pub fn gst_caps_merge_structure_full(
4969        caps: *mut GstCaps,
4970        structure: *mut GstStructure,
4971        features: *mut GstCapsFeatures,
4972    ) -> *mut GstCaps;
4973    pub fn gst_caps_normalize(caps: *mut GstCaps) -> *mut GstCaps;
4974    #[cfg(feature = "v1_18_3")]
4975    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
4976    pub fn gst_caps_ref(caps: *mut GstCaps) -> *mut GstCaps;
4977    pub fn gst_caps_remove_structure(caps: *mut GstCaps, idx: c_uint);
4978    #[cfg(feature = "v1_20")]
4979    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4980    pub fn gst_caps_serialize(caps: *const GstCaps, flags: GstSerializeFlags) -> *mut c_char;
4981    pub fn gst_caps_set_features(caps: *mut GstCaps, index: c_uint, features: *mut GstCapsFeatures);
4982    #[cfg(feature = "v1_16")]
4983    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
4984    pub fn gst_caps_set_features_simple(caps: *mut GstCaps, features: *mut GstCapsFeatures);
4985    pub fn gst_caps_set_simple(caps: *mut GstCaps, field: *const c_char, ...);
4986    #[cfg(feature = "v1_26")]
4987    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
4988    pub fn gst_caps_set_simple_static_str(caps: *mut GstCaps, field: *const c_char, ...);
4989    //#[cfg(feature = "v1_26")]
4990    //#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
4991    //pub fn gst_caps_set_simple_static_str_valist(caps: *mut GstCaps, field: *const c_char, varargs: /*Unimplemented*/va_list);
4992    //pub fn gst_caps_set_simple_valist(caps: *mut GstCaps, field: *const c_char, varargs: /*Unimplemented*/va_list);
4993    pub fn gst_caps_set_value(
4994        caps: *mut GstCaps,
4995        field: *const c_char,
4996        value: *const gobject::GValue,
4997    );
4998    #[cfg(feature = "v1_26")]
4999    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5000    pub fn gst_caps_set_value_static_str(
5001        caps: *mut GstCaps,
5002        field: *const c_char,
5003        value: *const gobject::GValue,
5004    );
5005    pub fn gst_caps_simplify(caps: *mut GstCaps) -> *mut GstCaps;
5006    pub fn gst_caps_steal_structure(caps: *mut GstCaps, index: c_uint) -> *mut GstStructure;
5007    pub fn gst_caps_subtract(minuend: *mut GstCaps, subtrahend: *mut GstCaps) -> *mut GstCaps;
5008    pub fn gst_caps_to_string(caps: *const GstCaps) -> *mut c_char;
5009    pub fn gst_caps_truncate(caps: *mut GstCaps) -> *mut GstCaps;
5010    #[cfg(feature = "v1_18_3")]
5011    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
5012    pub fn gst_caps_unref(caps: *mut GstCaps);
5013    pub fn gst_caps_from_string(string: *const c_char) -> *mut GstCaps;
5014    #[cfg(feature = "v1_18_3")]
5015    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
5016    pub fn gst_caps_replace(old_caps: *mut *mut GstCaps, new_caps: *mut GstCaps) -> gboolean;
5017    #[cfg(feature = "v1_28")]
5018    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
5019    pub fn gst_caps_steal(old_caps: *mut *mut GstCaps) -> *mut GstCaps;
5020    #[cfg(feature = "v1_18_3")]
5021    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
5022    pub fn gst_caps_take(old_caps: *mut *mut GstCaps, new_caps: *mut GstCaps) -> gboolean;
5023
5024    //=========================================================================
5025    // GstCapsFeatures
5026    //=========================================================================
5027    pub fn gst_caps_features_get_type() -> GType;
5028    pub fn gst_caps_features_new(feature1: *const c_char, ...) -> *mut GstCapsFeatures;
5029    pub fn gst_caps_features_new_any() -> *mut GstCapsFeatures;
5030    pub fn gst_caps_features_new_empty() -> *mut GstCapsFeatures;
5031    pub fn gst_caps_features_new_id(feature1: glib::GQuark, ...) -> *mut GstCapsFeatures;
5032    #[cfg(feature = "v1_26")]
5033    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5034    pub fn gst_caps_features_new_id_str(feature1: *const GstIdStr, ...) -> *mut GstCapsFeatures;
5035    //#[cfg(feature = "v1_26")]
5036    //#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5037    //pub fn gst_caps_features_new_id_str_valist(feature1: *const GstIdStr, varargs: /*Unimplemented*/va_list) -> *mut GstCapsFeatures;
5038    //pub fn gst_caps_features_new_id_valist(feature1: glib::GQuark, varargs: /*Unimplemented*/va_list) -> *mut GstCapsFeatures;
5039    #[cfg(feature = "v1_20")]
5040    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
5041    pub fn gst_caps_features_new_single(feature: *const c_char) -> *mut GstCapsFeatures;
5042    #[cfg(feature = "v1_26")]
5043    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5044    pub fn gst_caps_features_new_single_static_str(feature: *const c_char) -> *mut GstCapsFeatures;
5045    #[cfg(feature = "v1_26")]
5046    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5047    pub fn gst_caps_features_new_static_str(feature1: *const c_char, ...) -> *mut GstCapsFeatures;
5048    //#[cfg(feature = "v1_26")]
5049    //#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5050    //pub fn gst_caps_features_new_static_str_valist(feature1: *const c_char, varargs: /*Unimplemented*/va_list) -> *mut GstCapsFeatures;
5051    //pub fn gst_caps_features_new_valist(feature1: *const c_char, varargs: /*Unimplemented*/va_list) -> *mut GstCapsFeatures;
5052    pub fn gst_caps_features_add(features: *mut GstCapsFeatures, feature: *const c_char);
5053    pub fn gst_caps_features_add_id(features: *mut GstCapsFeatures, feature: glib::GQuark);
5054    #[cfg(feature = "v1_26")]
5055    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5056    pub fn gst_caps_features_add_id_str(features: *mut GstCapsFeatures, feature: *const GstIdStr);
5057    #[cfg(feature = "v1_26")]
5058    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5059    pub fn gst_caps_features_add_static_str(features: *mut GstCapsFeatures, feature: *const c_char);
5060    pub fn gst_caps_features_contains(
5061        features: *const GstCapsFeatures,
5062        feature: *const c_char,
5063    ) -> gboolean;
5064    pub fn gst_caps_features_contains_id(
5065        features: *const GstCapsFeatures,
5066        feature: glib::GQuark,
5067    ) -> gboolean;
5068    #[cfg(feature = "v1_26")]
5069    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5070    pub fn gst_caps_features_contains_id_str(
5071        features: *const GstCapsFeatures,
5072        feature: *const GstIdStr,
5073    ) -> gboolean;
5074    pub fn gst_caps_features_copy(features: *const GstCapsFeatures) -> *mut GstCapsFeatures;
5075    pub fn gst_caps_features_free(features: *mut GstCapsFeatures);
5076    pub fn gst_caps_features_get_nth(features: *const GstCapsFeatures, i: c_uint) -> *const c_char;
5077    pub fn gst_caps_features_get_nth_id(
5078        features: *const GstCapsFeatures,
5079        i: c_uint,
5080    ) -> glib::GQuark;
5081    #[cfg(feature = "v1_26")]
5082    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5083    pub fn gst_caps_features_get_nth_id_str(
5084        features: *const GstCapsFeatures,
5085        i: c_uint,
5086    ) -> *const GstIdStr;
5087    pub fn gst_caps_features_get_size(features: *const GstCapsFeatures) -> c_uint;
5088    pub fn gst_caps_features_is_any(features: *const GstCapsFeatures) -> gboolean;
5089    pub fn gst_caps_features_is_equal(
5090        features1: *const GstCapsFeatures,
5091        features2: *const GstCapsFeatures,
5092    ) -> gboolean;
5093    pub fn gst_caps_features_remove(features: *mut GstCapsFeatures, feature: *const c_char);
5094    pub fn gst_caps_features_remove_id(features: *mut GstCapsFeatures, feature: glib::GQuark);
5095    #[cfg(feature = "v1_26")]
5096    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5097    pub fn gst_caps_features_remove_id_str(
5098        features: *mut GstCapsFeatures,
5099        feature: *const GstIdStr,
5100    );
5101    pub fn gst_caps_features_set_parent_refcount(
5102        features: *mut GstCapsFeatures,
5103        refcount: *mut c_int,
5104    ) -> gboolean;
5105    pub fn gst_caps_features_to_string(features: *const GstCapsFeatures) -> *mut c_char;
5106    pub fn gst_caps_features_from_string(features: *const c_char) -> *mut GstCapsFeatures;
5107
5108    //=========================================================================
5109    // GstContext
5110    //=========================================================================
5111    pub fn gst_context_get_type() -> GType;
5112    pub fn gst_context_new(context_type: *const c_char, persistent: gboolean) -> *mut GstContext;
5113    #[cfg(feature = "v1_18_3")]
5114    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
5115    pub fn gst_context_copy(context: *const GstContext) -> *mut GstContext;
5116    pub fn gst_context_get_context_type(context: *const GstContext) -> *const c_char;
5117    pub fn gst_context_get_structure(context: *const GstContext) -> *const GstStructure;
5118    pub fn gst_context_has_context_type(
5119        context: *const GstContext,
5120        context_type: *const c_char,
5121    ) -> gboolean;
5122    pub fn gst_context_is_persistent(context: *const GstContext) -> gboolean;
5123    pub fn gst_context_is_writable(context: *const GstContext) -> gboolean;
5124    pub fn gst_context_make_writable(context: *mut GstContext) -> *mut GstContext;
5125    #[cfg(feature = "v1_18_3")]
5126    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
5127    pub fn gst_context_ref(context: *mut GstContext) -> *mut GstContext;
5128    #[cfg(feature = "v1_18_3")]
5129    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
5130    pub fn gst_context_unref(context: *mut GstContext);
5131    pub fn gst_context_writable_structure(context: *mut GstContext) -> *mut GstStructure;
5132    #[cfg(feature = "v1_18_3")]
5133    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
5134    pub fn gst_context_replace(
5135        old_context: *mut *mut GstContext,
5136        new_context: *mut GstContext,
5137    ) -> gboolean;
5138
5139    //=========================================================================
5140    // GstCustomMeta
5141    //=========================================================================
5142    #[cfg(feature = "v1_20")]
5143    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
5144    pub fn gst_custom_meta_get_structure(meta: *mut GstCustomMeta) -> *mut GstStructure;
5145    #[cfg(feature = "v1_20")]
5146    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
5147    pub fn gst_custom_meta_has_name(meta: *mut GstCustomMeta, name: *const c_char) -> gboolean;
5148
5149    //=========================================================================
5150    // GstDateTime
5151    //=========================================================================
5152    pub fn gst_date_time_get_type() -> GType;
5153    pub fn gst_date_time_new(
5154        tzoffset: c_float,
5155        year: c_int,
5156        month: c_int,
5157        day: c_int,
5158        hour: c_int,
5159        minute: c_int,
5160        seconds: c_double,
5161    ) -> *mut GstDateTime;
5162    pub fn gst_date_time_new_from_g_date_time(dt: *mut glib::GDateTime) -> *mut GstDateTime;
5163    pub fn gst_date_time_new_from_iso8601_string(string: *const c_char) -> *mut GstDateTime;
5164    pub fn gst_date_time_new_from_unix_epoch_local_time(secs: i64) -> *mut GstDateTime;
5165    #[cfg(feature = "v1_18")]
5166    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
5167    pub fn gst_date_time_new_from_unix_epoch_local_time_usecs(usecs: i64) -> *mut GstDateTime;
5168    pub fn gst_date_time_new_from_unix_epoch_utc(secs: i64) -> *mut GstDateTime;
5169    #[cfg(feature = "v1_18")]
5170    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
5171    pub fn gst_date_time_new_from_unix_epoch_utc_usecs(usecs: i64) -> *mut GstDateTime;
5172    pub fn gst_date_time_new_local_time(
5173        year: c_int,
5174        month: c_int,
5175        day: c_int,
5176        hour: c_int,
5177        minute: c_int,
5178        seconds: c_double,
5179    ) -> *mut GstDateTime;
5180    pub fn gst_date_time_new_now_local_time() -> *mut GstDateTime;
5181    pub fn gst_date_time_new_now_utc() -> *mut GstDateTime;
5182    pub fn gst_date_time_new_y(year: c_int) -> *mut GstDateTime;
5183    pub fn gst_date_time_new_ym(year: c_int, month: c_int) -> *mut GstDateTime;
5184    pub fn gst_date_time_new_ymd(year: c_int, month: c_int, day: c_int) -> *mut GstDateTime;
5185    pub fn gst_date_time_get_day(datetime: *const GstDateTime) -> c_int;
5186    pub fn gst_date_time_get_hour(datetime: *const GstDateTime) -> c_int;
5187    pub fn gst_date_time_get_microsecond(datetime: *const GstDateTime) -> c_int;
5188    pub fn gst_date_time_get_minute(datetime: *const GstDateTime) -> c_int;
5189    pub fn gst_date_time_get_month(datetime: *const GstDateTime) -> c_int;
5190    pub fn gst_date_time_get_second(datetime: *const GstDateTime) -> c_int;
5191    pub fn gst_date_time_get_time_zone_offset(datetime: *const GstDateTime) -> c_float;
5192    pub fn gst_date_time_get_year(datetime: *const GstDateTime) -> c_int;
5193    pub fn gst_date_time_has_day(datetime: *const GstDateTime) -> gboolean;
5194    pub fn gst_date_time_has_month(datetime: *const GstDateTime) -> gboolean;
5195    pub fn gst_date_time_has_second(datetime: *const GstDateTime) -> gboolean;
5196    pub fn gst_date_time_has_time(datetime: *const GstDateTime) -> gboolean;
5197    pub fn gst_date_time_has_year(datetime: *const GstDateTime) -> gboolean;
5198    pub fn gst_date_time_ref(datetime: *mut GstDateTime) -> *mut GstDateTime;
5199    pub fn gst_date_time_to_g_date_time(datetime: *mut GstDateTime) -> *mut glib::GDateTime;
5200    pub fn gst_date_time_to_iso8601_string(datetime: *mut GstDateTime) -> *mut c_char;
5201    pub fn gst_date_time_unref(datetime: *mut GstDateTime);
5202
5203    //=========================================================================
5204    // GstDebugCategory
5205    //=========================================================================
5206    pub fn gst_debug_category_free(category: *mut GstDebugCategory);
5207    pub fn gst_debug_category_get_color(category: *mut GstDebugCategory) -> c_uint;
5208    pub fn gst_debug_category_get_description(category: *mut GstDebugCategory) -> *const c_char;
5209    pub fn gst_debug_category_get_name(category: *mut GstDebugCategory) -> *const c_char;
5210    pub fn gst_debug_category_get_threshold(category: *mut GstDebugCategory) -> GstDebugLevel;
5211    pub fn gst_debug_category_reset_threshold(category: *mut GstDebugCategory);
5212    pub fn gst_debug_category_set_threshold(category: *mut GstDebugCategory, level: GstDebugLevel);
5213
5214    //=========================================================================
5215    // GstDebugMessage
5216    //=========================================================================
5217    pub fn gst_debug_message_get(message: *mut GstDebugMessage) -> *const c_char;
5218    #[cfg(feature = "v1_22")]
5219    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
5220    pub fn gst_debug_message_get_id(message: *mut GstDebugMessage) -> *const c_char;
5221
5222    //=========================================================================
5223    // GstDeviceProviderClass
5224    //=========================================================================
5225    pub fn gst_device_provider_class_add_metadata(
5226        klass: *mut GstDeviceProviderClass,
5227        key: *const c_char,
5228        value: *const c_char,
5229    );
5230    pub fn gst_device_provider_class_add_static_metadata(
5231        klass: *mut GstDeviceProviderClass,
5232        key: *const c_char,
5233        value: *const c_char,
5234    );
5235    pub fn gst_device_provider_class_get_metadata(
5236        klass: *mut GstDeviceProviderClass,
5237        key: *const c_char,
5238    ) -> *const c_char;
5239    pub fn gst_device_provider_class_set_metadata(
5240        klass: *mut GstDeviceProviderClass,
5241        longname: *const c_char,
5242        classification: *const c_char,
5243        description: *const c_char,
5244        author: *const c_char,
5245    );
5246    pub fn gst_device_provider_class_set_static_metadata(
5247        klass: *mut GstDeviceProviderClass,
5248        longname: *const c_char,
5249        classification: *const c_char,
5250        description: *const c_char,
5251        author: *const c_char,
5252    );
5253
5254    //=========================================================================
5255    // GstElementClass
5256    //=========================================================================
5257    pub fn gst_element_class_add_metadata(
5258        klass: *mut GstElementClass,
5259        key: *const c_char,
5260        value: *const c_char,
5261    );
5262    pub fn gst_element_class_add_pad_template(
5263        klass: *mut GstElementClass,
5264        templ: *mut GstPadTemplate,
5265    );
5266    pub fn gst_element_class_add_static_metadata(
5267        klass: *mut GstElementClass,
5268        key: *const c_char,
5269        value: *const c_char,
5270    );
5271    pub fn gst_element_class_add_static_pad_template(
5272        klass: *mut GstElementClass,
5273        static_templ: *mut GstStaticPadTemplate,
5274    );
5275    pub fn gst_element_class_add_static_pad_template_with_gtype(
5276        klass: *mut GstElementClass,
5277        static_templ: *mut GstStaticPadTemplate,
5278        pad_type: GType,
5279    );
5280    pub fn gst_element_class_get_metadata(
5281        klass: *mut GstElementClass,
5282        key: *const c_char,
5283    ) -> *const c_char;
5284    pub fn gst_element_class_get_pad_template(
5285        element_class: *mut GstElementClass,
5286        name: *const c_char,
5287    ) -> *mut GstPadTemplate;
5288    pub fn gst_element_class_get_pad_template_list(
5289        element_class: *mut GstElementClass,
5290    ) -> *mut glib::GList;
5291    pub fn gst_element_class_set_metadata(
5292        klass: *mut GstElementClass,
5293        longname: *const c_char,
5294        classification: *const c_char,
5295        description: *const c_char,
5296        author: *const c_char,
5297    );
5298    pub fn gst_element_class_set_static_metadata(
5299        klass: *mut GstElementClass,
5300        longname: *const c_char,
5301        classification: *const c_char,
5302        description: *const c_char,
5303        author: *const c_char,
5304    );
5305
5306    //=========================================================================
5307    // GstEvent
5308    //=========================================================================
5309    pub fn gst_event_get_type() -> GType;
5310    pub fn gst_event_new_buffer_size(
5311        format: GstFormat,
5312        minsize: i64,
5313        maxsize: i64,
5314        async_: gboolean,
5315    ) -> *mut GstEvent;
5316    pub fn gst_event_new_caps(caps: *mut GstCaps) -> *mut GstEvent;
5317    pub fn gst_event_new_custom(type_: GstEventType, structure: *mut GstStructure)
5318        -> *mut GstEvent;
5319    pub fn gst_event_new_eos() -> *mut GstEvent;
5320    pub fn gst_event_new_flush_start() -> *mut GstEvent;
5321    pub fn gst_event_new_flush_stop(reset_time: gboolean) -> *mut GstEvent;
5322    pub fn gst_event_new_gap(timestamp: GstClockTime, duration: GstClockTime) -> *mut GstEvent;
5323    #[cfg(feature = "v1_18")]
5324    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
5325    pub fn gst_event_new_instant_rate_change(
5326        rate_multiplier: c_double,
5327        new_flags: GstSegmentFlags,
5328    ) -> *mut GstEvent;
5329    #[cfg(feature = "v1_18")]
5330    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
5331    pub fn gst_event_new_instant_rate_sync_time(
5332        rate_multiplier: c_double,
5333        running_time: GstClockTime,
5334        upstream_running_time: GstClockTime,
5335    ) -> *mut GstEvent;
5336    pub fn gst_event_new_latency(latency: GstClockTime) -> *mut GstEvent;
5337    pub fn gst_event_new_navigation(structure: *mut GstStructure) -> *mut GstEvent;
5338    pub fn gst_event_new_protection(
5339        system_id: *const c_char,
5340        data: *mut GstBuffer,
5341        origin: *const c_char,
5342    ) -> *mut GstEvent;
5343    pub fn gst_event_new_qos(
5344        type_: GstQOSType,
5345        proportion: c_double,
5346        diff: GstClockTimeDiff,
5347        timestamp: GstClockTime,
5348    ) -> *mut GstEvent;
5349    pub fn gst_event_new_reconfigure() -> *mut GstEvent;
5350    pub fn gst_event_new_seek(
5351        rate: c_double,
5352        format: GstFormat,
5353        flags: GstSeekFlags,
5354        start_type: GstSeekType,
5355        start: i64,
5356        stop_type: GstSeekType,
5357        stop: i64,
5358    ) -> *mut GstEvent;
5359    pub fn gst_event_new_segment(segment: *const GstSegment) -> *mut GstEvent;
5360    pub fn gst_event_new_segment_done(format: GstFormat, position: i64) -> *mut GstEvent;
5361    pub fn gst_event_new_select_streams(streams: *mut glib::GList) -> *mut GstEvent;
5362    pub fn gst_event_new_sink_message(name: *const c_char, msg: *mut GstMessage) -> *mut GstEvent;
5363    pub fn gst_event_new_step(
5364        format: GstFormat,
5365        amount: u64,
5366        rate: c_double,
5367        flush: gboolean,
5368        intermediate: gboolean,
5369    ) -> *mut GstEvent;
5370    pub fn gst_event_new_stream_collection(collection: *mut GstStreamCollection) -> *mut GstEvent;
5371    pub fn gst_event_new_stream_group_done(group_id: c_uint) -> *mut GstEvent;
5372    pub fn gst_event_new_stream_start(stream_id: *const c_char) -> *mut GstEvent;
5373    pub fn gst_event_new_tag(taglist: *mut GstTagList) -> *mut GstEvent;
5374    pub fn gst_event_new_toc(toc: *mut GstToc, updated: gboolean) -> *mut GstEvent;
5375    pub fn gst_event_new_toc_select(uid: *const c_char) -> *mut GstEvent;
5376    #[cfg(feature = "v1_18_3")]
5377    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
5378    pub fn gst_event_copy(event: *const GstEvent) -> *mut GstEvent;
5379    pub fn gst_event_copy_segment(event: *mut GstEvent, segment: *mut GstSegment);
5380    pub fn gst_event_get_running_time_offset(event: *mut GstEvent) -> i64;
5381    pub fn gst_event_get_seqnum(event: *mut GstEvent) -> u32;
5382    pub fn gst_event_get_structure(event: *mut GstEvent) -> *const GstStructure;
5383    pub fn gst_event_has_name(event: *mut GstEvent, name: *const c_char) -> gboolean;
5384    #[cfg(feature = "v1_18")]
5385    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
5386    pub fn gst_event_has_name_id(event: *mut GstEvent, name: glib::GQuark) -> gboolean;
5387    pub fn gst_event_is_writable(event: *const GstEvent) -> gboolean;
5388    pub fn gst_event_make_writable(event: *mut GstEvent) -> *mut GstEvent;
5389    pub fn gst_event_parse_buffer_size(
5390        event: *mut GstEvent,
5391        format: *mut GstFormat,
5392        minsize: *mut i64,
5393        maxsize: *mut i64,
5394        async_: *mut gboolean,
5395    );
5396    pub fn gst_event_parse_caps(event: *mut GstEvent, caps: *mut *mut GstCaps);
5397    pub fn gst_event_parse_flush_stop(event: *mut GstEvent, reset_time: *mut gboolean);
5398    pub fn gst_event_parse_gap(
5399        event: *mut GstEvent,
5400        timestamp: *mut GstClockTime,
5401        duration: *mut GstClockTime,
5402    );
5403    #[cfg(feature = "v1_20")]
5404    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
5405    pub fn gst_event_parse_gap_flags(event: *mut GstEvent, flags: *mut GstGapFlags);
5406    pub fn gst_event_parse_group_id(event: *mut GstEvent, group_id: *mut c_uint) -> gboolean;
5407    #[cfg(feature = "v1_18")]
5408    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
5409    pub fn gst_event_parse_instant_rate_change(
5410        event: *mut GstEvent,
5411        rate_multiplier: *mut c_double,
5412        new_flags: *mut GstSegmentFlags,
5413    );
5414    #[cfg(feature = "v1_18")]
5415    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
5416    pub fn gst_event_parse_instant_rate_sync_time(
5417        event: *mut GstEvent,
5418        rate_multiplier: *mut c_double,
5419        running_time: *mut GstClockTime,
5420        upstream_running_time: *mut GstClockTime,
5421    );
5422    pub fn gst_event_parse_latency(event: *mut GstEvent, latency: *mut GstClockTime);
5423    pub fn gst_event_parse_protection(
5424        event: *mut GstEvent,
5425        system_id: *mut *const c_char,
5426        data: *mut *mut GstBuffer,
5427        origin: *mut *const c_char,
5428    );
5429    pub fn gst_event_parse_qos(
5430        event: *mut GstEvent,
5431        type_: *mut GstQOSType,
5432        proportion: *mut c_double,
5433        diff: *mut GstClockTimeDiff,
5434        timestamp: *mut GstClockTime,
5435    );
5436    pub fn gst_event_parse_seek(
5437        event: *mut GstEvent,
5438        rate: *mut c_double,
5439        format: *mut GstFormat,
5440        flags: *mut GstSeekFlags,
5441        start_type: *mut GstSeekType,
5442        start: *mut i64,
5443        stop_type: *mut GstSeekType,
5444        stop: *mut i64,
5445    );
5446    #[cfg(feature = "v1_16")]
5447    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
5448    pub fn gst_event_parse_seek_trickmode_interval(
5449        event: *mut GstEvent,
5450        interval: *mut GstClockTime,
5451    );
5452    pub fn gst_event_parse_segment(event: *mut GstEvent, segment: *mut *const GstSegment);
5453    pub fn gst_event_parse_segment_done(
5454        event: *mut GstEvent,
5455        format: *mut GstFormat,
5456        position: *mut i64,
5457    );
5458    pub fn gst_event_parse_select_streams(event: *mut GstEvent, streams: *mut *mut glib::GList);
5459    pub fn gst_event_parse_sink_message(event: *mut GstEvent, msg: *mut *mut GstMessage);
5460    pub fn gst_event_parse_step(
5461        event: *mut GstEvent,
5462        format: *mut GstFormat,
5463        amount: *mut u64,
5464        rate: *mut c_double,
5465        flush: *mut gboolean,
5466        intermediate: *mut gboolean,
5467    );
5468    pub fn gst_event_parse_stream(event: *mut GstEvent, stream: *mut *mut GstStream);
5469    pub fn gst_event_parse_stream_collection(
5470        event: *mut GstEvent,
5471        collection: *mut *mut GstStreamCollection,
5472    );
5473    pub fn gst_event_parse_stream_flags(event: *mut GstEvent, flags: *mut GstStreamFlags);
5474    pub fn gst_event_parse_stream_group_done(event: *mut GstEvent, group_id: *mut c_uint);
5475    pub fn gst_event_parse_stream_start(event: *mut GstEvent, stream_id: *mut *const c_char);
5476    pub fn gst_event_parse_tag(event: *mut GstEvent, taglist: *mut *mut GstTagList);
5477    pub fn gst_event_parse_toc(event: *mut GstEvent, toc: *mut *mut GstToc, updated: *mut gboolean);
5478    pub fn gst_event_parse_toc_select(event: *mut GstEvent, uid: *mut *mut c_char);
5479    #[cfg(feature = "v1_18_3")]
5480    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
5481    pub fn gst_event_ref(event: *mut GstEvent) -> *mut GstEvent;
5482    #[cfg(feature = "v1_20")]
5483    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
5484    pub fn gst_event_set_gap_flags(event: *mut GstEvent, flags: GstGapFlags);
5485    pub fn gst_event_set_group_id(event: *mut GstEvent, group_id: c_uint);
5486    pub fn gst_event_set_running_time_offset(event: *mut GstEvent, offset: i64);
5487    #[cfg(feature = "v1_16")]
5488    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
5489    pub fn gst_event_set_seek_trickmode_interval(event: *mut GstEvent, interval: GstClockTime);
5490    pub fn gst_event_set_seqnum(event: *mut GstEvent, seqnum: u32);
5491    pub fn gst_event_set_stream(event: *mut GstEvent, stream: *mut GstStream);
5492    pub fn gst_event_set_stream_flags(event: *mut GstEvent, flags: GstStreamFlags);
5493    #[cfg(feature = "v1_18_3")]
5494    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
5495    pub fn gst_event_unref(event: *mut GstEvent);
5496    pub fn gst_event_writable_structure(event: *mut GstEvent) -> *mut GstStructure;
5497    #[cfg(feature = "v1_18_3")]
5498    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
5499    pub fn gst_event_replace(old_event: *mut *mut GstEvent, new_event: *mut GstEvent) -> gboolean;
5500    #[cfg(feature = "v1_18_3")]
5501    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
5502    pub fn gst_event_steal(old_event: *mut *mut GstEvent) -> *mut GstEvent;
5503    #[cfg(feature = "v1_18_3")]
5504    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
5505    pub fn gst_event_take(old_event: *mut *mut GstEvent, new_event: *mut GstEvent) -> gboolean;
5506
5507    //=========================================================================
5508    // GstIdStr
5509    //=========================================================================
5510    #[cfg(feature = "v1_26")]
5511    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5512    pub fn gst_id_str_get_type() -> GType;
5513    #[cfg(feature = "v1_26")]
5514    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5515    pub fn gst_id_str_new() -> *mut GstIdStr;
5516    #[cfg(feature = "v1_26")]
5517    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5518    pub fn gst_id_str_as_str(s: *const GstIdStr) -> *const c_char;
5519    #[cfg(feature = "v1_26")]
5520    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5521    pub fn gst_id_str_clear(s: *mut GstIdStr);
5522    #[cfg(feature = "v1_26")]
5523    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5524    pub fn gst_id_str_copy(s: *const GstIdStr) -> *mut GstIdStr;
5525    #[cfg(feature = "v1_26")]
5526    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5527    pub fn gst_id_str_copy_into(d: *mut GstIdStr, s: *const GstIdStr);
5528    #[cfg(feature = "v1_26")]
5529    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5530    pub fn gst_id_str_free(s: *mut GstIdStr);
5531    #[cfg(feature = "v1_26")]
5532    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5533    pub fn gst_id_str_get_len(s: *const GstIdStr) -> size_t;
5534    #[cfg(feature = "v1_26")]
5535    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5536    pub fn gst_id_str_init(s: *mut GstIdStr);
5537    #[cfg(feature = "v1_26")]
5538    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5539    pub fn gst_id_str_is_equal(s1: *const GstIdStr, s2: *const GstIdStr) -> gboolean;
5540    #[cfg(feature = "v1_26")]
5541    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5542    pub fn gst_id_str_is_equal_to_str(s1: *const GstIdStr, s2: *const c_char) -> gboolean;
5543    #[cfg(feature = "v1_26")]
5544    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5545    pub fn gst_id_str_is_equal_to_str_with_len(
5546        s1: *const GstIdStr,
5547        s2: *const c_char,
5548        len: size_t,
5549    ) -> gboolean;
5550    #[cfg(feature = "v1_26")]
5551    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5552    pub fn gst_id_str_move(d: *mut GstIdStr, s: *mut GstIdStr);
5553    #[cfg(feature = "v1_26")]
5554    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5555    pub fn gst_id_str_set(s: *mut GstIdStr, value: *const c_char);
5556    #[cfg(feature = "v1_26")]
5557    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5558    pub fn gst_id_str_set_static_str(s: *mut GstIdStr, value: *const c_char);
5559    #[cfg(feature = "v1_26")]
5560    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5561    pub fn gst_id_str_set_static_str_with_len(s: *mut GstIdStr, value: *const c_char, len: size_t);
5562    #[cfg(feature = "v1_26")]
5563    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5564    pub fn gst_id_str_set_with_len(s: *mut GstIdStr, value: *const c_char, len: size_t);
5565
5566    //=========================================================================
5567    // GstIterator
5568    //=========================================================================
5569    pub fn gst_iterator_get_type() -> GType;
5570    pub fn gst_iterator_new(
5571        size: c_uint,
5572        type_: GType,
5573        lock: *mut glib::GMutex,
5574        master_cookie: *mut u32,
5575        copy: GstIteratorCopyFunction,
5576        next: GstIteratorNextFunction,
5577        item: GstIteratorItemFunction,
5578        resync: GstIteratorResyncFunction,
5579        free: GstIteratorFreeFunction,
5580    ) -> *mut GstIterator;
5581    pub fn gst_iterator_new_list(
5582        type_: GType,
5583        lock: *mut glib::GMutex,
5584        master_cookie: *mut u32,
5585        list: *mut *mut glib::GList,
5586        owner: *mut gobject::GObject,
5587        item: GstIteratorItemFunction,
5588    ) -> *mut GstIterator;
5589    pub fn gst_iterator_new_single(
5590        type_: GType,
5591        object: *const gobject::GValue,
5592    ) -> *mut GstIterator;
5593    pub fn gst_iterator_copy(it: *const GstIterator) -> *mut GstIterator;
5594    pub fn gst_iterator_filter(
5595        it: *mut GstIterator,
5596        func: glib::GCompareFunc,
5597        user_data: *const gobject::GValue,
5598    ) -> *mut GstIterator;
5599    pub fn gst_iterator_find_custom(
5600        it: *mut GstIterator,
5601        func: glib::GCompareFunc,
5602        elem: *mut gobject::GValue,
5603        user_data: gpointer,
5604    ) -> gboolean;
5605    pub fn gst_iterator_fold(
5606        it: *mut GstIterator,
5607        func: GstIteratorFoldFunction,
5608        ret: *mut gobject::GValue,
5609        user_data: gpointer,
5610    ) -> GstIteratorResult;
5611    pub fn gst_iterator_foreach(
5612        it: *mut GstIterator,
5613        func: GstIteratorForeachFunction,
5614        user_data: gpointer,
5615    ) -> GstIteratorResult;
5616    pub fn gst_iterator_free(it: *mut GstIterator);
5617    pub fn gst_iterator_next(it: *mut GstIterator, elem: *mut gobject::GValue)
5618        -> GstIteratorResult;
5619    pub fn gst_iterator_push(it: *mut GstIterator, other: *mut GstIterator);
5620    pub fn gst_iterator_resync(it: *mut GstIterator);
5621
5622    //=========================================================================
5623    // GstLogContext
5624    //=========================================================================
5625    #[cfg(feature = "v1_28")]
5626    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
5627    pub fn gst_log_context_free(ctx: *mut GstLogContext);
5628    #[cfg(feature = "v1_28")]
5629    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
5630    pub fn gst_log_context_get_category(context: *mut GstLogContext) -> *mut GstDebugCategory;
5631    #[cfg(feature = "v1_28")]
5632    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
5633    pub fn gst_log_context_reset(ctx: *mut GstLogContext);
5634
5635    //=========================================================================
5636    // GstLogContextBuilder
5637    //=========================================================================
5638    #[cfg(feature = "v1_28")]
5639    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
5640    pub fn gst_log_context_builder_build(builder: *mut GstLogContextBuilder) -> *mut GstLogContext;
5641    #[cfg(feature = "v1_28")]
5642    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
5643    pub fn gst_log_context_builder_set_category(
5644        builder: *mut GstLogContextBuilder,
5645        category: *mut GstDebugCategory,
5646    ) -> *mut GstLogContextBuilder;
5647    #[cfg(feature = "v1_28")]
5648    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
5649    pub fn gst_log_context_builder_set_hash_flags(
5650        builder: *mut GstLogContextBuilder,
5651        flags: GstLogContextHashFlags,
5652    ) -> *mut GstLogContextBuilder;
5653    #[cfg(feature = "v1_28")]
5654    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
5655    pub fn gst_log_context_builder_set_interval(
5656        builder: *mut GstLogContextBuilder,
5657        interval: GstClockTime,
5658    ) -> *mut GstLogContextBuilder;
5659    #[cfg(feature = "v1_28")]
5660    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
5661    pub fn gst_log_context_builder_new(
5662        category: *mut GstDebugCategory,
5663        flags: GstLogContextFlags,
5664    ) -> *mut GstLogContextBuilder;
5665
5666    //=========================================================================
5667    // GstMemory
5668    //=========================================================================
5669    pub fn gst_memory_get_type() -> GType;
5670    pub fn gst_memory_new_wrapped(
5671        flags: GstMemoryFlags,
5672        data: gpointer,
5673        maxsize: size_t,
5674        offset: size_t,
5675        size: size_t,
5676        user_data: gpointer,
5677        notify: glib::GDestroyNotify,
5678    ) -> *mut GstMemory;
5679    pub fn gst_memory_copy(mem: *mut GstMemory, offset: ssize_t, size: ssize_t) -> *mut GstMemory;
5680    pub fn gst_memory_get_sizes(
5681        mem: *mut GstMemory,
5682        offset: *mut size_t,
5683        maxsize: *mut size_t,
5684    ) -> size_t;
5685    pub fn gst_memory_init(
5686        mem: *mut GstMemory,
5687        flags: GstMemoryFlags,
5688        allocator: *mut GstAllocator,
5689        parent: *mut GstMemory,
5690        maxsize: size_t,
5691        align: size_t,
5692        offset: size_t,
5693        size: size_t,
5694    );
5695    pub fn gst_memory_is_span(
5696        mem1: *mut GstMemory,
5697        mem2: *mut GstMemory,
5698        offset: *mut size_t,
5699    ) -> gboolean;
5700    pub fn gst_memory_is_type(mem: *mut GstMemory, mem_type: *const c_char) -> gboolean;
5701    pub fn gst_memory_is_writable(memory: *const GstMemory) -> gboolean;
5702    pub fn gst_memory_make_mapped(
5703        mem: *mut GstMemory,
5704        info: *mut GstMapInfo,
5705        flags: GstMapFlags,
5706    ) -> *mut GstMemory;
5707    pub fn gst_memory_make_writable(memory: *mut GstMemory) -> *mut GstMemory;
5708    pub fn gst_memory_map(
5709        mem: *mut GstMemory,
5710        info: *mut GstMapInfo,
5711        flags: GstMapFlags,
5712    ) -> gboolean;
5713    #[cfg(feature = "v1_18_3")]
5714    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
5715    pub fn gst_memory_ref(memory: *mut GstMemory) -> *mut GstMemory;
5716    pub fn gst_memory_resize(mem: *mut GstMemory, offset: ssize_t, size: size_t);
5717    pub fn gst_memory_share(mem: *mut GstMemory, offset: ssize_t, size: ssize_t) -> *mut GstMemory;
5718    pub fn gst_memory_unmap(mem: *mut GstMemory, info: *mut GstMapInfo);
5719    #[cfg(feature = "v1_18_3")]
5720    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
5721    pub fn gst_memory_unref(memory: *mut GstMemory);
5722    #[cfg(feature = "v1_28")]
5723    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
5724    pub fn gst_memory_replace(
5725        old_memory: *mut *mut GstMemory,
5726        new_memory: *mut GstMemory,
5727    ) -> gboolean;
5728    #[cfg(feature = "v1_28")]
5729    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
5730    pub fn gst_memory_steal(old_memory: *mut *mut GstMemory) -> *mut GstMemory;
5731    #[cfg(feature = "v1_28")]
5732    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
5733    pub fn gst_memory_take(old_memory: *mut *mut GstMemory, new_memory: *mut GstMemory)
5734        -> gboolean;
5735
5736    //=========================================================================
5737    // GstMessage
5738    //=========================================================================
5739    pub fn gst_message_get_type() -> GType;
5740    pub fn gst_message_new_application(
5741        src: *mut GstObject,
5742        structure: *mut GstStructure,
5743    ) -> *mut GstMessage;
5744    pub fn gst_message_new_async_done(
5745        src: *mut GstObject,
5746        running_time: GstClockTime,
5747    ) -> *mut GstMessage;
5748    pub fn gst_message_new_async_start(src: *mut GstObject) -> *mut GstMessage;
5749    pub fn gst_message_new_buffering(src: *mut GstObject, percent: c_int) -> *mut GstMessage;
5750    pub fn gst_message_new_clock_lost(src: *mut GstObject, clock: *mut GstClock)
5751        -> *mut GstMessage;
5752    pub fn gst_message_new_clock_provide(
5753        src: *mut GstObject,
5754        clock: *mut GstClock,
5755        ready: gboolean,
5756    ) -> *mut GstMessage;
5757    pub fn gst_message_new_custom(
5758        type_: GstMessageType,
5759        src: *mut GstObject,
5760        structure: *mut GstStructure,
5761    ) -> *mut GstMessage;
5762    pub fn gst_message_new_device_added(
5763        src: *mut GstObject,
5764        device: *mut GstDevice,
5765    ) -> *mut GstMessage;
5766    #[cfg(feature = "v1_16")]
5767    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
5768    pub fn gst_message_new_device_changed(
5769        src: *mut GstObject,
5770        device: *mut GstDevice,
5771        changed_device: *mut GstDevice,
5772    ) -> *mut GstMessage;
5773    pub fn gst_message_new_device_removed(
5774        src: *mut GstObject,
5775        device: *mut GstDevice,
5776    ) -> *mut GstMessage;
5777    pub fn gst_message_new_duration_changed(src: *mut GstObject) -> *mut GstMessage;
5778    pub fn gst_message_new_element(
5779        src: *mut GstObject,
5780        structure: *mut GstStructure,
5781    ) -> *mut GstMessage;
5782    pub fn gst_message_new_eos(src: *mut GstObject) -> *mut GstMessage;
5783    pub fn gst_message_new_error(
5784        src: *mut GstObject,
5785        error: *mut glib::GError,
5786        debug: *const c_char,
5787    ) -> *mut GstMessage;
5788    pub fn gst_message_new_error_with_details(
5789        src: *mut GstObject,
5790        error: *mut glib::GError,
5791        debug: *const c_char,
5792        details: *mut GstStructure,
5793    ) -> *mut GstMessage;
5794    pub fn gst_message_new_have_context(
5795        src: *mut GstObject,
5796        context: *mut GstContext,
5797    ) -> *mut GstMessage;
5798    pub fn gst_message_new_info(
5799        src: *mut GstObject,
5800        error: *mut glib::GError,
5801        debug: *const c_char,
5802    ) -> *mut GstMessage;
5803    pub fn gst_message_new_info_with_details(
5804        src: *mut GstObject,
5805        error: *mut glib::GError,
5806        debug: *const c_char,
5807        details: *mut GstStructure,
5808    ) -> *mut GstMessage;
5809    #[cfg(feature = "v1_18")]
5810    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
5811    pub fn gst_message_new_instant_rate_request(
5812        src: *mut GstObject,
5813        rate_multiplier: c_double,
5814    ) -> *mut GstMessage;
5815    pub fn gst_message_new_latency(src: *mut GstObject) -> *mut GstMessage;
5816    pub fn gst_message_new_need_context(
5817        src: *mut GstObject,
5818        context_type: *const c_char,
5819    ) -> *mut GstMessage;
5820    pub fn gst_message_new_new_clock(src: *mut GstObject, clock: *mut GstClock) -> *mut GstMessage;
5821    pub fn gst_message_new_progress(
5822        src: *mut GstObject,
5823        type_: GstProgressType,
5824        code: *const c_char,
5825        text: *const c_char,
5826    ) -> *mut GstMessage;
5827    pub fn gst_message_new_property_notify(
5828        src: *mut GstObject,
5829        property_name: *const c_char,
5830        val: *mut gobject::GValue,
5831    ) -> *mut GstMessage;
5832    pub fn gst_message_new_qos(
5833        src: *mut GstObject,
5834        live: gboolean,
5835        running_time: u64,
5836        stream_time: u64,
5837        timestamp: u64,
5838        duration: u64,
5839    ) -> *mut GstMessage;
5840    pub fn gst_message_new_redirect(
5841        src: *mut GstObject,
5842        location: *const c_char,
5843        tag_list: *mut GstTagList,
5844        entry_struct: *const GstStructure,
5845    ) -> *mut GstMessage;
5846    pub fn gst_message_new_request_state(src: *mut GstObject, state: GstState) -> *mut GstMessage;
5847    pub fn gst_message_new_reset_time(
5848        src: *mut GstObject,
5849        running_time: GstClockTime,
5850    ) -> *mut GstMessage;
5851    pub fn gst_message_new_segment_done(
5852        src: *mut GstObject,
5853        format: GstFormat,
5854        position: i64,
5855    ) -> *mut GstMessage;
5856    pub fn gst_message_new_segment_start(
5857        src: *mut GstObject,
5858        format: GstFormat,
5859        position: i64,
5860    ) -> *mut GstMessage;
5861    pub fn gst_message_new_state_changed(
5862        src: *mut GstObject,
5863        oldstate: GstState,
5864        newstate: GstState,
5865        pending: GstState,
5866    ) -> *mut GstMessage;
5867    pub fn gst_message_new_state_dirty(src: *mut GstObject) -> *mut GstMessage;
5868    pub fn gst_message_new_step_done(
5869        src: *mut GstObject,
5870        format: GstFormat,
5871        amount: u64,
5872        rate: c_double,
5873        flush: gboolean,
5874        intermediate: gboolean,
5875        duration: u64,
5876        eos: gboolean,
5877    ) -> *mut GstMessage;
5878    pub fn gst_message_new_step_start(
5879        src: *mut GstObject,
5880        active: gboolean,
5881        format: GstFormat,
5882        amount: u64,
5883        rate: c_double,
5884        flush: gboolean,
5885        intermediate: gboolean,
5886    ) -> *mut GstMessage;
5887    pub fn gst_message_new_stream_collection(
5888        src: *mut GstObject,
5889        collection: *mut GstStreamCollection,
5890    ) -> *mut GstMessage;
5891    pub fn gst_message_new_stream_start(src: *mut GstObject) -> *mut GstMessage;
5892    pub fn gst_message_new_stream_status(
5893        src: *mut GstObject,
5894        type_: GstStreamStatusType,
5895        owner: *mut GstElement,
5896    ) -> *mut GstMessage;
5897    pub fn gst_message_new_streams_selected(
5898        src: *mut GstObject,
5899        collection: *mut GstStreamCollection,
5900    ) -> *mut GstMessage;
5901    pub fn gst_message_new_structure_change(
5902        src: *mut GstObject,
5903        type_: GstStructureChangeType,
5904        owner: *mut GstElement,
5905        busy: gboolean,
5906    ) -> *mut GstMessage;
5907    pub fn gst_message_new_tag(src: *mut GstObject, tag_list: *mut GstTagList) -> *mut GstMessage;
5908    pub fn gst_message_new_toc(
5909        src: *mut GstObject,
5910        toc: *mut GstToc,
5911        updated: gboolean,
5912    ) -> *mut GstMessage;
5913    pub fn gst_message_new_warning(
5914        src: *mut GstObject,
5915        error: *mut glib::GError,
5916        debug: *const c_char,
5917    ) -> *mut GstMessage;
5918    pub fn gst_message_new_warning_with_details(
5919        src: *mut GstObject,
5920        error: *mut glib::GError,
5921        debug: *const c_char,
5922        details: *mut GstStructure,
5923    ) -> *mut GstMessage;
5924    pub fn gst_message_add_redirect_entry(
5925        message: *mut GstMessage,
5926        location: *const c_char,
5927        tag_list: *mut GstTagList,
5928        entry_struct: *const GstStructure,
5929    );
5930    #[cfg(feature = "v1_18_3")]
5931    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
5932    pub fn gst_message_copy(msg: *const GstMessage) -> *mut GstMessage;
5933    #[cfg(feature = "v1_26")]
5934    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5935    pub fn gst_message_get_details(message: *mut GstMessage) -> *const GstStructure;
5936    pub fn gst_message_get_num_redirect_entries(message: *mut GstMessage) -> size_t;
5937    pub fn gst_message_get_seqnum(message: *mut GstMessage) -> u32;
5938    pub fn gst_message_get_stream_status_object(message: *mut GstMessage)
5939        -> *const gobject::GValue;
5940    pub fn gst_message_get_structure(message: *mut GstMessage) -> *const GstStructure;
5941    pub fn gst_message_has_name(message: *mut GstMessage, name: *const c_char) -> gboolean;
5942    pub fn gst_message_is_writable(message: *const GstMessage) -> gboolean;
5943    pub fn gst_message_make_writable(message: *mut GstMessage) -> *mut GstMessage;
5944    pub fn gst_message_parse_async_done(message: *mut GstMessage, running_time: *mut GstClockTime);
5945    pub fn gst_message_parse_buffering(message: *mut GstMessage, percent: *mut c_int);
5946    pub fn gst_message_parse_buffering_stats(
5947        message: *mut GstMessage,
5948        mode: *mut GstBufferingMode,
5949        avg_in: *mut c_int,
5950        avg_out: *mut c_int,
5951        buffering_left: *mut i64,
5952    );
5953    pub fn gst_message_parse_clock_lost(message: *mut GstMessage, clock: *mut *mut GstClock);
5954    pub fn gst_message_parse_clock_provide(
5955        message: *mut GstMessage,
5956        clock: *mut *mut GstClock,
5957        ready: *mut gboolean,
5958    );
5959    pub fn gst_message_parse_context_type(
5960        message: *mut GstMessage,
5961        context_type: *mut *const c_char,
5962    ) -> gboolean;
5963    pub fn gst_message_parse_device_added(message: *mut GstMessage, device: *mut *mut GstDevice);
5964    #[cfg(feature = "v1_16")]
5965    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
5966    pub fn gst_message_parse_device_changed(
5967        message: *mut GstMessage,
5968        device: *mut *mut GstDevice,
5969        changed_device: *mut *mut GstDevice,
5970    );
5971    pub fn gst_message_parse_device_removed(message: *mut GstMessage, device: *mut *mut GstDevice);
5972    pub fn gst_message_parse_error(
5973        message: *mut GstMessage,
5974        gerror: *mut *mut glib::GError,
5975        debug: *mut *mut c_char,
5976    );
5977    pub fn gst_message_parse_error_details(
5978        message: *mut GstMessage,
5979        structure: *mut *const GstStructure,
5980    );
5981    #[cfg(feature = "v1_26")]
5982    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
5983    pub fn gst_message_parse_error_writable_details(
5984        message: *mut GstMessage,
5985        structure: *mut *mut GstStructure,
5986    );
5987    pub fn gst_message_parse_group_id(message: *mut GstMessage, group_id: *mut c_uint) -> gboolean;
5988    pub fn gst_message_parse_have_context(message: *mut GstMessage, context: *mut *mut GstContext);
5989    pub fn gst_message_parse_info(
5990        message: *mut GstMessage,
5991        gerror: *mut *mut glib::GError,
5992        debug: *mut *mut c_char,
5993    );
5994    pub fn gst_message_parse_info_details(
5995        message: *mut GstMessage,
5996        structure: *mut *const GstStructure,
5997    );
5998    #[cfg(feature = "v1_26")]
5999    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
6000    pub fn gst_message_parse_info_writable_details(
6001        message: *mut GstMessage,
6002        structure: *mut *mut GstStructure,
6003    );
6004    #[cfg(feature = "v1_18")]
6005    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
6006    pub fn gst_message_parse_instant_rate_request(
6007        message: *mut GstMessage,
6008        rate_multiplier: *mut c_double,
6009    );
6010    pub fn gst_message_parse_new_clock(message: *mut GstMessage, clock: *mut *mut GstClock);
6011    pub fn gst_message_parse_progress(
6012        message: *mut GstMessage,
6013        type_: *mut GstProgressType,
6014        code: *mut *mut c_char,
6015        text: *mut *mut c_char,
6016    );
6017    pub fn gst_message_parse_property_notify(
6018        message: *mut GstMessage,
6019        object: *mut *mut GstObject,
6020        property_name: *mut *const c_char,
6021        property_value: *mut *const gobject::GValue,
6022    );
6023    pub fn gst_message_parse_qos(
6024        message: *mut GstMessage,
6025        live: *mut gboolean,
6026        running_time: *mut u64,
6027        stream_time: *mut u64,
6028        timestamp: *mut u64,
6029        duration: *mut u64,
6030    );
6031    pub fn gst_message_parse_qos_stats(
6032        message: *mut GstMessage,
6033        format: *mut GstFormat,
6034        processed: *mut u64,
6035        dropped: *mut u64,
6036    );
6037    pub fn gst_message_parse_qos_values(
6038        message: *mut GstMessage,
6039        jitter: *mut i64,
6040        proportion: *mut c_double,
6041        quality: *mut c_int,
6042    );
6043    pub fn gst_message_parse_redirect_entry(
6044        message: *mut GstMessage,
6045        entry_index: size_t,
6046        location: *mut *const c_char,
6047        tag_list: *mut *mut GstTagList,
6048        entry_struct: *mut *const GstStructure,
6049    );
6050    pub fn gst_message_parse_request_state(message: *mut GstMessage, state: *mut GstState);
6051    pub fn gst_message_parse_reset_time(message: *mut GstMessage, running_time: *mut GstClockTime);
6052    pub fn gst_message_parse_segment_done(
6053        message: *mut GstMessage,
6054        format: *mut GstFormat,
6055        position: *mut i64,
6056    );
6057    pub fn gst_message_parse_segment_start(
6058        message: *mut GstMessage,
6059        format: *mut GstFormat,
6060        position: *mut i64,
6061    );
6062    pub fn gst_message_parse_state_changed(
6063        message: *mut GstMessage,
6064        oldstate: *mut GstState,
6065        newstate: *mut GstState,
6066        pending: *mut GstState,
6067    );
6068    pub fn gst_message_parse_step_done(
6069        message: *mut GstMessage,
6070        format: *mut GstFormat,
6071        amount: *mut u64,
6072        rate: *mut c_double,
6073        flush: *mut gboolean,
6074        intermediate: *mut gboolean,
6075        duration: *mut u64,
6076        eos: *mut gboolean,
6077    );
6078    pub fn gst_message_parse_step_start(
6079        message: *mut GstMessage,
6080        active: *mut gboolean,
6081        format: *mut GstFormat,
6082        amount: *mut u64,
6083        rate: *mut c_double,
6084        flush: *mut gboolean,
6085        intermediate: *mut gboolean,
6086    );
6087    pub fn gst_message_parse_stream_collection(
6088        message: *mut GstMessage,
6089        collection: *mut *mut GstStreamCollection,
6090    );
6091    pub fn gst_message_parse_stream_status(
6092        message: *mut GstMessage,
6093        type_: *mut GstStreamStatusType,
6094        owner: *mut *mut GstElement,
6095    );
6096    pub fn gst_message_parse_streams_selected(
6097        message: *mut GstMessage,
6098        collection: *mut *mut GstStreamCollection,
6099    );
6100    pub fn gst_message_parse_structure_change(
6101        message: *mut GstMessage,
6102        type_: *mut GstStructureChangeType,
6103        owner: *mut *mut GstElement,
6104        busy: *mut gboolean,
6105    );
6106    pub fn gst_message_parse_tag(message: *mut GstMessage, tag_list: *mut *mut GstTagList);
6107    pub fn gst_message_parse_toc(
6108        message: *mut GstMessage,
6109        toc: *mut *mut GstToc,
6110        updated: *mut gboolean,
6111    );
6112    pub fn gst_message_parse_warning(
6113        message: *mut GstMessage,
6114        gerror: *mut *mut glib::GError,
6115        debug: *mut *mut c_char,
6116    );
6117    pub fn gst_message_parse_warning_details(
6118        message: *mut GstMessage,
6119        structure: *mut *const GstStructure,
6120    );
6121    #[cfg(feature = "v1_26")]
6122    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
6123    pub fn gst_message_parse_warning_writable_details(
6124        message: *mut GstMessage,
6125        structure: *mut *mut GstStructure,
6126    );
6127    #[cfg(feature = "v1_18_3")]
6128    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
6129    pub fn gst_message_ref(msg: *mut GstMessage) -> *mut GstMessage;
6130    pub fn gst_message_set_buffering_stats(
6131        message: *mut GstMessage,
6132        mode: GstBufferingMode,
6133        avg_in: c_int,
6134        avg_out: c_int,
6135        buffering_left: i64,
6136    );
6137    #[cfg(feature = "v1_26")]
6138    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
6139    pub fn gst_message_set_details(message: *mut GstMessage, details: *mut GstStructure);
6140    pub fn gst_message_set_group_id(message: *mut GstMessage, group_id: c_uint);
6141    pub fn gst_message_set_qos_stats(
6142        message: *mut GstMessage,
6143        format: GstFormat,
6144        processed: u64,
6145        dropped: u64,
6146    );
6147    pub fn gst_message_set_qos_values(
6148        message: *mut GstMessage,
6149        jitter: i64,
6150        proportion: c_double,
6151        quality: c_int,
6152    );
6153    pub fn gst_message_set_seqnum(message: *mut GstMessage, seqnum: u32);
6154    pub fn gst_message_set_stream_status_object(
6155        message: *mut GstMessage,
6156        object: *const gobject::GValue,
6157    );
6158    pub fn gst_message_streams_selected_add(message: *mut GstMessage, stream: *mut GstStream);
6159    pub fn gst_message_streams_selected_get_size(message: *mut GstMessage) -> c_uint;
6160    pub fn gst_message_streams_selected_get_stream(
6161        message: *mut GstMessage,
6162        idx: c_uint,
6163    ) -> *mut GstStream;
6164    #[cfg(feature = "v1_18_3")]
6165    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
6166    pub fn gst_message_unref(msg: *mut GstMessage);
6167    #[cfg(feature = "v1_26")]
6168    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
6169    pub fn gst_message_writable_details(message: *mut GstMessage) -> *mut GstStructure;
6170    pub fn gst_message_writable_structure(message: *mut GstMessage) -> *mut GstStructure;
6171    #[cfg(feature = "v1_18_3")]
6172    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
6173    pub fn gst_message_replace(
6174        old_message: *mut *mut GstMessage,
6175        new_message: *mut GstMessage,
6176    ) -> gboolean;
6177    #[cfg(feature = "v1_28")]
6178    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
6179    pub fn gst_message_steal(old_message: *mut *mut GstMessage) -> *mut GstMessage;
6180    #[cfg(feature = "v1_18_3")]
6181    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
6182    pub fn gst_message_take(
6183        old_message: *mut *mut GstMessage,
6184        new_message: *mut GstMessage,
6185    ) -> gboolean;
6186
6187    //=========================================================================
6188    // GstMeta
6189    //=========================================================================
6190    #[cfg(feature = "v1_16")]
6191    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
6192    pub fn gst_meta_compare_seqnum(meta1: *const GstMeta, meta2: *const GstMeta) -> c_int;
6193    #[cfg(feature = "v1_16")]
6194    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
6195    pub fn gst_meta_get_seqnum(meta: *const GstMeta) -> u64;
6196    #[cfg(feature = "v1_24")]
6197    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
6198    pub fn gst_meta_serialize(meta: *const GstMeta, data: *mut GstByteArrayInterface) -> gboolean;
6199    #[cfg(feature = "v1_24")]
6200    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
6201    pub fn gst_meta_serialize_simple(meta: *const GstMeta, data: *mut glib::GByteArray)
6202        -> gboolean;
6203    #[cfg(feature = "v1_26")]
6204    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
6205    pub fn gst_meta_api_type_aggregate_params(
6206        api: GType,
6207        aggregated_params: *mut *mut GstStructure,
6208        params0: *const GstStructure,
6209        params1: *const GstStructure,
6210    ) -> gboolean;
6211    pub fn gst_meta_api_type_get_tags(api: GType) -> *const *const c_char;
6212    pub fn gst_meta_api_type_has_tag(api: GType, tag: glib::GQuark) -> gboolean;
6213    pub fn gst_meta_api_type_register(api: *const c_char, tags: *mut *const c_char) -> GType;
6214    #[cfg(feature = "v1_26")]
6215    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
6216    pub fn gst_meta_api_type_set_params_aggregator(
6217        api: GType,
6218        aggregator: GstAllocationMetaParamsAggregator,
6219    );
6220    #[cfg(feature = "v1_28")]
6221    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
6222    pub fn gst_meta_api_type_tags_contain_only(
6223        api: GType,
6224        valid_tags: *mut *const c_char,
6225    ) -> gboolean;
6226    #[cfg(feature = "v1_24")]
6227    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
6228    pub fn gst_meta_deserialize(
6229        buffer: *mut GstBuffer,
6230        data: *const u8,
6231        size: size_t,
6232        consumed: *mut u32,
6233    ) -> *mut GstMeta;
6234    pub fn gst_meta_get_info(impl_: *const c_char) -> *const GstMetaInfo;
6235    pub fn gst_meta_register(
6236        api: GType,
6237        impl_: *const c_char,
6238        size: size_t,
6239        init_func: GstMetaInitFunction,
6240        free_func: GstMetaFreeFunction,
6241        transform_func: GstMetaTransformFunction,
6242    ) -> *const GstMetaInfo;
6243    #[cfg(feature = "v1_20")]
6244    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
6245    pub fn gst_meta_register_custom(
6246        name: *const c_char,
6247        tags: *mut *const c_char,
6248        transform_func: GstCustomMetaTransformFunction,
6249        user_data: gpointer,
6250        destroy_data: glib::GDestroyNotify,
6251    ) -> *const GstMetaInfo;
6252    #[cfg(feature = "v1_24")]
6253    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
6254    pub fn gst_meta_register_custom_simple(name: *const c_char) -> *const GstMetaInfo;
6255
6256    //=========================================================================
6257    // GstMetaInfo
6258    //=========================================================================
6259    #[cfg(feature = "v1_20")]
6260    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
6261    pub fn gst_meta_info_is_custom(info: *const GstMetaInfo) -> gboolean;
6262    #[cfg(feature = "v1_24")]
6263    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
6264    pub fn gst_meta_info_register(info: *mut GstMetaInfo) -> *const GstMetaInfo;
6265    #[cfg(feature = "v1_24")]
6266    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
6267    pub fn gst_meta_info_new(api: GType, impl_: *const c_char, size: size_t) -> *mut GstMetaInfo;
6268
6269    //=========================================================================
6270    // GstMiniObject
6271    //=========================================================================
6272    #[cfg(feature = "v1_20")]
6273    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
6274    pub fn gst_mini_object_get_type() -> GType;
6275    #[cfg(feature = "v1_16")]
6276    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
6277    pub fn gst_mini_object_add_parent(object: *mut GstMiniObject, parent: *mut GstMiniObject);
6278    pub fn gst_mini_object_copy(mini_object: *const GstMiniObject) -> *mut GstMiniObject;
6279    pub fn gst_mini_object_get_qdata(object: *mut GstMiniObject, quark: glib::GQuark) -> gpointer;
6280    pub fn gst_mini_object_init(
6281        mini_object: *mut GstMiniObject,
6282        flags: c_uint,
6283        type_: GType,
6284        copy_func: GstMiniObjectCopyFunction,
6285        dispose_func: GstMiniObjectDisposeFunction,
6286        free_func: GstMiniObjectFreeFunction,
6287    );
6288    pub fn gst_mini_object_is_writable(mini_object: *const GstMiniObject) -> gboolean;
6289    pub fn gst_mini_object_lock(object: *mut GstMiniObject, flags: GstLockFlags) -> gboolean;
6290    pub fn gst_mini_object_make_writable(mini_object: *mut GstMiniObject) -> *mut GstMiniObject;
6291    pub fn gst_mini_object_ref(mini_object: *mut GstMiniObject) -> *mut GstMiniObject;
6292    #[cfg(feature = "v1_16")]
6293    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
6294    pub fn gst_mini_object_remove_parent(object: *mut GstMiniObject, parent: *mut GstMiniObject);
6295    pub fn gst_mini_object_set_qdata(
6296        object: *mut GstMiniObject,
6297        quark: glib::GQuark,
6298        data: gpointer,
6299        destroy: glib::GDestroyNotify,
6300    );
6301    pub fn gst_mini_object_steal_qdata(object: *mut GstMiniObject, quark: glib::GQuark)
6302        -> gpointer;
6303    pub fn gst_mini_object_unlock(object: *mut GstMiniObject, flags: GstLockFlags);
6304    pub fn gst_mini_object_unref(mini_object: *mut GstMiniObject);
6305    pub fn gst_mini_object_weak_ref(
6306        object: *mut GstMiniObject,
6307        notify: GstMiniObjectNotify,
6308        data: gpointer,
6309    );
6310    pub fn gst_mini_object_weak_unref(
6311        object: *mut GstMiniObject,
6312        notify: GstMiniObjectNotify,
6313        data: gpointer,
6314    );
6315    pub fn gst_mini_object_replace(
6316        olddata: *mut *mut GstMiniObject,
6317        newdata: *mut GstMiniObject,
6318    ) -> gboolean;
6319    pub fn gst_mini_object_steal(olddata: *mut *mut GstMiniObject) -> *mut GstMiniObject;
6320    pub fn gst_mini_object_take(
6321        olddata: *mut *mut GstMiniObject,
6322        newdata: *mut GstMiniObject,
6323    ) -> gboolean;
6324
6325    //=========================================================================
6326    // GstPadProbeInfo
6327    //=========================================================================
6328    pub fn gst_pad_probe_info_get_buffer(info: *mut GstPadProbeInfo) -> *mut GstBuffer;
6329    pub fn gst_pad_probe_info_get_buffer_list(info: *mut GstPadProbeInfo) -> *mut GstBufferList;
6330    pub fn gst_pad_probe_info_get_event(info: *mut GstPadProbeInfo) -> *mut GstEvent;
6331    pub fn gst_pad_probe_info_get_query(info: *mut GstPadProbeInfo) -> *mut GstQuery;
6332
6333    //=========================================================================
6334    // GstParentBufferMeta
6335    //=========================================================================
6336    pub fn gst_parent_buffer_meta_get_info() -> *const GstMetaInfo;
6337
6338    //=========================================================================
6339    // GstParseContext
6340    //=========================================================================
6341    pub fn gst_parse_context_get_type() -> GType;
6342    pub fn gst_parse_context_new() -> *mut GstParseContext;
6343    pub fn gst_parse_context_copy(context: *const GstParseContext) -> *mut GstParseContext;
6344    pub fn gst_parse_context_free(context: *mut GstParseContext);
6345    pub fn gst_parse_context_get_missing_elements(
6346        context: *mut GstParseContext,
6347    ) -> *mut *mut c_char;
6348
6349    //=========================================================================
6350    // GstPoll
6351    //=========================================================================
6352    pub fn gst_poll_add_fd(set: *mut GstPoll, fd: *mut GstPollFD) -> gboolean;
6353    pub fn gst_poll_fd_can_read(set: *const GstPoll, fd: *mut GstPollFD) -> gboolean;
6354    pub fn gst_poll_fd_can_write(set: *const GstPoll, fd: *mut GstPollFD) -> gboolean;
6355    #[cfg(feature = "v1_16")]
6356    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
6357    pub fn gst_poll_fd_ctl_pri(set: *mut GstPoll, fd: *mut GstPollFD, active: gboolean)
6358        -> gboolean;
6359    pub fn gst_poll_fd_ctl_read(
6360        set: *mut GstPoll,
6361        fd: *mut GstPollFD,
6362        active: gboolean,
6363    ) -> gboolean;
6364    pub fn gst_poll_fd_ctl_write(
6365        set: *mut GstPoll,
6366        fd: *mut GstPollFD,
6367        active: gboolean,
6368    ) -> gboolean;
6369    pub fn gst_poll_fd_has_closed(set: *const GstPoll, fd: *mut GstPollFD) -> gboolean;
6370    pub fn gst_poll_fd_has_error(set: *const GstPoll, fd: *mut GstPollFD) -> gboolean;
6371    #[cfg(feature = "v1_16")]
6372    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
6373    pub fn gst_poll_fd_has_pri(set: *const GstPoll, fd: *mut GstPollFD) -> gboolean;
6374    pub fn gst_poll_fd_ignored(set: *mut GstPoll, fd: *mut GstPollFD);
6375    pub fn gst_poll_free(set: *mut GstPoll);
6376    pub fn gst_poll_get_read_gpollfd(set: *mut GstPoll, fd: *mut glib::GPollFD);
6377    pub fn gst_poll_read_control(set: *mut GstPoll) -> gboolean;
6378    pub fn gst_poll_remove_fd(set: *mut GstPoll, fd: *mut GstPollFD) -> gboolean;
6379    pub fn gst_poll_restart(set: *mut GstPoll);
6380    pub fn gst_poll_set_controllable(set: *mut GstPoll, controllable: gboolean) -> gboolean;
6381    pub fn gst_poll_set_flushing(set: *mut GstPoll, flushing: gboolean);
6382    pub fn gst_poll_wait(set: *mut GstPoll, timeout: GstClockTime) -> c_int;
6383    pub fn gst_poll_write_control(set: *mut GstPoll) -> gboolean;
6384    pub fn gst_poll_new(controllable: gboolean) -> *mut GstPoll;
6385    pub fn gst_poll_new_timer() -> *mut GstPoll;
6386
6387    //=========================================================================
6388    // GstPollFD
6389    //=========================================================================
6390    pub fn gst_poll_fd_init(fd: *mut GstPollFD);
6391
6392    //=========================================================================
6393    // GstPromise
6394    //=========================================================================
6395    pub fn gst_promise_get_type() -> GType;
6396    pub fn gst_promise_new() -> *mut GstPromise;
6397    pub fn gst_promise_new_with_change_func(
6398        func: GstPromiseChangeFunc,
6399        user_data: gpointer,
6400        notify: glib::GDestroyNotify,
6401    ) -> *mut GstPromise;
6402    pub fn gst_promise_expire(promise: *mut GstPromise);
6403    pub fn gst_promise_get_reply(promise: *mut GstPromise) -> *const GstStructure;
6404    pub fn gst_promise_interrupt(promise: *mut GstPromise);
6405    #[cfg(feature = "v1_18_3")]
6406    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
6407    pub fn gst_promise_ref(promise: *mut GstPromise) -> *mut GstPromise;
6408    pub fn gst_promise_reply(promise: *mut GstPromise, s: *mut GstStructure);
6409    #[cfg(feature = "v1_18_3")]
6410    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
6411    pub fn gst_promise_unref(promise: *mut GstPromise);
6412    pub fn gst_promise_wait(promise: *mut GstPromise) -> GstPromiseResult;
6413
6414    //=========================================================================
6415    // GstProtectionMeta
6416    //=========================================================================
6417    pub fn gst_protection_meta_get_info() -> *const GstMetaInfo;
6418
6419    //=========================================================================
6420    // GstQuery
6421    //=========================================================================
6422    pub fn gst_query_get_type() -> GType;
6423    pub fn gst_query_new_accept_caps(caps: *mut GstCaps) -> *mut GstQuery;
6424    pub fn gst_query_new_allocation(caps: *mut GstCaps, need_pool: gboolean) -> *mut GstQuery;
6425    #[cfg(feature = "v1_16")]
6426    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
6427    pub fn gst_query_new_bitrate() -> *mut GstQuery;
6428    pub fn gst_query_new_buffering(format: GstFormat) -> *mut GstQuery;
6429    pub fn gst_query_new_caps(filter: *mut GstCaps) -> *mut GstQuery;
6430    pub fn gst_query_new_context(context_type: *const c_char) -> *mut GstQuery;
6431    pub fn gst_query_new_convert(
6432        src_format: GstFormat,
6433        value: i64,
6434        dest_format: GstFormat,
6435    ) -> *mut GstQuery;
6436    pub fn gst_query_new_custom(type_: GstQueryType, structure: *mut GstStructure)
6437        -> *mut GstQuery;
6438    pub fn gst_query_new_drain() -> *mut GstQuery;
6439    pub fn gst_query_new_duration(format: GstFormat) -> *mut GstQuery;
6440    pub fn gst_query_new_formats() -> *mut GstQuery;
6441    pub fn gst_query_new_latency() -> *mut GstQuery;
6442    pub fn gst_query_new_position(format: GstFormat) -> *mut GstQuery;
6443    pub fn gst_query_new_scheduling() -> *mut GstQuery;
6444    pub fn gst_query_new_seeking(format: GstFormat) -> *mut GstQuery;
6445    pub fn gst_query_new_segment(format: GstFormat) -> *mut GstQuery;
6446    #[cfg(feature = "v1_22")]
6447    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
6448    pub fn gst_query_new_selectable() -> *mut GstQuery;
6449    pub fn gst_query_new_uri() -> *mut GstQuery;
6450    pub fn gst_query_add_allocation_meta(
6451        query: *mut GstQuery,
6452        api: GType,
6453        params: *const GstStructure,
6454    );
6455    pub fn gst_query_add_allocation_param(
6456        query: *mut GstQuery,
6457        allocator: *mut GstAllocator,
6458        params: *const GstAllocationParams,
6459    );
6460    pub fn gst_query_add_allocation_pool(
6461        query: *mut GstQuery,
6462        pool: *mut GstBufferPool,
6463        size: c_uint,
6464        min_buffers: c_uint,
6465        max_buffers: c_uint,
6466    );
6467    pub fn gst_query_add_buffering_range(query: *mut GstQuery, start: i64, stop: i64) -> gboolean;
6468    pub fn gst_query_add_scheduling_mode(query: *mut GstQuery, mode: GstPadMode);
6469    #[cfg(feature = "v1_18_3")]
6470    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
6471    pub fn gst_query_copy(q: *const GstQuery) -> *mut GstQuery;
6472    pub fn gst_query_find_allocation_meta(
6473        query: *mut GstQuery,
6474        api: GType,
6475        index: *mut c_uint,
6476    ) -> gboolean;
6477    pub fn gst_query_get_n_allocation_metas(query: *mut GstQuery) -> c_uint;
6478    pub fn gst_query_get_n_allocation_params(query: *mut GstQuery) -> c_uint;
6479    pub fn gst_query_get_n_allocation_pools(query: *mut GstQuery) -> c_uint;
6480    pub fn gst_query_get_n_buffering_ranges(query: *mut GstQuery) -> c_uint;
6481    pub fn gst_query_get_n_scheduling_modes(query: *mut GstQuery) -> c_uint;
6482    pub fn gst_query_get_structure(query: *mut GstQuery) -> *const GstStructure;
6483    pub fn gst_query_has_scheduling_mode(query: *mut GstQuery, mode: GstPadMode) -> gboolean;
6484    pub fn gst_query_has_scheduling_mode_with_flags(
6485        query: *mut GstQuery,
6486        mode: GstPadMode,
6487        flags: GstSchedulingFlags,
6488    ) -> gboolean;
6489    pub fn gst_query_is_writable(query: *const GstQuery) -> gboolean;
6490    pub fn gst_query_make_writable(query: *mut GstQuery) -> *mut GstQuery;
6491    pub fn gst_query_parse_accept_caps(query: *mut GstQuery, caps: *mut *mut GstCaps);
6492    pub fn gst_query_parse_accept_caps_result(query: *mut GstQuery, result: *mut gboolean);
6493    pub fn gst_query_parse_allocation(
6494        query: *mut GstQuery,
6495        caps: *mut *mut GstCaps,
6496        need_pool: *mut gboolean,
6497    );
6498    #[cfg(feature = "v1_16")]
6499    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
6500    pub fn gst_query_parse_bitrate(query: *mut GstQuery, nominal_bitrate: *mut c_uint);
6501    pub fn gst_query_parse_buffering_percent(
6502        query: *mut GstQuery,
6503        busy: *mut gboolean,
6504        percent: *mut c_int,
6505    );
6506    pub fn gst_query_parse_buffering_range(
6507        query: *mut GstQuery,
6508        format: *mut GstFormat,
6509        start: *mut i64,
6510        stop: *mut i64,
6511        estimated_total: *mut i64,
6512    );
6513    pub fn gst_query_parse_buffering_stats(
6514        query: *mut GstQuery,
6515        mode: *mut GstBufferingMode,
6516        avg_in: *mut c_int,
6517        avg_out: *mut c_int,
6518        buffering_left: *mut i64,
6519    );
6520    pub fn gst_query_parse_caps(query: *mut GstQuery, filter: *mut *mut GstCaps);
6521    pub fn gst_query_parse_caps_result(query: *mut GstQuery, caps: *mut *mut GstCaps);
6522    pub fn gst_query_parse_context(query: *mut GstQuery, context: *mut *mut GstContext);
6523    pub fn gst_query_parse_context_type(
6524        query: *mut GstQuery,
6525        context_type: *mut *const c_char,
6526    ) -> gboolean;
6527    pub fn gst_query_parse_convert(
6528        query: *mut GstQuery,
6529        src_format: *mut GstFormat,
6530        src_value: *mut i64,
6531        dest_format: *mut GstFormat,
6532        dest_value: *mut i64,
6533    );
6534    pub fn gst_query_parse_duration(
6535        query: *mut GstQuery,
6536        format: *mut GstFormat,
6537        duration: *mut i64,
6538    );
6539    pub fn gst_query_parse_latency(
6540        query: *mut GstQuery,
6541        live: *mut gboolean,
6542        min_latency: *mut GstClockTime,
6543        max_latency: *mut GstClockTime,
6544    );
6545    pub fn gst_query_parse_n_formats(query: *mut GstQuery, n_formats: *mut c_uint);
6546    pub fn gst_query_parse_nth_allocation_meta(
6547        query: *mut GstQuery,
6548        index: c_uint,
6549        params: *mut *const GstStructure,
6550    ) -> GType;
6551    pub fn gst_query_parse_nth_allocation_param(
6552        query: *mut GstQuery,
6553        index: c_uint,
6554        allocator: *mut *mut GstAllocator,
6555        params: *mut GstAllocationParams,
6556    );
6557    pub fn gst_query_parse_nth_allocation_pool(
6558        query: *mut GstQuery,
6559        index: c_uint,
6560        pool: *mut *mut GstBufferPool,
6561        size: *mut c_uint,
6562        min_buffers: *mut c_uint,
6563        max_buffers: *mut c_uint,
6564    );
6565    pub fn gst_query_parse_nth_buffering_range(
6566        query: *mut GstQuery,
6567        index: c_uint,
6568        start: *mut i64,
6569        stop: *mut i64,
6570    ) -> gboolean;
6571    pub fn gst_query_parse_nth_format(query: *mut GstQuery, nth: c_uint, format: *mut GstFormat);
6572    pub fn gst_query_parse_nth_scheduling_mode(query: *mut GstQuery, index: c_uint) -> GstPadMode;
6573    pub fn gst_query_parse_position(query: *mut GstQuery, format: *mut GstFormat, cur: *mut i64);
6574    pub fn gst_query_parse_scheduling(
6575        query: *mut GstQuery,
6576        flags: *mut GstSchedulingFlags,
6577        minsize: *mut c_int,
6578        maxsize: *mut c_int,
6579        align: *mut c_int,
6580    );
6581    pub fn gst_query_parse_seeking(
6582        query: *mut GstQuery,
6583        format: *mut GstFormat,
6584        seekable: *mut gboolean,
6585        segment_start: *mut i64,
6586        segment_end: *mut i64,
6587    );
6588    pub fn gst_query_parse_segment(
6589        query: *mut GstQuery,
6590        rate: *mut c_double,
6591        format: *mut GstFormat,
6592        start_value: *mut i64,
6593        stop_value: *mut i64,
6594    );
6595    #[cfg(feature = "v1_22")]
6596    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
6597    pub fn gst_query_parse_selectable(query: *mut GstQuery, selectable: *mut gboolean);
6598    pub fn gst_query_parse_uri(query: *mut GstQuery, uri: *mut *mut c_char);
6599    pub fn gst_query_parse_uri_redirection(query: *mut GstQuery, uri: *mut *mut c_char);
6600    pub fn gst_query_parse_uri_redirection_permanent(
6601        query: *mut GstQuery,
6602        permanent: *mut gboolean,
6603    );
6604    #[cfg(feature = "v1_18_3")]
6605    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
6606    pub fn gst_query_ref(q: *mut GstQuery) -> *mut GstQuery;
6607    pub fn gst_query_remove_nth_allocation_meta(query: *mut GstQuery, index: c_uint);
6608    pub fn gst_query_remove_nth_allocation_param(query: *mut GstQuery, index: c_uint);
6609    pub fn gst_query_remove_nth_allocation_pool(query: *mut GstQuery, index: c_uint);
6610    pub fn gst_query_set_accept_caps_result(query: *mut GstQuery, result: gboolean);
6611    #[cfg(feature = "v1_16")]
6612    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
6613    pub fn gst_query_set_bitrate(query: *mut GstQuery, nominal_bitrate: c_uint);
6614    pub fn gst_query_set_buffering_percent(query: *mut GstQuery, busy: gboolean, percent: c_int);
6615    pub fn gst_query_set_buffering_range(
6616        query: *mut GstQuery,
6617        format: GstFormat,
6618        start: i64,
6619        stop: i64,
6620        estimated_total: i64,
6621    );
6622    pub fn gst_query_set_buffering_stats(
6623        query: *mut GstQuery,
6624        mode: GstBufferingMode,
6625        avg_in: c_int,
6626        avg_out: c_int,
6627        buffering_left: i64,
6628    );
6629    pub fn gst_query_set_caps_result(query: *mut GstQuery, caps: *mut GstCaps);
6630    pub fn gst_query_set_context(query: *mut GstQuery, context: *mut GstContext);
6631    pub fn gst_query_set_convert(
6632        query: *mut GstQuery,
6633        src_format: GstFormat,
6634        src_value: i64,
6635        dest_format: GstFormat,
6636        dest_value: i64,
6637    );
6638    pub fn gst_query_set_duration(query: *mut GstQuery, format: GstFormat, duration: i64);
6639    pub fn gst_query_set_formats(query: *mut GstQuery, n_formats: c_int, ...);
6640    pub fn gst_query_set_formatsv(
6641        query: *mut GstQuery,
6642        n_formats: c_int,
6643        formats: *const GstFormat,
6644    );
6645    pub fn gst_query_set_latency(
6646        query: *mut GstQuery,
6647        live: gboolean,
6648        min_latency: GstClockTime,
6649        max_latency: GstClockTime,
6650    );
6651    pub fn gst_query_set_nth_allocation_param(
6652        query: *mut GstQuery,
6653        index: c_uint,
6654        allocator: *mut GstAllocator,
6655        params: *const GstAllocationParams,
6656    );
6657    pub fn gst_query_set_nth_allocation_pool(
6658        query: *mut GstQuery,
6659        index: c_uint,
6660        pool: *mut GstBufferPool,
6661        size: c_uint,
6662        min_buffers: c_uint,
6663        max_buffers: c_uint,
6664    );
6665    pub fn gst_query_set_position(query: *mut GstQuery, format: GstFormat, cur: i64);
6666    pub fn gst_query_set_scheduling(
6667        query: *mut GstQuery,
6668        flags: GstSchedulingFlags,
6669        minsize: c_int,
6670        maxsize: c_int,
6671        align: c_int,
6672    );
6673    pub fn gst_query_set_seeking(
6674        query: *mut GstQuery,
6675        format: GstFormat,
6676        seekable: gboolean,
6677        segment_start: i64,
6678        segment_end: i64,
6679    );
6680    pub fn gst_query_set_segment(
6681        query: *mut GstQuery,
6682        rate: c_double,
6683        format: GstFormat,
6684        start_value: i64,
6685        stop_value: i64,
6686    );
6687    #[cfg(feature = "v1_22")]
6688    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
6689    pub fn gst_query_set_selectable(query: *mut GstQuery, selectable: gboolean);
6690    pub fn gst_query_set_uri(query: *mut GstQuery, uri: *const c_char);
6691    pub fn gst_query_set_uri_redirection(query: *mut GstQuery, uri: *const c_char);
6692    pub fn gst_query_set_uri_redirection_permanent(query: *mut GstQuery, permanent: gboolean);
6693    #[cfg(feature = "v1_18_3")]
6694    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
6695    pub fn gst_query_unref(q: *mut GstQuery);
6696    pub fn gst_query_writable_structure(query: *mut GstQuery) -> *mut GstStructure;
6697    #[cfg(feature = "v1_18_3")]
6698    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
6699    pub fn gst_query_replace(old_query: *mut *mut GstQuery, new_query: *mut GstQuery) -> gboolean;
6700    #[cfg(feature = "v1_28")]
6701    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
6702    pub fn gst_query_steal(old_query: *mut *mut GstQuery) -> *mut GstQuery;
6703    #[cfg(feature = "v1_18_3")]
6704    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
6705    pub fn gst_query_take(old_query: *mut *mut GstQuery, new_query: *mut GstQuery) -> gboolean;
6706
6707    //=========================================================================
6708    // GstReferenceTimestampMeta
6709    //=========================================================================
6710    pub fn gst_reference_timestamp_meta_get_info() -> *const GstMetaInfo;
6711
6712    //=========================================================================
6713    // GstSample
6714    //=========================================================================
6715    pub fn gst_sample_get_type() -> GType;
6716    pub fn gst_sample_new(
6717        buffer: *mut GstBuffer,
6718        caps: *mut GstCaps,
6719        segment: *const GstSegment,
6720        info: *mut GstStructure,
6721    ) -> *mut GstSample;
6722    #[cfg(feature = "v1_18_3")]
6723    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
6724    pub fn gst_sample_copy(sample: *const GstSample) -> *mut GstSample;
6725    pub fn gst_sample_get_buffer(sample: *mut GstSample) -> *mut GstBuffer;
6726    pub fn gst_sample_get_buffer_list(sample: *mut GstSample) -> *mut GstBufferList;
6727    pub fn gst_sample_get_caps(sample: *mut GstSample) -> *mut GstCaps;
6728    pub fn gst_sample_get_info(sample: *mut GstSample) -> *const GstStructure;
6729    pub fn gst_sample_get_segment(sample: *mut GstSample) -> *mut GstSegment;
6730    #[cfg(feature = "v1_16")]
6731    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
6732    pub fn gst_sample_is_writable(sample: *const GstSample) -> gboolean;
6733    #[cfg(feature = "v1_16")]
6734    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
6735    pub fn gst_sample_make_writable(sample: *mut GstSample) -> *mut GstSample;
6736    #[cfg(feature = "v1_18_3")]
6737    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
6738    pub fn gst_sample_ref(sample: *mut GstSample) -> *mut GstSample;
6739    #[cfg(feature = "v1_16")]
6740    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
6741    pub fn gst_sample_set_buffer(sample: *mut GstSample, buffer: *mut GstBuffer);
6742    pub fn gst_sample_set_buffer_list(sample: *mut GstSample, buffer_list: *mut GstBufferList);
6743    #[cfg(feature = "v1_16")]
6744    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
6745    pub fn gst_sample_set_caps(sample: *mut GstSample, caps: *mut GstCaps);
6746    #[cfg(feature = "v1_16")]
6747    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
6748    pub fn gst_sample_set_info(sample: *mut GstSample, info: *mut GstStructure) -> gboolean;
6749    #[cfg(feature = "v1_16")]
6750    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
6751    pub fn gst_sample_set_segment(sample: *mut GstSample, segment: *const GstSegment);
6752    #[cfg(feature = "v1_18_3")]
6753    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
6754    pub fn gst_sample_unref(sample: *mut GstSample);
6755
6756    //=========================================================================
6757    // GstSegment
6758    //=========================================================================
6759    pub fn gst_segment_get_type() -> GType;
6760    pub fn gst_segment_new() -> *mut GstSegment;
6761    pub fn gst_segment_clip(
6762        segment: *const GstSegment,
6763        format: GstFormat,
6764        start: u64,
6765        stop: u64,
6766        clip_start: *mut u64,
6767        clip_stop: *mut u64,
6768    ) -> gboolean;
6769    pub fn gst_segment_copy(segment: *const GstSegment) -> *mut GstSegment;
6770    pub fn gst_segment_copy_into(src: *const GstSegment, dest: *mut GstSegment);
6771    pub fn gst_segment_do_seek(
6772        segment: *mut GstSegment,
6773        rate: c_double,
6774        format: GstFormat,
6775        flags: GstSeekFlags,
6776        start_type: GstSeekType,
6777        start: u64,
6778        stop_type: GstSeekType,
6779        stop: u64,
6780        update: *mut gboolean,
6781    ) -> gboolean;
6782    pub fn gst_segment_free(segment: *mut GstSegment);
6783    pub fn gst_segment_init(segment: *mut GstSegment, format: GstFormat);
6784    pub fn gst_segment_is_equal(s0: *const GstSegment, s1: *const GstSegment) -> gboolean;
6785    pub fn gst_segment_offset_running_time(
6786        segment: *mut GstSegment,
6787        format: GstFormat,
6788        offset: i64,
6789    ) -> gboolean;
6790    pub fn gst_segment_position_from_running_time(
6791        segment: *const GstSegment,
6792        format: GstFormat,
6793        running_time: u64,
6794    ) -> u64;
6795    pub fn gst_segment_position_from_running_time_full(
6796        segment: *const GstSegment,
6797        format: GstFormat,
6798        running_time: u64,
6799        position: *mut u64,
6800    ) -> c_int;
6801    pub fn gst_segment_position_from_stream_time(
6802        segment: *const GstSegment,
6803        format: GstFormat,
6804        stream_time: u64,
6805    ) -> u64;
6806    pub fn gst_segment_position_from_stream_time_full(
6807        segment: *const GstSegment,
6808        format: GstFormat,
6809        stream_time: u64,
6810        position: *mut u64,
6811    ) -> c_int;
6812    pub fn gst_segment_set_running_time(
6813        segment: *mut GstSegment,
6814        format: GstFormat,
6815        running_time: u64,
6816    ) -> gboolean;
6817    pub fn gst_segment_to_position(
6818        segment: *const GstSegment,
6819        format: GstFormat,
6820        running_time: u64,
6821    ) -> u64;
6822    pub fn gst_segment_to_running_time(
6823        segment: *const GstSegment,
6824        format: GstFormat,
6825        position: u64,
6826    ) -> u64;
6827    pub fn gst_segment_to_running_time_full(
6828        segment: *const GstSegment,
6829        format: GstFormat,
6830        position: u64,
6831        running_time: *mut u64,
6832    ) -> c_int;
6833    pub fn gst_segment_to_stream_time(
6834        segment: *const GstSegment,
6835        format: GstFormat,
6836        position: u64,
6837    ) -> u64;
6838    pub fn gst_segment_to_stream_time_full(
6839        segment: *const GstSegment,
6840        format: GstFormat,
6841        position: u64,
6842        stream_time: *mut u64,
6843    ) -> c_int;
6844
6845    //=========================================================================
6846    // GstStaticCaps
6847    //=========================================================================
6848    pub fn gst_static_caps_get_type() -> GType;
6849    pub fn gst_static_caps_cleanup(static_caps: *mut GstStaticCaps);
6850    pub fn gst_static_caps_get(static_caps: *mut GstStaticCaps) -> *mut GstCaps;
6851
6852    //=========================================================================
6853    // GstStaticPadTemplate
6854    //=========================================================================
6855    pub fn gst_static_pad_template_get_type() -> GType;
6856    pub fn gst_static_pad_template_get(
6857        pad_template: *mut GstStaticPadTemplate,
6858    ) -> *mut GstPadTemplate;
6859    pub fn gst_static_pad_template_get_caps(templ: *mut GstStaticPadTemplate) -> *mut GstCaps;
6860
6861    //=========================================================================
6862    // GstStructure
6863    //=========================================================================
6864    pub fn gst_structure_get_type() -> GType;
6865    pub fn gst_structure_from_string(
6866        string: *const c_char,
6867        end: *mut *mut c_char,
6868    ) -> *mut GstStructure;
6869    pub fn gst_structure_new(
6870        name: *const c_char,
6871        firstfield: *const c_char,
6872        ...
6873    ) -> *mut GstStructure;
6874    pub fn gst_structure_new_empty(name: *const c_char) -> *mut GstStructure;
6875    pub fn gst_structure_new_from_string(string: *const c_char) -> *mut GstStructure;
6876    pub fn gst_structure_new_id(
6877        name_quark: glib::GQuark,
6878        field_quark: glib::GQuark,
6879        ...
6880    ) -> *mut GstStructure;
6881    pub fn gst_structure_new_id_empty(quark: glib::GQuark) -> *mut GstStructure;
6882    #[cfg(feature = "v1_26")]
6883    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
6884    pub fn gst_structure_new_id_str(
6885        name: *const GstIdStr,
6886        fieldname: *const GstIdStr,
6887        ...
6888    ) -> *mut GstStructure;
6889    #[cfg(feature = "v1_26")]
6890    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
6891    pub fn gst_structure_new_id_str_empty(name: *const GstIdStr) -> *mut GstStructure;
6892    //#[cfg(feature = "v1_26")]
6893    //#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
6894    //pub fn gst_structure_new_id_str_valist(name: *const GstIdStr, firstfield: *const GstIdStr, varargs: /*Unimplemented*/va_list) -> *mut GstStructure;
6895    #[cfg(feature = "v1_26")]
6896    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
6897    pub fn gst_structure_new_static_str(
6898        name: *const c_char,
6899        firstfield: *const c_char,
6900        ...
6901    ) -> *mut GstStructure;
6902    #[cfg(feature = "v1_26")]
6903    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
6904    pub fn gst_structure_new_static_str_empty(name: *const c_char) -> *mut GstStructure;
6905    //#[cfg(feature = "v1_26")]
6906    //#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
6907    //pub fn gst_structure_new_static_str_valist(name: *const c_char, firstfield: *const c_char, varargs: /*Unimplemented*/va_list) -> *mut GstStructure;
6908    //pub fn gst_structure_new_valist(name: *const c_char, firstfield: *const c_char, varargs: /*Unimplemented*/va_list) -> *mut GstStructure;
6909    pub fn gst_structure_can_intersect(
6910        struct1: *const GstStructure,
6911        struct2: *const GstStructure,
6912    ) -> gboolean;
6913    pub fn gst_structure_copy(structure: *const GstStructure) -> *mut GstStructure;
6914    pub fn gst_structure_filter_and_map_in_place(
6915        structure: *mut GstStructure,
6916        func: GstStructureFilterMapFunc,
6917        user_data: gpointer,
6918    );
6919    #[cfg(feature = "v1_26")]
6920    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
6921    pub fn gst_structure_filter_and_map_in_place_id_str(
6922        structure: *mut GstStructure,
6923        func: GstStructureFilterMapIdStrFunc,
6924        user_data: gpointer,
6925    );
6926    pub fn gst_structure_fixate(structure: *mut GstStructure);
6927    pub fn gst_structure_fixate_field(
6928        structure: *mut GstStructure,
6929        field_name: *const c_char,
6930    ) -> gboolean;
6931    pub fn gst_structure_fixate_field_boolean(
6932        structure: *mut GstStructure,
6933        field_name: *const c_char,
6934        target: gboolean,
6935    ) -> gboolean;
6936    pub fn gst_structure_fixate_field_nearest_double(
6937        structure: *mut GstStructure,
6938        field_name: *const c_char,
6939        target: c_double,
6940    ) -> gboolean;
6941    pub fn gst_structure_fixate_field_nearest_fraction(
6942        structure: *mut GstStructure,
6943        field_name: *const c_char,
6944        target_numerator: c_int,
6945        target_denominator: c_int,
6946    ) -> gboolean;
6947    pub fn gst_structure_fixate_field_nearest_int(
6948        structure: *mut GstStructure,
6949        field_name: *const c_char,
6950        target: c_int,
6951    ) -> gboolean;
6952    pub fn gst_structure_fixate_field_string(
6953        structure: *mut GstStructure,
6954        field_name: *const c_char,
6955        target: *const c_char,
6956    ) -> gboolean;
6957    pub fn gst_structure_foreach(
6958        structure: *const GstStructure,
6959        func: GstStructureForeachFunc,
6960        user_data: gpointer,
6961    ) -> gboolean;
6962    #[cfg(feature = "v1_26")]
6963    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
6964    pub fn gst_structure_foreach_id_str(
6965        structure: *const GstStructure,
6966        func: GstStructureForeachIdStrFunc,
6967        user_data: gpointer,
6968    ) -> gboolean;
6969    pub fn gst_structure_free(structure: *mut GstStructure);
6970    pub fn gst_structure_get(
6971        structure: *const GstStructure,
6972        first_fieldname: *const c_char,
6973        ...
6974    ) -> gboolean;
6975    pub fn gst_structure_get_array(
6976        structure: *mut GstStructure,
6977        fieldname: *const c_char,
6978        array: *mut *mut gobject::GValueArray,
6979    ) -> gboolean;
6980    pub fn gst_structure_get_boolean(
6981        structure: *const GstStructure,
6982        fieldname: *const c_char,
6983        value: *mut gboolean,
6984    ) -> gboolean;
6985    #[cfg(feature = "v1_28")]
6986    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
6987    pub fn gst_structure_get_caps(
6988        structure: *const GstStructure,
6989        fieldname: *const c_char,
6990        caps: *mut *const GstCaps,
6991    ) -> gboolean;
6992    pub fn gst_structure_get_clock_time(
6993        structure: *const GstStructure,
6994        fieldname: *const c_char,
6995        value: *mut GstClockTime,
6996    ) -> gboolean;
6997    pub fn gst_structure_get_date(
6998        structure: *const GstStructure,
6999        fieldname: *const c_char,
7000        value: *mut *mut glib::GDate,
7001    ) -> gboolean;
7002    pub fn gst_structure_get_date_time(
7003        structure: *const GstStructure,
7004        fieldname: *const c_char,
7005        value: *mut *mut GstDateTime,
7006    ) -> gboolean;
7007    pub fn gst_structure_get_double(
7008        structure: *const GstStructure,
7009        fieldname: *const c_char,
7010        value: *mut c_double,
7011    ) -> gboolean;
7012    pub fn gst_structure_get_enum(
7013        structure: *const GstStructure,
7014        fieldname: *const c_char,
7015        enumtype: GType,
7016        value: *mut c_int,
7017    ) -> gboolean;
7018    pub fn gst_structure_get_field_type(
7019        structure: *const GstStructure,
7020        fieldname: *const c_char,
7021    ) -> GType;
7022    #[cfg(feature = "v1_22")]
7023    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
7024    pub fn gst_structure_get_flags(
7025        structure: *const GstStructure,
7026        fieldname: *const c_char,
7027        flags_type: GType,
7028        value: *mut c_uint,
7029    ) -> gboolean;
7030    pub fn gst_structure_get_flagset(
7031        structure: *const GstStructure,
7032        fieldname: *const c_char,
7033        value_flags: *mut c_uint,
7034        value_mask: *mut c_uint,
7035    ) -> gboolean;
7036    pub fn gst_structure_get_fraction(
7037        structure: *const GstStructure,
7038        fieldname: *const c_char,
7039        value_numerator: *mut c_int,
7040        value_denominator: *mut c_int,
7041    ) -> gboolean;
7042    pub fn gst_structure_get_int(
7043        structure: *const GstStructure,
7044        fieldname: *const c_char,
7045        value: *mut c_int,
7046    ) -> gboolean;
7047    pub fn gst_structure_get_int64(
7048        structure: *const GstStructure,
7049        fieldname: *const c_char,
7050        value: *mut i64,
7051    ) -> gboolean;
7052    pub fn gst_structure_get_list(
7053        structure: *mut GstStructure,
7054        fieldname: *const c_char,
7055        array: *mut *mut gobject::GValueArray,
7056    ) -> gboolean;
7057    pub fn gst_structure_get_name(structure: *const GstStructure) -> *const c_char;
7058    pub fn gst_structure_get_name_id(structure: *const GstStructure) -> glib::GQuark;
7059    #[cfg(feature = "v1_26")]
7060    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7061    pub fn gst_structure_get_name_id_str(structure: *const GstStructure) -> *const GstIdStr;
7062    pub fn gst_structure_get_string(
7063        structure: *const GstStructure,
7064        fieldname: *const c_char,
7065    ) -> *const c_char;
7066    pub fn gst_structure_get_uint(
7067        structure: *const GstStructure,
7068        fieldname: *const c_char,
7069        value: *mut c_uint,
7070    ) -> gboolean;
7071    pub fn gst_structure_get_uint64(
7072        structure: *const GstStructure,
7073        fieldname: *const c_char,
7074        value: *mut u64,
7075    ) -> gboolean;
7076    //pub fn gst_structure_get_valist(structure: *const GstStructure, first_fieldname: *const c_char, args: /*Unimplemented*/va_list) -> gboolean;
7077    pub fn gst_structure_get_value(
7078        structure: *const GstStructure,
7079        fieldname: *const c_char,
7080    ) -> *const gobject::GValue;
7081    pub fn gst_structure_has_field(
7082        structure: *const GstStructure,
7083        fieldname: *const c_char,
7084    ) -> gboolean;
7085    pub fn gst_structure_has_field_typed(
7086        structure: *const GstStructure,
7087        fieldname: *const c_char,
7088        type_: GType,
7089    ) -> gboolean;
7090    pub fn gst_structure_has_name(structure: *const GstStructure, name: *const c_char) -> gboolean;
7091    pub fn gst_structure_id_get(
7092        structure: *const GstStructure,
7093        first_field_id: glib::GQuark,
7094        ...
7095    ) -> gboolean;
7096    //pub fn gst_structure_id_get_valist(structure: *const GstStructure, first_field_id: glib::GQuark, args: /*Unimplemented*/va_list) -> gboolean;
7097    pub fn gst_structure_id_get_value(
7098        structure: *const GstStructure,
7099        field: glib::GQuark,
7100    ) -> *const gobject::GValue;
7101    pub fn gst_structure_id_has_field(
7102        structure: *const GstStructure,
7103        field: glib::GQuark,
7104    ) -> gboolean;
7105    pub fn gst_structure_id_has_field_typed(
7106        structure: *const GstStructure,
7107        field: glib::GQuark,
7108        type_: GType,
7109    ) -> gboolean;
7110    pub fn gst_structure_id_set(structure: *mut GstStructure, fieldname: glib::GQuark, ...);
7111    //pub fn gst_structure_id_set_valist(structure: *mut GstStructure, fieldname: glib::GQuark, varargs: /*Unimplemented*/va_list);
7112    pub fn gst_structure_id_set_value(
7113        structure: *mut GstStructure,
7114        field: glib::GQuark,
7115        value: *const gobject::GValue,
7116    );
7117    #[cfg(feature = "v1_26")]
7118    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7119    pub fn gst_structure_id_str_get(
7120        structure: *const GstStructure,
7121        first_fieldname: *const GstIdStr,
7122        ...
7123    ) -> gboolean;
7124    #[cfg(feature = "v1_26")]
7125    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7126    pub fn gst_structure_id_str_get_field_type(
7127        structure: *const GstStructure,
7128        fieldname: *const GstIdStr,
7129    ) -> GType;
7130    //#[cfg(feature = "v1_26")]
7131    //#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7132    //pub fn gst_structure_id_str_get_valist(structure: *const GstStructure, first_fieldname: *const GstIdStr, args: /*Unimplemented*/va_list) -> gboolean;
7133    #[cfg(feature = "v1_26")]
7134    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7135    pub fn gst_structure_id_str_get_value(
7136        structure: *const GstStructure,
7137        fieldname: *const GstIdStr,
7138    ) -> *const gobject::GValue;
7139    #[cfg(feature = "v1_26")]
7140    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7141    pub fn gst_structure_id_str_has_field(
7142        structure: *const GstStructure,
7143        fieldname: *const GstIdStr,
7144    ) -> gboolean;
7145    #[cfg(feature = "v1_26")]
7146    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7147    pub fn gst_structure_id_str_has_field_typed(
7148        structure: *const GstStructure,
7149        fieldname: *const GstIdStr,
7150        type_: GType,
7151    ) -> gboolean;
7152    #[cfg(feature = "v1_26")]
7153    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7154    pub fn gst_structure_id_str_nth_field_name(
7155        structure: *const GstStructure,
7156        index: c_uint,
7157    ) -> *const GstIdStr;
7158    #[cfg(feature = "v1_26")]
7159    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7160    pub fn gst_structure_id_str_remove_field(
7161        structure: *mut GstStructure,
7162        fieldname: *const GstIdStr,
7163    );
7164    #[cfg(feature = "v1_26")]
7165    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7166    pub fn gst_structure_id_str_remove_fields(
7167        structure: *mut GstStructure,
7168        fieldname: *const GstIdStr,
7169        ...
7170    );
7171    //#[cfg(feature = "v1_26")]
7172    //#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7173    //pub fn gst_structure_id_str_remove_fields_valist(structure: *mut GstStructure, fieldname: *const GstIdStr, varargs: /*Unimplemented*/va_list);
7174    #[cfg(feature = "v1_26")]
7175    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7176    pub fn gst_structure_id_str_set(structure: *mut GstStructure, fieldname: *const GstIdStr, ...);
7177    //#[cfg(feature = "v1_26")]
7178    //#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7179    //pub fn gst_structure_id_str_set_valist(structure: *mut GstStructure, fieldname: *const GstIdStr, varargs: /*Unimplemented*/va_list);
7180    #[cfg(feature = "v1_26")]
7181    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7182    pub fn gst_structure_id_str_set_value(
7183        structure: *mut GstStructure,
7184        fieldname: *const GstIdStr,
7185        value: *const gobject::GValue,
7186    );
7187    #[cfg(feature = "v1_26")]
7188    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7189    pub fn gst_structure_id_str_take_value(
7190        structure: *mut GstStructure,
7191        fieldname: *const GstIdStr,
7192        value: *mut gobject::GValue,
7193    );
7194    pub fn gst_structure_id_take_value(
7195        structure: *mut GstStructure,
7196        field: glib::GQuark,
7197        value: *mut gobject::GValue,
7198    );
7199    pub fn gst_structure_intersect(
7200        struct1: *const GstStructure,
7201        struct2: *const GstStructure,
7202    ) -> *mut GstStructure;
7203    pub fn gst_structure_is_equal(
7204        structure1: *const GstStructure,
7205        structure2: *const GstStructure,
7206    ) -> gboolean;
7207    pub fn gst_structure_is_subset(
7208        subset: *const GstStructure,
7209        superset: *const GstStructure,
7210    ) -> gboolean;
7211    #[cfg(feature = "v1_28")]
7212    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
7213    pub fn gst_structure_is_writable(structure: *const GstStructure) -> gboolean;
7214    pub fn gst_structure_map_in_place(
7215        structure: *mut GstStructure,
7216        func: GstStructureMapFunc,
7217        user_data: gpointer,
7218    ) -> gboolean;
7219    #[cfg(feature = "v1_26")]
7220    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7221    pub fn gst_structure_map_in_place_id_str(
7222        structure: *mut GstStructure,
7223        func: GstStructureMapIdStrFunc,
7224        user_data: gpointer,
7225    ) -> gboolean;
7226    pub fn gst_structure_n_fields(structure: *const GstStructure) -> c_int;
7227    pub fn gst_structure_nth_field_name(
7228        structure: *const GstStructure,
7229        index: c_uint,
7230    ) -> *const c_char;
7231    pub fn gst_structure_remove_all_fields(structure: *mut GstStructure);
7232    pub fn gst_structure_remove_field(structure: *mut GstStructure, fieldname: *const c_char);
7233    pub fn gst_structure_remove_fields(structure: *mut GstStructure, fieldname: *const c_char, ...);
7234    //pub fn gst_structure_remove_fields_valist(structure: *mut GstStructure, fieldname: *const c_char, varargs: /*Unimplemented*/va_list);
7235    #[cfg(feature = "v1_20")]
7236    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
7237    pub fn gst_structure_serialize(
7238        structure: *const GstStructure,
7239        flags: GstSerializeFlags,
7240    ) -> *mut c_char;
7241    #[cfg(feature = "v1_24")]
7242    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
7243    pub fn gst_structure_serialize_full(
7244        structure: *const GstStructure,
7245        flags: GstSerializeFlags,
7246    ) -> *mut c_char;
7247    pub fn gst_structure_set(structure: *mut GstStructure, fieldname: *const c_char, ...);
7248    pub fn gst_structure_set_array(
7249        structure: *mut GstStructure,
7250        fieldname: *const c_char,
7251        array: *const gobject::GValueArray,
7252    );
7253    pub fn gst_structure_set_list(
7254        structure: *mut GstStructure,
7255        fieldname: *const c_char,
7256        array: *const gobject::GValueArray,
7257    );
7258    pub fn gst_structure_set_name(structure: *mut GstStructure, name: *const c_char);
7259    #[cfg(feature = "v1_26")]
7260    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7261    pub fn gst_structure_set_name_id_str(structure: *mut GstStructure, name: *const GstIdStr);
7262    #[cfg(feature = "v1_26")]
7263    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7264    pub fn gst_structure_set_name_static_str(structure: *mut GstStructure, name: *const c_char);
7265    pub fn gst_structure_set_parent_refcount(
7266        structure: *mut GstStructure,
7267        refcount: *mut c_int,
7268    ) -> gboolean;
7269    #[cfg(feature = "v1_26")]
7270    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7271    pub fn gst_structure_set_static_str(
7272        structure: *mut GstStructure,
7273        fieldname: *const c_char,
7274        ...
7275    );
7276    //#[cfg(feature = "v1_26")]
7277    //#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7278    //pub fn gst_structure_set_static_str_valist(structure: *mut GstStructure, fieldname: *const c_char, varargs: /*Unimplemented*/va_list);
7279    //pub fn gst_structure_set_valist(structure: *mut GstStructure, fieldname: *const c_char, varargs: /*Unimplemented*/va_list);
7280    pub fn gst_structure_set_value(
7281        structure: *mut GstStructure,
7282        fieldname: *const c_char,
7283        value: *const gobject::GValue,
7284    );
7285    #[cfg(feature = "v1_26")]
7286    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7287    pub fn gst_structure_set_value_static_str(
7288        structure: *mut GstStructure,
7289        fieldname: *const c_char,
7290        value: *const gobject::GValue,
7291    );
7292    pub fn gst_structure_take_value(
7293        structure: *mut GstStructure,
7294        fieldname: *const c_char,
7295        value: *mut gobject::GValue,
7296    );
7297    #[cfg(feature = "v1_26")]
7298    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7299    pub fn gst_structure_take_value_static_str(
7300        structure: *mut GstStructure,
7301        fieldname: *const c_char,
7302        value: *mut gobject::GValue,
7303    );
7304    pub fn gst_structure_to_string(structure: *const GstStructure) -> *mut c_char;
7305    #[cfg(feature = "v1_18")]
7306    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
7307    pub fn gst_structure_take(
7308        oldstr_ptr: *mut *mut GstStructure,
7309        newstr: *mut GstStructure,
7310    ) -> gboolean;
7311
7312    //=========================================================================
7313    // GstTagList
7314    //=========================================================================
7315    pub fn gst_tag_list_get_type() -> GType;
7316    pub fn gst_tag_list_new(tag: *const c_char, ...) -> *mut GstTagList;
7317    pub fn gst_tag_list_new_empty() -> *mut GstTagList;
7318    pub fn gst_tag_list_new_from_string(str: *const c_char) -> *mut GstTagList;
7319    //pub fn gst_tag_list_new_valist(var_args: /*Unimplemented*/va_list) -> *mut GstTagList;
7320    pub fn gst_tag_list_add(list: *mut GstTagList, mode: GstTagMergeMode, tag: *const c_char, ...);
7321    //pub fn gst_tag_list_add_valist(list: *mut GstTagList, mode: GstTagMergeMode, tag: *const c_char, var_args: /*Unimplemented*/va_list);
7322    //pub fn gst_tag_list_add_valist_values(list: *mut GstTagList, mode: GstTagMergeMode, tag: *const c_char, var_args: /*Unimplemented*/va_list);
7323    pub fn gst_tag_list_add_value(
7324        list: *mut GstTagList,
7325        mode: GstTagMergeMode,
7326        tag: *const c_char,
7327        value: *const gobject::GValue,
7328    );
7329    pub fn gst_tag_list_add_values(
7330        list: *mut GstTagList,
7331        mode: GstTagMergeMode,
7332        tag: *const c_char,
7333        ...
7334    );
7335    #[cfg(feature = "v1_18_3")]
7336    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
7337    pub fn gst_tag_list_copy(taglist: *const GstTagList) -> *mut GstTagList;
7338    pub fn gst_tag_list_foreach(
7339        list: *const GstTagList,
7340        func: GstTagForeachFunc,
7341        user_data: gpointer,
7342    );
7343    pub fn gst_tag_list_get_boolean(
7344        list: *const GstTagList,
7345        tag: *const c_char,
7346        value: *mut gboolean,
7347    ) -> gboolean;
7348    pub fn gst_tag_list_get_boolean_index(
7349        list: *const GstTagList,
7350        tag: *const c_char,
7351        index: c_uint,
7352        value: *mut gboolean,
7353    ) -> gboolean;
7354    pub fn gst_tag_list_get_date(
7355        list: *const GstTagList,
7356        tag: *const c_char,
7357        value: *mut *mut glib::GDate,
7358    ) -> gboolean;
7359    pub fn gst_tag_list_get_date_index(
7360        list: *const GstTagList,
7361        tag: *const c_char,
7362        index: c_uint,
7363        value: *mut *mut glib::GDate,
7364    ) -> gboolean;
7365    pub fn gst_tag_list_get_date_time(
7366        list: *const GstTagList,
7367        tag: *const c_char,
7368        value: *mut *mut GstDateTime,
7369    ) -> gboolean;
7370    pub fn gst_tag_list_get_date_time_index(
7371        list: *const GstTagList,
7372        tag: *const c_char,
7373        index: c_uint,
7374        value: *mut *mut GstDateTime,
7375    ) -> gboolean;
7376    pub fn gst_tag_list_get_double(
7377        list: *const GstTagList,
7378        tag: *const c_char,
7379        value: *mut c_double,
7380    ) -> gboolean;
7381    pub fn gst_tag_list_get_double_index(
7382        list: *const GstTagList,
7383        tag: *const c_char,
7384        index: c_uint,
7385        value: *mut c_double,
7386    ) -> gboolean;
7387    pub fn gst_tag_list_get_float(
7388        list: *const GstTagList,
7389        tag: *const c_char,
7390        value: *mut c_float,
7391    ) -> gboolean;
7392    pub fn gst_tag_list_get_float_index(
7393        list: *const GstTagList,
7394        tag: *const c_char,
7395        index: c_uint,
7396        value: *mut c_float,
7397    ) -> gboolean;
7398    pub fn gst_tag_list_get_int(
7399        list: *const GstTagList,
7400        tag: *const c_char,
7401        value: *mut c_int,
7402    ) -> gboolean;
7403    pub fn gst_tag_list_get_int64(
7404        list: *const GstTagList,
7405        tag: *const c_char,
7406        value: *mut i64,
7407    ) -> gboolean;
7408    pub fn gst_tag_list_get_int64_index(
7409        list: *const GstTagList,
7410        tag: *const c_char,
7411        index: c_uint,
7412        value: *mut i64,
7413    ) -> gboolean;
7414    pub fn gst_tag_list_get_int_index(
7415        list: *const GstTagList,
7416        tag: *const c_char,
7417        index: c_uint,
7418        value: *mut c_int,
7419    ) -> gboolean;
7420    pub fn gst_tag_list_get_pointer(
7421        list: *const GstTagList,
7422        tag: *const c_char,
7423        value: *mut gpointer,
7424    ) -> gboolean;
7425    pub fn gst_tag_list_get_pointer_index(
7426        list: *const GstTagList,
7427        tag: *const c_char,
7428        index: c_uint,
7429        value: *mut gpointer,
7430    ) -> gboolean;
7431    pub fn gst_tag_list_get_sample(
7432        list: *const GstTagList,
7433        tag: *const c_char,
7434        sample: *mut *mut GstSample,
7435    ) -> gboolean;
7436    pub fn gst_tag_list_get_sample_index(
7437        list: *const GstTagList,
7438        tag: *const c_char,
7439        index: c_uint,
7440        sample: *mut *mut GstSample,
7441    ) -> gboolean;
7442    pub fn gst_tag_list_get_scope(list: *const GstTagList) -> GstTagScope;
7443    pub fn gst_tag_list_get_string(
7444        list: *const GstTagList,
7445        tag: *const c_char,
7446        value: *mut *mut c_char,
7447    ) -> gboolean;
7448    pub fn gst_tag_list_get_string_index(
7449        list: *const GstTagList,
7450        tag: *const c_char,
7451        index: c_uint,
7452        value: *mut *mut c_char,
7453    ) -> gboolean;
7454    pub fn gst_tag_list_get_tag_size(list: *const GstTagList, tag: *const c_char) -> c_uint;
7455    pub fn gst_tag_list_get_uint(
7456        list: *const GstTagList,
7457        tag: *const c_char,
7458        value: *mut c_uint,
7459    ) -> gboolean;
7460    pub fn gst_tag_list_get_uint64(
7461        list: *const GstTagList,
7462        tag: *const c_char,
7463        value: *mut u64,
7464    ) -> gboolean;
7465    pub fn gst_tag_list_get_uint64_index(
7466        list: *const GstTagList,
7467        tag: *const c_char,
7468        index: c_uint,
7469        value: *mut u64,
7470    ) -> gboolean;
7471    pub fn gst_tag_list_get_uint_index(
7472        list: *const GstTagList,
7473        tag: *const c_char,
7474        index: c_uint,
7475        value: *mut c_uint,
7476    ) -> gboolean;
7477    pub fn gst_tag_list_get_value_index(
7478        list: *const GstTagList,
7479        tag: *const c_char,
7480        index: c_uint,
7481    ) -> *const gobject::GValue;
7482    pub fn gst_tag_list_insert(
7483        into: *mut GstTagList,
7484        from: *const GstTagList,
7485        mode: GstTagMergeMode,
7486    );
7487    pub fn gst_tag_list_is_empty(list: *const GstTagList) -> gboolean;
7488    pub fn gst_tag_list_is_equal(list1: *const GstTagList, list2: *const GstTagList) -> gboolean;
7489    pub fn gst_tag_list_is_writable(taglist: *const GstTagList) -> gboolean;
7490    pub fn gst_tag_list_make_writable(taglist: *mut GstTagList) -> *mut GstTagList;
7491    pub fn gst_tag_list_merge(
7492        list1: *const GstTagList,
7493        list2: *const GstTagList,
7494        mode: GstTagMergeMode,
7495    ) -> *mut GstTagList;
7496    pub fn gst_tag_list_n_tags(list: *const GstTagList) -> c_int;
7497    pub fn gst_tag_list_nth_tag_name(list: *const GstTagList, index: c_uint) -> *const c_char;
7498    pub fn gst_tag_list_peek_string_index(
7499        list: *const GstTagList,
7500        tag: *const c_char,
7501        index: c_uint,
7502        value: *mut *const c_char,
7503    ) -> gboolean;
7504    #[cfg(feature = "v1_18_3")]
7505    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
7506    pub fn gst_tag_list_ref(taglist: *mut GstTagList) -> *mut GstTagList;
7507    pub fn gst_tag_list_remove_tag(list: *mut GstTagList, tag: *const c_char);
7508    pub fn gst_tag_list_set_scope(list: *mut GstTagList, scope: GstTagScope);
7509    pub fn gst_tag_list_to_string(list: *const GstTagList) -> *mut c_char;
7510    #[cfg(feature = "v1_18_3")]
7511    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
7512    pub fn gst_tag_list_unref(taglist: *mut GstTagList);
7513    pub fn gst_tag_list_copy_value(
7514        dest: *mut gobject::GValue,
7515        list: *const GstTagList,
7516        tag: *const c_char,
7517    ) -> gboolean;
7518    #[cfg(feature = "v1_18_3")]
7519    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
7520    pub fn gst_tag_list_replace(
7521        old_taglist: *mut *mut GstTagList,
7522        new_taglist: *mut GstTagList,
7523    ) -> gboolean;
7524    #[cfg(feature = "v1_18_3")]
7525    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
7526    pub fn gst_tag_list_take(
7527        old_taglist: *mut *mut GstTagList,
7528        new_taglist: *mut GstTagList,
7529    ) -> gboolean;
7530
7531    //=========================================================================
7532    // GstToc
7533    //=========================================================================
7534    pub fn gst_toc_get_type() -> GType;
7535    pub fn gst_toc_new(scope: GstTocScope) -> *mut GstToc;
7536    pub fn gst_toc_append_entry(toc: *mut GstToc, entry: *mut GstTocEntry);
7537    pub fn gst_toc_dump(toc: *mut GstToc);
7538    pub fn gst_toc_find_entry(toc: *const GstToc, uid: *const c_char) -> *mut GstTocEntry;
7539    pub fn gst_toc_get_entries(toc: *const GstToc) -> *mut glib::GList;
7540    pub fn gst_toc_get_scope(toc: *const GstToc) -> GstTocScope;
7541    pub fn gst_toc_get_tags(toc: *const GstToc) -> *mut GstTagList;
7542    pub fn gst_toc_merge_tags(toc: *mut GstToc, tags: *mut GstTagList, mode: GstTagMergeMode);
7543    pub fn gst_toc_set_tags(toc: *mut GstToc, tags: *mut GstTagList);
7544
7545    //=========================================================================
7546    // GstTocEntry
7547    //=========================================================================
7548    pub fn gst_toc_entry_get_type() -> GType;
7549    pub fn gst_toc_entry_new(type_: GstTocEntryType, uid: *const c_char) -> *mut GstTocEntry;
7550    pub fn gst_toc_entry_append_sub_entry(entry: *mut GstTocEntry, subentry: *mut GstTocEntry);
7551    pub fn gst_toc_entry_get_entry_type(entry: *const GstTocEntry) -> GstTocEntryType;
7552    pub fn gst_toc_entry_get_loop(
7553        entry: *const GstTocEntry,
7554        loop_type: *mut GstTocLoopType,
7555        repeat_count: *mut c_int,
7556    ) -> gboolean;
7557    pub fn gst_toc_entry_get_parent(entry: *mut GstTocEntry) -> *mut GstTocEntry;
7558    pub fn gst_toc_entry_get_start_stop_times(
7559        entry: *const GstTocEntry,
7560        start: *mut i64,
7561        stop: *mut i64,
7562    ) -> gboolean;
7563    pub fn gst_toc_entry_get_sub_entries(entry: *const GstTocEntry) -> *mut glib::GList;
7564    pub fn gst_toc_entry_get_tags(entry: *const GstTocEntry) -> *mut GstTagList;
7565    pub fn gst_toc_entry_get_toc(entry: *mut GstTocEntry) -> *mut GstToc;
7566    pub fn gst_toc_entry_get_uid(entry: *const GstTocEntry) -> *const c_char;
7567    pub fn gst_toc_entry_is_alternative(entry: *const GstTocEntry) -> gboolean;
7568    pub fn gst_toc_entry_is_sequence(entry: *const GstTocEntry) -> gboolean;
7569    pub fn gst_toc_entry_merge_tags(
7570        entry: *mut GstTocEntry,
7571        tags: *mut GstTagList,
7572        mode: GstTagMergeMode,
7573    );
7574    pub fn gst_toc_entry_set_loop(
7575        entry: *mut GstTocEntry,
7576        loop_type: GstTocLoopType,
7577        repeat_count: c_int,
7578    );
7579    pub fn gst_toc_entry_set_start_stop_times(entry: *mut GstTocEntry, start: i64, stop: i64);
7580    pub fn gst_toc_entry_set_tags(entry: *mut GstTocEntry, tags: *mut GstTagList);
7581
7582    //=========================================================================
7583    // GstTracerClass
7584    //=========================================================================
7585    #[cfg(feature = "v1_26")]
7586    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7587    pub fn gst_tracer_class_set_use_structure_params(
7588        tracer_class: *mut GstTracerClass,
7589        use_structure_params: gboolean,
7590    );
7591    #[cfg(feature = "v1_26")]
7592    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7593    pub fn gst_tracer_class_uses_structure_params(tracer_class: *mut GstTracerClass) -> gboolean;
7594
7595    //=========================================================================
7596    // GstTypeFind
7597    //=========================================================================
7598    pub fn gst_type_find_get_type() -> GType;
7599    pub fn gst_type_find_get_length(find: *mut GstTypeFind) -> u64;
7600    pub fn gst_type_find_peek(find: *mut GstTypeFind, offset: i64, size: c_uint) -> *const u8;
7601    pub fn gst_type_find_suggest(find: *mut GstTypeFind, probability: c_uint, caps: *mut GstCaps);
7602    #[cfg(feature = "v1_20")]
7603    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
7604    pub fn gst_type_find_suggest_empty_simple(
7605        find: *mut GstTypeFind,
7606        probability: c_uint,
7607        media_type: *const c_char,
7608    );
7609    pub fn gst_type_find_suggest_simple(
7610        find: *mut GstTypeFind,
7611        probability: c_uint,
7612        media_type: *const c_char,
7613        fieldname: *const c_char,
7614        ...
7615    );
7616    pub fn gst_type_find_register(
7617        plugin: *mut GstPlugin,
7618        name: *const c_char,
7619        rank: c_uint,
7620        func: GstTypeFindFunction,
7621        extensions: *const c_char,
7622        possible_caps: *mut GstCaps,
7623        data: gpointer,
7624        data_notify: glib::GDestroyNotify,
7625    ) -> gboolean;
7626
7627    //=========================================================================
7628    // GstUri
7629    //=========================================================================
7630    pub fn gst_uri_get_type() -> GType;
7631    pub fn gst_uri_new(
7632        scheme: *const c_char,
7633        userinfo: *const c_char,
7634        host: *const c_char,
7635        port: c_uint,
7636        path: *const c_char,
7637        query: *const c_char,
7638        fragment: *const c_char,
7639    ) -> *mut GstUri;
7640    pub fn gst_uri_append_path(uri: *mut GstUri, relative_path: *const c_char) -> gboolean;
7641    pub fn gst_uri_append_path_segment(uri: *mut GstUri, path_segment: *const c_char) -> gboolean;
7642    #[cfg(feature = "v1_18_3")]
7643    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
7644    pub fn gst_uri_copy(uri: *const GstUri) -> *mut GstUri;
7645    pub fn gst_uri_equal(first: *const GstUri, second: *const GstUri) -> gboolean;
7646    pub fn gst_uri_from_string_with_base(base: *mut GstUri, uri: *const c_char) -> *mut GstUri;
7647    pub fn gst_uri_get_fragment(uri: *const GstUri) -> *const c_char;
7648    pub fn gst_uri_get_host(uri: *const GstUri) -> *const c_char;
7649    pub fn gst_uri_get_media_fragment_table(uri: *const GstUri) -> *mut glib::GHashTable;
7650    pub fn gst_uri_get_path(uri: *const GstUri) -> *mut c_char;
7651    pub fn gst_uri_get_path_segments(uri: *const GstUri) -> *mut glib::GList;
7652    pub fn gst_uri_get_path_string(uri: *const GstUri) -> *mut c_char;
7653    pub fn gst_uri_get_port(uri: *const GstUri) -> c_uint;
7654    pub fn gst_uri_get_query_keys(uri: *const GstUri) -> *mut glib::GList;
7655    pub fn gst_uri_get_query_string(uri: *const GstUri) -> *mut c_char;
7656    #[cfg(feature = "v1_24")]
7657    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
7658    pub fn gst_uri_get_query_string_ordered(
7659        uri: *const GstUri,
7660        keys: *const glib::GList,
7661    ) -> *mut c_char;
7662    pub fn gst_uri_get_query_table(uri: *const GstUri) -> *mut glib::GHashTable;
7663    pub fn gst_uri_get_query_value(uri: *const GstUri, query_key: *const c_char) -> *const c_char;
7664    pub fn gst_uri_get_scheme(uri: *const GstUri) -> *const c_char;
7665    pub fn gst_uri_get_userinfo(uri: *const GstUri) -> *const c_char;
7666    pub fn gst_uri_is_normalized(uri: *const GstUri) -> gboolean;
7667    pub fn gst_uri_is_writable(uri: *const GstUri) -> gboolean;
7668    pub fn gst_uri_join(base_uri: *mut GstUri, ref_uri: *mut GstUri) -> *mut GstUri;
7669    pub fn gst_uri_make_writable(uri: *mut GstUri) -> *mut GstUri;
7670    pub fn gst_uri_new_with_base(
7671        base: *mut GstUri,
7672        scheme: *const c_char,
7673        userinfo: *const c_char,
7674        host: *const c_char,
7675        port: c_uint,
7676        path: *const c_char,
7677        query: *const c_char,
7678        fragment: *const c_char,
7679    ) -> *mut GstUri;
7680    pub fn gst_uri_normalize(uri: *mut GstUri) -> gboolean;
7681    pub fn gst_uri_query_has_key(uri: *const GstUri, query_key: *const c_char) -> gboolean;
7682    #[cfg(feature = "v1_18_3")]
7683    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
7684    pub fn gst_uri_ref(uri: *mut GstUri) -> *mut GstUri;
7685    pub fn gst_uri_remove_query_key(uri: *mut GstUri, query_key: *const c_char) -> gboolean;
7686    pub fn gst_uri_set_fragment(uri: *mut GstUri, fragment: *const c_char) -> gboolean;
7687    pub fn gst_uri_set_host(uri: *mut GstUri, host: *const c_char) -> gboolean;
7688    pub fn gst_uri_set_path(uri: *mut GstUri, path: *const c_char) -> gboolean;
7689    pub fn gst_uri_set_path_segments(uri: *mut GstUri, path_segments: *mut glib::GList)
7690        -> gboolean;
7691    pub fn gst_uri_set_path_string(uri: *mut GstUri, path: *const c_char) -> gboolean;
7692    pub fn gst_uri_set_port(uri: *mut GstUri, port: c_uint) -> gboolean;
7693    pub fn gst_uri_set_query_string(uri: *mut GstUri, query: *const c_char) -> gboolean;
7694    pub fn gst_uri_set_query_table(
7695        uri: *mut GstUri,
7696        query_table: *mut glib::GHashTable,
7697    ) -> gboolean;
7698    pub fn gst_uri_set_query_value(
7699        uri: *mut GstUri,
7700        query_key: *const c_char,
7701        query_value: *const c_char,
7702    ) -> gboolean;
7703    pub fn gst_uri_set_scheme(uri: *mut GstUri, scheme: *const c_char) -> gboolean;
7704    pub fn gst_uri_set_userinfo(uri: *mut GstUri, userinfo: *const c_char) -> gboolean;
7705    pub fn gst_uri_to_string(uri: *const GstUri) -> *mut c_char;
7706    #[cfg(feature = "v1_24")]
7707    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
7708    pub fn gst_uri_to_string_with_keys(uri: *const GstUri, keys: *const glib::GList)
7709        -> *mut c_char;
7710    #[cfg(feature = "v1_18_3")]
7711    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
7712    pub fn gst_uri_unref(uri: *mut GstUri);
7713    pub fn gst_uri_construct(protocol: *const c_char, location: *const c_char) -> *mut c_char;
7714    pub fn gst_uri_from_string(uri: *const c_char) -> *mut GstUri;
7715    #[cfg(feature = "v1_18")]
7716    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
7717    pub fn gst_uri_from_string_escaped(uri: *const c_char) -> *mut GstUri;
7718    pub fn gst_uri_get_location(uri: *const c_char) -> *mut c_char;
7719    pub fn gst_uri_get_protocol(uri: *const c_char) -> *mut c_char;
7720    pub fn gst_uri_has_protocol(uri: *const c_char, protocol: *const c_char) -> gboolean;
7721    pub fn gst_uri_is_valid(uri: *const c_char) -> gboolean;
7722    pub fn gst_uri_join_strings(base_uri: *const c_char, ref_uri: *const c_char) -> *mut c_char;
7723    pub fn gst_uri_protocol_is_supported(type_: GstURIType, protocol: *const c_char) -> gboolean;
7724    pub fn gst_uri_protocol_is_valid(protocol: *const c_char) -> gboolean;
7725
7726    //=========================================================================
7727    // GstVecDeque
7728    //=========================================================================
7729    #[cfg(feature = "v1_26")]
7730    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7731    pub fn gst_vec_deque_clear(array: *mut GstVecDeque);
7732    #[cfg(feature = "v1_26")]
7733    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7734    pub fn gst_vec_deque_drop_element(array: *mut GstVecDeque, idx: size_t) -> gpointer;
7735    #[cfg(feature = "v1_26")]
7736    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7737    pub fn gst_vec_deque_drop_struct(
7738        array: *mut GstVecDeque,
7739        idx: size_t,
7740        p_struct: gpointer,
7741    ) -> gboolean;
7742    #[cfg(feature = "v1_26")]
7743    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7744    pub fn gst_vec_deque_find(
7745        array: *mut GstVecDeque,
7746        func: glib::GCompareFunc,
7747        data: gpointer,
7748    ) -> size_t;
7749    #[cfg(feature = "v1_26")]
7750    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7751    pub fn gst_vec_deque_free(array: *mut GstVecDeque);
7752    #[cfg(feature = "v1_26")]
7753    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7754    pub fn gst_vec_deque_get_length(array: *mut GstVecDeque) -> size_t;
7755    #[cfg(feature = "v1_26")]
7756    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7757    pub fn gst_vec_deque_is_empty(array: *mut GstVecDeque) -> gboolean;
7758    #[cfg(feature = "v1_26")]
7759    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7760    pub fn gst_vec_deque_peek_head(array: *mut GstVecDeque) -> gpointer;
7761    #[cfg(feature = "v1_26")]
7762    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7763    pub fn gst_vec_deque_peek_head_struct(array: *mut GstVecDeque) -> gpointer;
7764    #[cfg(feature = "v1_26")]
7765    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7766    pub fn gst_vec_deque_peek_nth(array: *mut GstVecDeque, idx: size_t) -> gpointer;
7767    #[cfg(feature = "v1_26")]
7768    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7769    pub fn gst_vec_deque_peek_nth_struct(array: *mut GstVecDeque, idx: size_t) -> gpointer;
7770    #[cfg(feature = "v1_26")]
7771    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7772    pub fn gst_vec_deque_peek_tail(array: *mut GstVecDeque) -> gpointer;
7773    #[cfg(feature = "v1_26")]
7774    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7775    pub fn gst_vec_deque_peek_tail_struct(array: *mut GstVecDeque) -> gpointer;
7776    #[cfg(feature = "v1_26")]
7777    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7778    pub fn gst_vec_deque_pop_head(array: *mut GstVecDeque) -> gpointer;
7779    #[cfg(feature = "v1_26")]
7780    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7781    pub fn gst_vec_deque_pop_head_struct(array: *mut GstVecDeque) -> gpointer;
7782    #[cfg(feature = "v1_26")]
7783    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7784    pub fn gst_vec_deque_pop_tail(array: *mut GstVecDeque) -> gpointer;
7785    #[cfg(feature = "v1_26")]
7786    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7787    pub fn gst_vec_deque_pop_tail_struct(array: *mut GstVecDeque) -> gpointer;
7788    #[cfg(feature = "v1_26")]
7789    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7790    pub fn gst_vec_deque_push_sorted(
7791        array: *mut GstVecDeque,
7792        data: gpointer,
7793        func: glib::GCompareDataFunc,
7794        user_data: gpointer,
7795    );
7796    #[cfg(feature = "v1_26")]
7797    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7798    pub fn gst_vec_deque_push_sorted_struct(
7799        array: *mut GstVecDeque,
7800        p_struct: gpointer,
7801        func: glib::GCompareDataFunc,
7802        user_data: gpointer,
7803    );
7804    #[cfg(feature = "v1_26")]
7805    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7806    pub fn gst_vec_deque_push_tail(array: *mut GstVecDeque, data: gpointer);
7807    #[cfg(feature = "v1_26")]
7808    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7809    pub fn gst_vec_deque_push_tail_struct(array: *mut GstVecDeque, p_struct: gpointer);
7810    #[cfg(feature = "v1_26")]
7811    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7812    pub fn gst_vec_deque_set_clear_func(array: *mut GstVecDeque, clear_func: glib::GDestroyNotify);
7813    #[cfg(feature = "v1_26")]
7814    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7815    pub fn gst_vec_deque_sort(
7816        array: *mut GstVecDeque,
7817        compare_func: glib::GCompareDataFunc,
7818        user_data: gpointer,
7819    );
7820    #[cfg(feature = "v1_26")]
7821    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7822    pub fn gst_vec_deque_new(initial_size: size_t) -> *mut GstVecDeque;
7823    #[cfg(feature = "v1_26")]
7824    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
7825    pub fn gst_vec_deque_new_for_struct(
7826        struct_size: size_t,
7827        initial_size: size_t,
7828    ) -> *mut GstVecDeque;
7829
7830    //=========================================================================
7831    // GstAllocator
7832    //=========================================================================
7833    pub fn gst_allocator_get_type() -> GType;
7834    pub fn gst_allocator_find(name: *const c_char) -> *mut GstAllocator;
7835    pub fn gst_allocator_register(name: *const c_char, allocator: *mut GstAllocator);
7836    pub fn gst_allocator_alloc(
7837        allocator: *mut GstAllocator,
7838        size: size_t,
7839        params: *mut GstAllocationParams,
7840    ) -> *mut GstMemory;
7841    pub fn gst_allocator_free(allocator: *mut GstAllocator, memory: *mut GstMemory);
7842    pub fn gst_allocator_set_default(allocator: *mut GstAllocator);
7843
7844    //=========================================================================
7845    // GstBin
7846    //=========================================================================
7847    pub fn gst_bin_get_type() -> GType;
7848    pub fn gst_bin_new(name: *const c_char) -> *mut GstElement;
7849    pub fn gst_bin_add(bin: *mut GstBin, element: *mut GstElement) -> gboolean;
7850    pub fn gst_bin_add_many(bin: *mut GstBin, element_1: *mut GstElement, ...);
7851    pub fn gst_bin_find_unlinked_pad(bin: *mut GstBin, direction: GstPadDirection) -> *mut GstPad;
7852    pub fn gst_bin_get_by_interface(bin: *mut GstBin, iface: GType) -> *mut GstElement;
7853    pub fn gst_bin_get_by_name(bin: *mut GstBin, name: *const c_char) -> *mut GstElement;
7854    pub fn gst_bin_get_by_name_recurse_up(bin: *mut GstBin, name: *const c_char)
7855        -> *mut GstElement;
7856    pub fn gst_bin_get_suppressed_flags(bin: *mut GstBin) -> GstElementFlags;
7857    #[cfg(feature = "v1_18")]
7858    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
7859    pub fn gst_bin_iterate_all_by_element_factory_name(
7860        bin: *mut GstBin,
7861        factory_name: *const c_char,
7862    ) -> *mut GstIterator;
7863    pub fn gst_bin_iterate_all_by_interface(bin: *mut GstBin, iface: GType) -> *mut GstIterator;
7864    pub fn gst_bin_iterate_elements(bin: *mut GstBin) -> *mut GstIterator;
7865    pub fn gst_bin_iterate_recurse(bin: *mut GstBin) -> *mut GstIterator;
7866    pub fn gst_bin_iterate_sinks(bin: *mut GstBin) -> *mut GstIterator;
7867    pub fn gst_bin_iterate_sorted(bin: *mut GstBin) -> *mut GstIterator;
7868    pub fn gst_bin_iterate_sources(bin: *mut GstBin) -> *mut GstIterator;
7869    pub fn gst_bin_recalculate_latency(bin: *mut GstBin) -> gboolean;
7870    pub fn gst_bin_remove(bin: *mut GstBin, element: *mut GstElement) -> gboolean;
7871    pub fn gst_bin_remove_many(bin: *mut GstBin, element_1: *mut GstElement, ...);
7872    pub fn gst_bin_set_suppressed_flags(bin: *mut GstBin, flags: GstElementFlags);
7873    pub fn gst_bin_sync_children_states(bin: *mut GstBin) -> gboolean;
7874
7875    //=========================================================================
7876    // GstBitmask
7877    //=========================================================================
7878    pub fn gst_bitmask_get_type() -> GType;
7879
7880    //=========================================================================
7881    // GstBufferPool
7882    //=========================================================================
7883    pub fn gst_buffer_pool_get_type() -> GType;
7884    pub fn gst_buffer_pool_new() -> *mut GstBufferPool;
7885    pub fn gst_buffer_pool_config_add_option(config: *mut GstStructure, option: *const c_char);
7886    pub fn gst_buffer_pool_config_get_allocator(
7887        config: *mut GstStructure,
7888        allocator: *mut *mut GstAllocator,
7889        params: *mut GstAllocationParams,
7890    ) -> gboolean;
7891    pub fn gst_buffer_pool_config_get_option(
7892        config: *mut GstStructure,
7893        index: c_uint,
7894    ) -> *const c_char;
7895    pub fn gst_buffer_pool_config_get_params(
7896        config: *mut GstStructure,
7897        caps: *mut *mut GstCaps,
7898        size: *mut c_uint,
7899        min_buffers: *mut c_uint,
7900        max_buffers: *mut c_uint,
7901    ) -> gboolean;
7902    pub fn gst_buffer_pool_config_has_option(
7903        config: *mut GstStructure,
7904        option: *const c_char,
7905    ) -> gboolean;
7906    pub fn gst_buffer_pool_config_n_options(config: *mut GstStructure) -> c_uint;
7907    pub fn gst_buffer_pool_config_set_allocator(
7908        config: *mut GstStructure,
7909        allocator: *mut GstAllocator,
7910        params: *const GstAllocationParams,
7911    );
7912    pub fn gst_buffer_pool_config_set_params(
7913        config: *mut GstStructure,
7914        caps: *mut GstCaps,
7915        size: c_uint,
7916        min_buffers: c_uint,
7917        max_buffers: c_uint,
7918    );
7919    pub fn gst_buffer_pool_config_validate_params(
7920        config: *mut GstStructure,
7921        caps: *mut GstCaps,
7922        size: c_uint,
7923        min_buffers: c_uint,
7924        max_buffers: c_uint,
7925    ) -> gboolean;
7926    pub fn gst_buffer_pool_acquire_buffer(
7927        pool: *mut GstBufferPool,
7928        buffer: *mut *mut GstBuffer,
7929        params: *mut GstBufferPoolAcquireParams,
7930    ) -> GstFlowReturn;
7931    pub fn gst_buffer_pool_get_config(pool: *mut GstBufferPool) -> *mut GstStructure;
7932    pub fn gst_buffer_pool_get_options(pool: *mut GstBufferPool) -> *mut *const c_char;
7933    pub fn gst_buffer_pool_has_option(pool: *mut GstBufferPool, option: *const c_char) -> gboolean;
7934    pub fn gst_buffer_pool_is_active(pool: *mut GstBufferPool) -> gboolean;
7935    pub fn gst_buffer_pool_release_buffer(pool: *mut GstBufferPool, buffer: *mut GstBuffer);
7936    pub fn gst_buffer_pool_set_active(pool: *mut GstBufferPool, active: gboolean) -> gboolean;
7937    pub fn gst_buffer_pool_set_config(
7938        pool: *mut GstBufferPool,
7939        config: *mut GstStructure,
7940    ) -> gboolean;
7941    pub fn gst_buffer_pool_set_flushing(pool: *mut GstBufferPool, flushing: gboolean);
7942
7943    //=========================================================================
7944    // GstBus
7945    //=========================================================================
7946    pub fn gst_bus_get_type() -> GType;
7947    pub fn gst_bus_new() -> *mut GstBus;
7948    pub fn gst_bus_add_signal_watch(bus: *mut GstBus);
7949    pub fn gst_bus_add_signal_watch_full(bus: *mut GstBus, priority: c_int);
7950    pub fn gst_bus_add_watch(bus: *mut GstBus, func: GstBusFunc, user_data: gpointer) -> c_uint;
7951    pub fn gst_bus_add_watch_full(
7952        bus: *mut GstBus,
7953        priority: c_int,
7954        func: GstBusFunc,
7955        user_data: gpointer,
7956        notify: glib::GDestroyNotify,
7957    ) -> c_uint;
7958    pub fn gst_bus_async_signal_func(
7959        bus: *mut GstBus,
7960        message: *mut GstMessage,
7961        data: gpointer,
7962    ) -> gboolean;
7963    pub fn gst_bus_create_watch(bus: *mut GstBus) -> *mut glib::GSource;
7964    pub fn gst_bus_disable_sync_message_emission(bus: *mut GstBus);
7965    pub fn gst_bus_enable_sync_message_emission(bus: *mut GstBus);
7966    pub fn gst_bus_get_pollfd(bus: *mut GstBus, fd: *mut glib::GPollFD);
7967    pub fn gst_bus_have_pending(bus: *mut GstBus) -> gboolean;
7968    pub fn gst_bus_peek(bus: *mut GstBus) -> *mut GstMessage;
7969    pub fn gst_bus_poll(
7970        bus: *mut GstBus,
7971        events: GstMessageType,
7972        timeout: GstClockTime,
7973    ) -> *mut GstMessage;
7974    pub fn gst_bus_pop(bus: *mut GstBus) -> *mut GstMessage;
7975    pub fn gst_bus_pop_filtered(bus: *mut GstBus, types: GstMessageType) -> *mut GstMessage;
7976    pub fn gst_bus_post(bus: *mut GstBus, message: *mut GstMessage) -> gboolean;
7977    pub fn gst_bus_remove_signal_watch(bus: *mut GstBus);
7978    pub fn gst_bus_remove_watch(bus: *mut GstBus) -> gboolean;
7979    pub fn gst_bus_set_flushing(bus: *mut GstBus, flushing: gboolean);
7980    pub fn gst_bus_set_sync_handler(
7981        bus: *mut GstBus,
7982        func: GstBusSyncHandler,
7983        user_data: gpointer,
7984        notify: glib::GDestroyNotify,
7985    );
7986    pub fn gst_bus_sync_signal_handler(
7987        bus: *mut GstBus,
7988        message: *mut GstMessage,
7989        data: gpointer,
7990    ) -> GstBusSyncReply;
7991    pub fn gst_bus_timed_pop(bus: *mut GstBus, timeout: GstClockTime) -> *mut GstMessage;
7992    pub fn gst_bus_timed_pop_filtered(
7993        bus: *mut GstBus,
7994        timeout: GstClockTime,
7995        types: GstMessageType,
7996    ) -> *mut GstMessage;
7997
7998    //=========================================================================
7999    // GstClock
8000    //=========================================================================
8001    pub fn gst_clock_get_type() -> GType;
8002    pub fn gst_clock_id_compare_func(id1: gconstpointer, id2: gconstpointer) -> c_int;
8003    #[cfg(feature = "v1_16")]
8004    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
8005    pub fn gst_clock_id_get_clock(id: GstClockID) -> *mut GstClock;
8006    pub fn gst_clock_id_get_time(id: GstClockID) -> GstClockTime;
8007    pub fn gst_clock_id_ref(id: GstClockID) -> GstClockID;
8008    pub fn gst_clock_id_unref(id: GstClockID);
8009    pub fn gst_clock_id_unschedule(id: GstClockID);
8010    #[cfg(feature = "v1_16")]
8011    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
8012    pub fn gst_clock_id_uses_clock(id: GstClockID, clock: *mut GstClock) -> gboolean;
8013    pub fn gst_clock_id_wait(id: GstClockID, jitter: *mut GstClockTimeDiff) -> GstClockReturn;
8014    pub fn gst_clock_id_wait_async(
8015        id: GstClockID,
8016        func: GstClockCallback,
8017        user_data: gpointer,
8018        destroy_data: glib::GDestroyNotify,
8019    ) -> GstClockReturn;
8020    pub fn gst_clock_add_observation(
8021        clock: *mut GstClock,
8022        observation_internal: GstClockTime,
8023        observation_external: GstClockTime,
8024        r_squared: *mut c_double,
8025    ) -> gboolean;
8026    pub fn gst_clock_add_observation_unapplied(
8027        clock: *mut GstClock,
8028        observation_internal: GstClockTime,
8029        observation_external: GstClockTime,
8030        r_squared: *mut c_double,
8031        internal: *mut GstClockTime,
8032        external: *mut GstClockTime,
8033        rate_num: *mut GstClockTime,
8034        rate_denom: *mut GstClockTime,
8035    ) -> gboolean;
8036    pub fn gst_clock_adjust_unlocked(clock: *mut GstClock, internal: GstClockTime) -> GstClockTime;
8037    pub fn gst_clock_adjust_with_calibration(
8038        clock: *mut GstClock,
8039        internal_target: GstClockTime,
8040        cinternal: GstClockTime,
8041        cexternal: GstClockTime,
8042        cnum: GstClockTime,
8043        cdenom: GstClockTime,
8044    ) -> GstClockTime;
8045    pub fn gst_clock_get_calibration(
8046        clock: *mut GstClock,
8047        internal: *mut GstClockTime,
8048        external: *mut GstClockTime,
8049        rate_num: *mut GstClockTime,
8050        rate_denom: *mut GstClockTime,
8051    );
8052    pub fn gst_clock_get_internal_time(clock: *mut GstClock) -> GstClockTime;
8053    pub fn gst_clock_get_master(clock: *mut GstClock) -> *mut GstClock;
8054    pub fn gst_clock_get_resolution(clock: *mut GstClock) -> GstClockTime;
8055    pub fn gst_clock_get_time(clock: *mut GstClock) -> GstClockTime;
8056    pub fn gst_clock_get_timeout(clock: *mut GstClock) -> GstClockTime;
8057    pub fn gst_clock_is_synced(clock: *mut GstClock) -> gboolean;
8058    pub fn gst_clock_new_periodic_id(
8059        clock: *mut GstClock,
8060        start_time: GstClockTime,
8061        interval: GstClockTime,
8062    ) -> GstClockID;
8063    pub fn gst_clock_new_single_shot_id(clock: *mut GstClock, time: GstClockTime) -> GstClockID;
8064    pub fn gst_clock_periodic_id_reinit(
8065        clock: *mut GstClock,
8066        id: GstClockID,
8067        start_time: GstClockTime,
8068        interval: GstClockTime,
8069    ) -> gboolean;
8070    pub fn gst_clock_set_calibration(
8071        clock: *mut GstClock,
8072        internal: GstClockTime,
8073        external: GstClockTime,
8074        rate_num: GstClockTime,
8075        rate_denom: GstClockTime,
8076    );
8077    pub fn gst_clock_set_master(clock: *mut GstClock, master: *mut GstClock) -> gboolean;
8078    pub fn gst_clock_set_resolution(clock: *mut GstClock, resolution: GstClockTime)
8079        -> GstClockTime;
8080    pub fn gst_clock_set_synced(clock: *mut GstClock, synced: gboolean);
8081    pub fn gst_clock_set_timeout(clock: *mut GstClock, timeout: GstClockTime);
8082    pub fn gst_clock_single_shot_id_reinit(
8083        clock: *mut GstClock,
8084        id: GstClockID,
8085        time: GstClockTime,
8086    ) -> gboolean;
8087    pub fn gst_clock_unadjust_unlocked(
8088        clock: *mut GstClock,
8089        external: GstClockTime,
8090    ) -> GstClockTime;
8091    pub fn gst_clock_unadjust_with_calibration(
8092        clock: *mut GstClock,
8093        external_target: GstClockTime,
8094        cinternal: GstClockTime,
8095        cexternal: GstClockTime,
8096        cnum: GstClockTime,
8097        cdenom: GstClockTime,
8098    ) -> GstClockTime;
8099    pub fn gst_clock_wait_for_sync(clock: *mut GstClock, timeout: GstClockTime) -> gboolean;
8100
8101    //=========================================================================
8102    // GstControlBinding
8103    //=========================================================================
8104    pub fn gst_control_binding_get_type() -> GType;
8105    pub fn gst_control_binding_get_g_value_array(
8106        binding: *mut GstControlBinding,
8107        timestamp: GstClockTime,
8108        interval: GstClockTime,
8109        n_values: c_uint,
8110        values: *mut gobject::GValue,
8111    ) -> gboolean;
8112    pub fn gst_control_binding_get_value(
8113        binding: *mut GstControlBinding,
8114        timestamp: GstClockTime,
8115    ) -> *mut gobject::GValue;
8116    pub fn gst_control_binding_get_value_array(
8117        binding: *mut GstControlBinding,
8118        timestamp: GstClockTime,
8119        interval: GstClockTime,
8120        n_values: c_uint,
8121        values: gpointer,
8122    ) -> gboolean;
8123    pub fn gst_control_binding_is_disabled(binding: *mut GstControlBinding) -> gboolean;
8124    pub fn gst_control_binding_set_disabled(binding: *mut GstControlBinding, disabled: gboolean);
8125    pub fn gst_control_binding_sync_values(
8126        binding: *mut GstControlBinding,
8127        object: *mut GstObject,
8128        timestamp: GstClockTime,
8129        last_sync: GstClockTime,
8130    ) -> gboolean;
8131
8132    //=========================================================================
8133    // GstControlSource
8134    //=========================================================================
8135    pub fn gst_control_source_get_type() -> GType;
8136    pub fn gst_control_source_get_value(
8137        self_: *mut GstControlSource,
8138        timestamp: GstClockTime,
8139        value: *mut c_double,
8140    ) -> gboolean;
8141    pub fn gst_control_source_get_value_array(
8142        self_: *mut GstControlSource,
8143        timestamp: GstClockTime,
8144        interval: GstClockTime,
8145        n_values: c_uint,
8146        values: *mut c_double,
8147    ) -> gboolean;
8148
8149    //=========================================================================
8150    // GstDevice
8151    //=========================================================================
8152    pub fn gst_device_get_type() -> GType;
8153    pub fn gst_device_create_element(
8154        device: *mut GstDevice,
8155        name: *const c_char,
8156    ) -> *mut GstElement;
8157    pub fn gst_device_get_caps(device: *mut GstDevice) -> *mut GstCaps;
8158    pub fn gst_device_get_device_class(device: *mut GstDevice) -> *mut c_char;
8159    pub fn gst_device_get_display_name(device: *mut GstDevice) -> *mut c_char;
8160    pub fn gst_device_get_properties(device: *mut GstDevice) -> *mut GstStructure;
8161    pub fn gst_device_has_classes(device: *mut GstDevice, classes: *const c_char) -> gboolean;
8162    pub fn gst_device_has_classesv(device: *mut GstDevice, classes: *mut *mut c_char) -> gboolean;
8163    pub fn gst_device_reconfigure_element(
8164        device: *mut GstDevice,
8165        element: *mut GstElement,
8166    ) -> gboolean;
8167
8168    //=========================================================================
8169    // GstDeviceMonitor
8170    //=========================================================================
8171    pub fn gst_device_monitor_get_type() -> GType;
8172    pub fn gst_device_monitor_new() -> *mut GstDeviceMonitor;
8173    pub fn gst_device_monitor_add_filter(
8174        monitor: *mut GstDeviceMonitor,
8175        classes: *const c_char,
8176        caps: *mut GstCaps,
8177    ) -> c_uint;
8178    pub fn gst_device_monitor_get_bus(monitor: *mut GstDeviceMonitor) -> *mut GstBus;
8179    pub fn gst_device_monitor_get_devices(monitor: *mut GstDeviceMonitor) -> *mut glib::GList;
8180    pub fn gst_device_monitor_get_providers(monitor: *mut GstDeviceMonitor) -> *mut *mut c_char;
8181    pub fn gst_device_monitor_get_show_all_devices(monitor: *mut GstDeviceMonitor) -> gboolean;
8182    pub fn gst_device_monitor_remove_filter(
8183        monitor: *mut GstDeviceMonitor,
8184        filter_id: c_uint,
8185    ) -> gboolean;
8186    pub fn gst_device_monitor_set_show_all_devices(
8187        monitor: *mut GstDeviceMonitor,
8188        show_all: gboolean,
8189    );
8190    pub fn gst_device_monitor_start(monitor: *mut GstDeviceMonitor) -> gboolean;
8191    pub fn gst_device_monitor_stop(monitor: *mut GstDeviceMonitor);
8192
8193    //=========================================================================
8194    // GstDeviceProvider
8195    //=========================================================================
8196    pub fn gst_device_provider_get_type() -> GType;
8197    pub fn gst_device_provider_register(
8198        plugin: *mut GstPlugin,
8199        name: *const c_char,
8200        rank: c_uint,
8201        type_: GType,
8202    ) -> gboolean;
8203    pub fn gst_device_provider_can_monitor(provider: *mut GstDeviceProvider) -> gboolean;
8204    pub fn gst_device_provider_device_add(provider: *mut GstDeviceProvider, device: *mut GstDevice);
8205    #[cfg(feature = "v1_16")]
8206    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
8207    pub fn gst_device_provider_device_changed(
8208        provider: *mut GstDeviceProvider,
8209        device: *mut GstDevice,
8210        changed_device: *mut GstDevice,
8211    );
8212    pub fn gst_device_provider_device_remove(
8213        provider: *mut GstDeviceProvider,
8214        device: *mut GstDevice,
8215    );
8216    pub fn gst_device_provider_get_bus(provider: *mut GstDeviceProvider) -> *mut GstBus;
8217    pub fn gst_device_provider_get_devices(provider: *mut GstDeviceProvider) -> *mut glib::GList;
8218    pub fn gst_device_provider_get_factory(
8219        provider: *mut GstDeviceProvider,
8220    ) -> *mut GstDeviceProviderFactory;
8221    pub fn gst_device_provider_get_hidden_providers(
8222        provider: *mut GstDeviceProvider,
8223    ) -> *mut *mut c_char;
8224    pub fn gst_device_provider_get_metadata(
8225        provider: *mut GstDeviceProvider,
8226        key: *const c_char,
8227    ) -> *const c_char;
8228    pub fn gst_device_provider_hide_provider(provider: *mut GstDeviceProvider, name: *const c_char);
8229    #[cfg(feature = "v1_20")]
8230    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
8231    pub fn gst_device_provider_is_started(provider: *mut GstDeviceProvider) -> gboolean;
8232    pub fn gst_device_provider_start(provider: *mut GstDeviceProvider) -> gboolean;
8233    pub fn gst_device_provider_stop(provider: *mut GstDeviceProvider);
8234    pub fn gst_device_provider_unhide_provider(
8235        provider: *mut GstDeviceProvider,
8236        name: *const c_char,
8237    );
8238
8239    //=========================================================================
8240    // GstDeviceProviderFactory
8241    //=========================================================================
8242    pub fn gst_device_provider_factory_get_type() -> GType;
8243    pub fn gst_device_provider_factory_find(name: *const c_char) -> *mut GstDeviceProviderFactory;
8244    pub fn gst_device_provider_factory_get_by_name(
8245        factoryname: *const c_char,
8246    ) -> *mut GstDeviceProvider;
8247    pub fn gst_device_provider_factory_list_get_device_providers(
8248        minrank: GstRank,
8249    ) -> *mut glib::GList;
8250    pub fn gst_device_provider_factory_get(
8251        factory: *mut GstDeviceProviderFactory,
8252    ) -> *mut GstDeviceProvider;
8253    pub fn gst_device_provider_factory_get_device_provider_type(
8254        factory: *mut GstDeviceProviderFactory,
8255    ) -> GType;
8256    pub fn gst_device_provider_factory_get_metadata(
8257        factory: *mut GstDeviceProviderFactory,
8258        key: *const c_char,
8259    ) -> *const c_char;
8260    pub fn gst_device_provider_factory_get_metadata_keys(
8261        factory: *mut GstDeviceProviderFactory,
8262    ) -> *mut *mut c_char;
8263    pub fn gst_device_provider_factory_has_classes(
8264        factory: *mut GstDeviceProviderFactory,
8265        classes: *const c_char,
8266    ) -> gboolean;
8267    pub fn gst_device_provider_factory_has_classesv(
8268        factory: *mut GstDeviceProviderFactory,
8269        classes: *mut *mut c_char,
8270    ) -> gboolean;
8271
8272    //=========================================================================
8273    // GstDoubleRange
8274    //=========================================================================
8275    pub fn gst_double_range_get_type() -> GType;
8276
8277    //=========================================================================
8278    // GstDynamicTypeFactory
8279    //=========================================================================
8280    pub fn gst_dynamic_type_factory_get_type() -> GType;
8281    pub fn gst_dynamic_type_factory_load(factoryname: *const c_char) -> GType;
8282
8283    //=========================================================================
8284    // GstElement
8285    //=========================================================================
8286    pub fn gst_element_get_type() -> GType;
8287    pub fn gst_element_make_from_uri(
8288        type_: GstURIType,
8289        uri: *const c_char,
8290        elementname: *const c_char,
8291        error: *mut *mut glib::GError,
8292    ) -> *mut GstElement;
8293    pub fn gst_element_register(
8294        plugin: *mut GstPlugin,
8295        name: *const c_char,
8296        rank: c_uint,
8297        type_: GType,
8298    ) -> gboolean;
8299    pub fn gst_element_state_change_return_get_name(
8300        state_ret: GstStateChangeReturn,
8301    ) -> *const c_char;
8302    pub fn gst_element_state_get_name(state: GstState) -> *const c_char;
8303    #[cfg(feature = "v1_20")]
8304    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
8305    pub fn gst_element_type_set_skip_documentation(type_: GType);
8306    pub fn gst_element_abort_state(element: *mut GstElement);
8307    pub fn gst_element_add_pad(element: *mut GstElement, pad: *mut GstPad) -> gboolean;
8308    pub fn gst_element_add_property_deep_notify_watch(
8309        element: *mut GstElement,
8310        property_name: *const c_char,
8311        include_value: gboolean,
8312    ) -> c_ulong;
8313    pub fn gst_element_add_property_notify_watch(
8314        element: *mut GstElement,
8315        property_name: *const c_char,
8316        include_value: gboolean,
8317    ) -> c_ulong;
8318    pub fn gst_element_call_async(
8319        element: *mut GstElement,
8320        func: GstElementCallAsyncFunc,
8321        user_data: gpointer,
8322        destroy_notify: glib::GDestroyNotify,
8323    );
8324    pub fn gst_element_change_state(
8325        element: *mut GstElement,
8326        transition: GstStateChange,
8327    ) -> GstStateChangeReturn;
8328    pub fn gst_element_continue_state(
8329        element: *mut GstElement,
8330        ret: GstStateChangeReturn,
8331    ) -> GstStateChangeReturn;
8332    pub fn gst_element_create_all_pads(element: *mut GstElement);
8333    #[cfg(feature = "v1_24")]
8334    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
8335    pub fn gst_element_decorate_stream_id(
8336        element: *mut GstElement,
8337        stream_id: *const c_char,
8338    ) -> *mut c_char;
8339    #[cfg(feature = "v1_24")]
8340    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
8341    pub fn gst_element_decorate_stream_id_printf(
8342        element: *mut GstElement,
8343        format: *const c_char,
8344        ...
8345    ) -> *mut c_char;
8346    //#[cfg(feature = "v1_24")]
8347    //#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
8348    //pub fn gst_element_decorate_stream_id_printf_valist(element: *mut GstElement, format: *const c_char, var_args: /*Unimplemented*/va_list) -> *mut c_char;
8349    pub fn gst_element_foreach_pad(
8350        element: *mut GstElement,
8351        func: GstElementForeachPadFunc,
8352        user_data: gpointer,
8353    ) -> gboolean;
8354    pub fn gst_element_foreach_sink_pad(
8355        element: *mut GstElement,
8356        func: GstElementForeachPadFunc,
8357        user_data: gpointer,
8358    ) -> gboolean;
8359    pub fn gst_element_foreach_src_pad(
8360        element: *mut GstElement,
8361        func: GstElementForeachPadFunc,
8362        user_data: gpointer,
8363    ) -> gboolean;
8364    pub fn gst_element_get_base_time(element: *mut GstElement) -> GstClockTime;
8365    pub fn gst_element_get_bus(element: *mut GstElement) -> *mut GstBus;
8366    pub fn gst_element_get_clock(element: *mut GstElement) -> *mut GstClock;
8367    pub fn gst_element_get_compatible_pad(
8368        element: *mut GstElement,
8369        pad: *mut GstPad,
8370        caps: *mut GstCaps,
8371    ) -> *mut GstPad;
8372    pub fn gst_element_get_compatible_pad_template(
8373        element: *mut GstElement,
8374        compattempl: *mut GstPadTemplate,
8375    ) -> *mut GstPadTemplate;
8376    pub fn gst_element_get_context(
8377        element: *mut GstElement,
8378        context_type: *const c_char,
8379    ) -> *mut GstContext;
8380    pub fn gst_element_get_context_unlocked(
8381        element: *mut GstElement,
8382        context_type: *const c_char,
8383    ) -> *mut GstContext;
8384    pub fn gst_element_get_contexts(element: *mut GstElement) -> *mut glib::GList;
8385    #[cfg(feature = "v1_18")]
8386    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
8387    pub fn gst_element_get_current_clock_time(element: *mut GstElement) -> GstClockTime;
8388    #[cfg(feature = "v1_18")]
8389    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
8390    pub fn gst_element_get_current_running_time(element: *mut GstElement) -> GstClockTime;
8391    pub fn gst_element_get_factory(element: *mut GstElement) -> *mut GstElementFactory;
8392    pub fn gst_element_get_metadata(element: *mut GstElement, key: *const c_char) -> *const c_char;
8393    pub fn gst_element_get_pad_template(
8394        element: *mut GstElement,
8395        name: *const c_char,
8396    ) -> *mut GstPadTemplate;
8397    pub fn gst_element_get_pad_template_list(element: *mut GstElement) -> *mut glib::GList;
8398    pub fn gst_element_get_request_pad(
8399        element: *mut GstElement,
8400        name: *const c_char,
8401    ) -> *mut GstPad;
8402    pub fn gst_element_get_start_time(element: *mut GstElement) -> GstClockTime;
8403    pub fn gst_element_get_state(
8404        element: *mut GstElement,
8405        state: *mut GstState,
8406        pending: *mut GstState,
8407        timeout: GstClockTime,
8408    ) -> GstStateChangeReturn;
8409    pub fn gst_element_get_static_pad(element: *mut GstElement, name: *const c_char)
8410        -> *mut GstPad;
8411    pub fn gst_element_is_locked_state(element: *mut GstElement) -> gboolean;
8412    pub fn gst_element_iterate_pads(element: *mut GstElement) -> *mut GstIterator;
8413    pub fn gst_element_iterate_sink_pads(element: *mut GstElement) -> *mut GstIterator;
8414    pub fn gst_element_iterate_src_pads(element: *mut GstElement) -> *mut GstIterator;
8415    pub fn gst_element_link(src: *mut GstElement, dest: *mut GstElement) -> gboolean;
8416    pub fn gst_element_link_filtered(
8417        src: *mut GstElement,
8418        dest: *mut GstElement,
8419        filter: *mut GstCaps,
8420    ) -> gboolean;
8421    pub fn gst_element_link_many(
8422        element_1: *mut GstElement,
8423        element_2: *mut GstElement,
8424        ...
8425    ) -> gboolean;
8426    pub fn gst_element_link_pads(
8427        src: *mut GstElement,
8428        srcpadname: *const c_char,
8429        dest: *mut GstElement,
8430        destpadname: *const c_char,
8431    ) -> gboolean;
8432    pub fn gst_element_link_pads_filtered(
8433        src: *mut GstElement,
8434        srcpadname: *const c_char,
8435        dest: *mut GstElement,
8436        destpadname: *const c_char,
8437        filter: *mut GstCaps,
8438    ) -> gboolean;
8439    pub fn gst_element_link_pads_full(
8440        src: *mut GstElement,
8441        srcpadname: *const c_char,
8442        dest: *mut GstElement,
8443        destpadname: *const c_char,
8444        flags: GstPadLinkCheck,
8445    ) -> gboolean;
8446    pub fn gst_element_lost_state(element: *mut GstElement);
8447    pub fn gst_element_message_full(
8448        element: *mut GstElement,
8449        type_: GstMessageType,
8450        domain: glib::GQuark,
8451        code: c_int,
8452        text: *mut c_char,
8453        debug: *mut c_char,
8454        file: *const c_char,
8455        function: *const c_char,
8456        line: c_int,
8457    );
8458    pub fn gst_element_message_full_with_details(
8459        element: *mut GstElement,
8460        type_: GstMessageType,
8461        domain: glib::GQuark,
8462        code: c_int,
8463        text: *mut c_char,
8464        debug: *mut c_char,
8465        file: *const c_char,
8466        function: *const c_char,
8467        line: c_int,
8468        structure: *mut GstStructure,
8469    );
8470    pub fn gst_element_no_more_pads(element: *mut GstElement);
8471    pub fn gst_element_post_message(element: *mut GstElement, message: *mut GstMessage)
8472        -> gboolean;
8473    pub fn gst_element_provide_clock(element: *mut GstElement) -> *mut GstClock;
8474    pub fn gst_element_query(element: *mut GstElement, query: *mut GstQuery) -> gboolean;
8475    pub fn gst_element_query_convert(
8476        element: *mut GstElement,
8477        src_format: GstFormat,
8478        src_val: i64,
8479        dest_format: GstFormat,
8480        dest_val: *mut i64,
8481    ) -> gboolean;
8482    pub fn gst_element_query_duration(
8483        element: *mut GstElement,
8484        format: GstFormat,
8485        duration: *mut i64,
8486    ) -> gboolean;
8487    pub fn gst_element_query_position(
8488        element: *mut GstElement,
8489        format: GstFormat,
8490        cur: *mut i64,
8491    ) -> gboolean;
8492    pub fn gst_element_release_request_pad(element: *mut GstElement, pad: *mut GstPad);
8493    pub fn gst_element_remove_pad(element: *mut GstElement, pad: *mut GstPad) -> gboolean;
8494    pub fn gst_element_remove_property_notify_watch(element: *mut GstElement, watch_id: c_ulong);
8495    pub fn gst_element_request_pad(
8496        element: *mut GstElement,
8497        templ: *mut GstPadTemplate,
8498        name: *const c_char,
8499        caps: *const GstCaps,
8500    ) -> *mut GstPad;
8501    #[cfg(feature = "v1_20")]
8502    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
8503    pub fn gst_element_request_pad_simple(
8504        element: *mut GstElement,
8505        name: *const c_char,
8506    ) -> *mut GstPad;
8507    pub fn gst_element_seek(
8508        element: *mut GstElement,
8509        rate: c_double,
8510        format: GstFormat,
8511        flags: GstSeekFlags,
8512        start_type: GstSeekType,
8513        start: i64,
8514        stop_type: GstSeekType,
8515        stop: i64,
8516    ) -> gboolean;
8517    pub fn gst_element_seek_simple(
8518        element: *mut GstElement,
8519        format: GstFormat,
8520        seek_flags: GstSeekFlags,
8521        seek_pos: i64,
8522    ) -> gboolean;
8523    pub fn gst_element_send_event(element: *mut GstElement, event: *mut GstEvent) -> gboolean;
8524    pub fn gst_element_set_base_time(element: *mut GstElement, time: GstClockTime);
8525    pub fn gst_element_set_bus(element: *mut GstElement, bus: *mut GstBus);
8526    pub fn gst_element_set_clock(element: *mut GstElement, clock: *mut GstClock) -> gboolean;
8527    pub fn gst_element_set_context(element: *mut GstElement, context: *mut GstContext);
8528    pub fn gst_element_set_locked_state(
8529        element: *mut GstElement,
8530        locked_state: gboolean,
8531    ) -> gboolean;
8532    pub fn gst_element_set_start_time(element: *mut GstElement, time: GstClockTime);
8533    pub fn gst_element_set_state(element: *mut GstElement, state: GstState)
8534        -> GstStateChangeReturn;
8535    pub fn gst_element_sync_state_with_parent(element: *mut GstElement) -> gboolean;
8536    pub fn gst_element_unlink(src: *mut GstElement, dest: *mut GstElement);
8537    pub fn gst_element_unlink_many(element_1: *mut GstElement, element_2: *mut GstElement, ...);
8538    pub fn gst_element_unlink_pads(
8539        src: *mut GstElement,
8540        srcpadname: *const c_char,
8541        dest: *mut GstElement,
8542        destpadname: *const c_char,
8543    );
8544
8545    //=========================================================================
8546    // GstElementFactory
8547    //=========================================================================
8548    pub fn gst_element_factory_get_type() -> GType;
8549    pub fn gst_element_factory_find(name: *const c_char) -> *mut GstElementFactory;
8550    pub fn gst_element_factory_list_filter(
8551        list: *mut glib::GList,
8552        caps: *const GstCaps,
8553        direction: GstPadDirection,
8554        subsetonly: gboolean,
8555    ) -> *mut glib::GList;
8556    pub fn gst_element_factory_list_get_elements(
8557        type_: GstElementFactoryListType,
8558        minrank: GstRank,
8559    ) -> *mut glib::GList;
8560    pub fn gst_element_factory_make(
8561        factoryname: *const c_char,
8562        name: *const c_char,
8563    ) -> *mut GstElement;
8564    #[cfg(feature = "v1_20")]
8565    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
8566    pub fn gst_element_factory_make_full(
8567        factoryname: *const c_char,
8568        first: *const c_char,
8569        ...
8570    ) -> *mut GstElement;
8571    //#[cfg(feature = "v1_20")]
8572    //#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
8573    //pub fn gst_element_factory_make_valist(factoryname: *const c_char, first: *const c_char, properties: /*Unimplemented*/va_list) -> *mut GstElement;
8574    #[cfg(feature = "v1_20")]
8575    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
8576    pub fn gst_element_factory_make_with_properties(
8577        factoryname: *const c_char,
8578        n: c_uint,
8579        names: *mut *const c_char,
8580        values: *const gobject::GValue,
8581    ) -> *mut GstElement;
8582    pub fn gst_element_factory_can_sink_all_caps(
8583        factory: *mut GstElementFactory,
8584        caps: *const GstCaps,
8585    ) -> gboolean;
8586    pub fn gst_element_factory_can_sink_any_caps(
8587        factory: *mut GstElementFactory,
8588        caps: *const GstCaps,
8589    ) -> gboolean;
8590    pub fn gst_element_factory_can_src_all_caps(
8591        factory: *mut GstElementFactory,
8592        caps: *const GstCaps,
8593    ) -> gboolean;
8594    pub fn gst_element_factory_can_src_any_caps(
8595        factory: *mut GstElementFactory,
8596        caps: *const GstCaps,
8597    ) -> gboolean;
8598    pub fn gst_element_factory_create(
8599        factory: *mut GstElementFactory,
8600        name: *const c_char,
8601    ) -> *mut GstElement;
8602    #[cfg(feature = "v1_20")]
8603    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
8604    pub fn gst_element_factory_create_full(
8605        factory: *mut GstElementFactory,
8606        first: *const c_char,
8607        ...
8608    ) -> *mut GstElement;
8609    //#[cfg(feature = "v1_20")]
8610    //#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
8611    //pub fn gst_element_factory_create_valist(factory: *mut GstElementFactory, first: *const c_char, properties: /*Unimplemented*/va_list) -> *mut GstElement;
8612    #[cfg(feature = "v1_20")]
8613    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
8614    pub fn gst_element_factory_create_with_properties(
8615        factory: *mut GstElementFactory,
8616        n: c_uint,
8617        names: *mut *const c_char,
8618        values: *const gobject::GValue,
8619    ) -> *mut GstElement;
8620    pub fn gst_element_factory_get_element_type(factory: *mut GstElementFactory) -> GType;
8621    pub fn gst_element_factory_get_metadata(
8622        factory: *mut GstElementFactory,
8623        key: *const c_char,
8624    ) -> *const c_char;
8625    pub fn gst_element_factory_get_metadata_keys(
8626        factory: *mut GstElementFactory,
8627    ) -> *mut *mut c_char;
8628    pub fn gst_element_factory_get_num_pad_templates(factory: *mut GstElementFactory) -> c_uint;
8629    #[cfg(feature = "v1_20")]
8630    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
8631    pub fn gst_element_factory_get_skip_documentation(factory: *mut GstElementFactory) -> gboolean;
8632    pub fn gst_element_factory_get_static_pad_templates(
8633        factory: *mut GstElementFactory,
8634    ) -> *const glib::GList;
8635    pub fn gst_element_factory_get_uri_protocols(
8636        factory: *mut GstElementFactory,
8637    ) -> *const *const c_char;
8638    pub fn gst_element_factory_get_uri_type(factory: *mut GstElementFactory) -> GstURIType;
8639    pub fn gst_element_factory_has_interface(
8640        factory: *mut GstElementFactory,
8641        interfacename: *const c_char,
8642    ) -> gboolean;
8643    pub fn gst_element_factory_list_is_type(
8644        factory: *mut GstElementFactory,
8645        type_: GstElementFactoryListType,
8646    ) -> gboolean;
8647
8648    //=========================================================================
8649    // GstFlagSet
8650    //=========================================================================
8651    pub fn gst_flagset_get_type() -> GType;
8652    pub fn gst_flagset_register(flags_type: GType) -> GType;
8653
8654    //=========================================================================
8655    // GstFraction
8656    //=========================================================================
8657    pub fn gst_fraction_get_type() -> GType;
8658
8659    //=========================================================================
8660    // GstFractionRange
8661    //=========================================================================
8662    pub fn gst_fraction_range_get_type() -> GType;
8663
8664    //=========================================================================
8665    // GstGhostPad
8666    //=========================================================================
8667    pub fn gst_ghost_pad_get_type() -> GType;
8668    pub fn gst_ghost_pad_new(name: *const c_char, target: *mut GstPad) -> *mut GstPad;
8669    pub fn gst_ghost_pad_new_from_template(
8670        name: *const c_char,
8671        target: *mut GstPad,
8672        templ: *mut GstPadTemplate,
8673    ) -> *mut GstPad;
8674    pub fn gst_ghost_pad_new_no_target(name: *const c_char, dir: GstPadDirection) -> *mut GstPad;
8675    pub fn gst_ghost_pad_new_no_target_from_template(
8676        name: *const c_char,
8677        templ: *mut GstPadTemplate,
8678    ) -> *mut GstPad;
8679    pub fn gst_ghost_pad_activate_mode_default(
8680        pad: *mut GstPad,
8681        parent: *mut GstObject,
8682        mode: GstPadMode,
8683        active: gboolean,
8684    ) -> gboolean;
8685    pub fn gst_ghost_pad_internal_activate_mode_default(
8686        pad: *mut GstPad,
8687        parent: *mut GstObject,
8688        mode: GstPadMode,
8689        active: gboolean,
8690    ) -> gboolean;
8691    pub fn gst_ghost_pad_construct(gpad: *mut GstGhostPad) -> gboolean;
8692    pub fn gst_ghost_pad_get_target(gpad: *mut GstGhostPad) -> *mut GstPad;
8693    pub fn gst_ghost_pad_set_target(gpad: *mut GstGhostPad, newtarget: *mut GstPad) -> gboolean;
8694
8695    //=========================================================================
8696    // GstInt64Range
8697    //=========================================================================
8698    pub fn gst_int64_range_get_type() -> GType;
8699
8700    //=========================================================================
8701    // GstIntRange
8702    //=========================================================================
8703    pub fn gst_int_range_get_type() -> GType;
8704
8705    //=========================================================================
8706    // GstObject
8707    //=========================================================================
8708    pub fn gst_object_get_type() -> GType;
8709    pub fn gst_object_check_uniqueness(list: *mut glib::GList, name: *const c_char) -> gboolean;
8710    pub fn gst_object_default_deep_notify(
8711        object: *mut gobject::GObject,
8712        orig: *mut GstObject,
8713        pspec: *mut gobject::GParamSpec,
8714        excluded_props: *mut *mut c_char,
8715    );
8716    pub fn gst_object_ref_sink(object: gpointer) -> gpointer;
8717    pub fn gst_object_replace(oldobj: *mut *mut GstObject, newobj: *mut GstObject) -> gboolean;
8718    pub fn gst_object_add_control_binding(
8719        object: *mut GstObject,
8720        binding: *mut GstControlBinding,
8721    ) -> gboolean;
8722    pub fn gst_object_default_error(
8723        source: *mut GstObject,
8724        error: *const glib::GError,
8725        debug: *const c_char,
8726    );
8727    pub fn gst_object_get_control_binding(
8728        object: *mut GstObject,
8729        property_name: *const c_char,
8730    ) -> *mut GstControlBinding;
8731    pub fn gst_object_get_control_rate(object: *mut GstObject) -> GstClockTime;
8732    pub fn gst_object_get_g_value_array(
8733        object: *mut GstObject,
8734        property_name: *const c_char,
8735        timestamp: GstClockTime,
8736        interval: GstClockTime,
8737        n_values: c_uint,
8738        values: *mut gobject::GValue,
8739    ) -> gboolean;
8740    pub fn gst_object_get_name(object: *mut GstObject) -> *mut c_char;
8741    pub fn gst_object_get_parent(object: *mut GstObject) -> *mut GstObject;
8742    pub fn gst_object_get_path_string(object: *mut GstObject) -> *mut c_char;
8743    pub fn gst_object_get_value(
8744        object: *mut GstObject,
8745        property_name: *const c_char,
8746        timestamp: GstClockTime,
8747    ) -> *mut gobject::GValue;
8748    pub fn gst_object_get_value_array(
8749        object: *mut GstObject,
8750        property_name: *const c_char,
8751        timestamp: GstClockTime,
8752        interval: GstClockTime,
8753        n_values: c_uint,
8754        values: gpointer,
8755    ) -> gboolean;
8756    pub fn gst_object_has_active_control_bindings(object: *mut GstObject) -> gboolean;
8757    pub fn gst_object_has_ancestor(object: *mut GstObject, ancestor: *mut GstObject) -> gboolean;
8758    pub fn gst_object_has_as_ancestor(object: *mut GstObject, ancestor: *mut GstObject)
8759        -> gboolean;
8760    pub fn gst_object_has_as_parent(object: *mut GstObject, parent: *mut GstObject) -> gboolean;
8761    pub fn gst_object_ref(object: *mut GstObject) -> *mut GstObject;
8762    pub fn gst_object_remove_control_binding(
8763        object: *mut GstObject,
8764        binding: *mut GstControlBinding,
8765    ) -> gboolean;
8766    pub fn gst_object_set_control_binding_disabled(
8767        object: *mut GstObject,
8768        property_name: *const c_char,
8769        disabled: gboolean,
8770    );
8771    pub fn gst_object_set_control_bindings_disabled(object: *mut GstObject, disabled: gboolean);
8772    pub fn gst_object_set_control_rate(object: *mut GstObject, control_rate: GstClockTime);
8773    pub fn gst_object_set_name(object: *mut GstObject, name: *const c_char) -> gboolean;
8774    pub fn gst_object_set_parent(object: *mut GstObject, parent: *mut GstObject) -> gboolean;
8775    pub fn gst_object_suggest_next_sync(object: *mut GstObject) -> GstClockTime;
8776    pub fn gst_object_sync_values(object: *mut GstObject, timestamp: GstClockTime) -> gboolean;
8777    pub fn gst_object_unparent(object: *mut GstObject);
8778    pub fn gst_object_unref(object: *mut GstObject);
8779
8780    //=========================================================================
8781    // GstPad
8782    //=========================================================================
8783    pub fn gst_pad_get_type() -> GType;
8784    pub fn gst_pad_new(name: *const c_char, direction: GstPadDirection) -> *mut GstPad;
8785    pub fn gst_pad_new_from_static_template(
8786        templ: *mut GstStaticPadTemplate,
8787        name: *const c_char,
8788    ) -> *mut GstPad;
8789    pub fn gst_pad_new_from_template(
8790        templ: *mut GstPadTemplate,
8791        name: *const c_char,
8792    ) -> *mut GstPad;
8793    pub fn gst_pad_link_get_name(ret: GstPadLinkReturn) -> *const c_char;
8794    pub fn gst_pad_activate_mode(pad: *mut GstPad, mode: GstPadMode, active: gboolean) -> gboolean;
8795    pub fn gst_pad_add_probe(
8796        pad: *mut GstPad,
8797        mask: GstPadProbeType,
8798        callback: GstPadProbeCallback,
8799        user_data: gpointer,
8800        destroy_data: glib::GDestroyNotify,
8801    ) -> c_ulong;
8802    pub fn gst_pad_can_link(srcpad: *mut GstPad, sinkpad: *mut GstPad) -> gboolean;
8803    pub fn gst_pad_chain(pad: *mut GstPad, buffer: *mut GstBuffer) -> GstFlowReturn;
8804    pub fn gst_pad_chain_list(pad: *mut GstPad, list: *mut GstBufferList) -> GstFlowReturn;
8805    pub fn gst_pad_check_reconfigure(pad: *mut GstPad) -> gboolean;
8806    pub fn gst_pad_create_stream_id(
8807        pad: *mut GstPad,
8808        parent: *mut GstElement,
8809        stream_id: *const c_char,
8810    ) -> *mut c_char;
8811    pub fn gst_pad_create_stream_id_printf(
8812        pad: *mut GstPad,
8813        parent: *mut GstElement,
8814        stream_id: *const c_char,
8815        ...
8816    ) -> *mut c_char;
8817    //pub fn gst_pad_create_stream_id_printf_valist(pad: *mut GstPad, parent: *mut GstElement, stream_id: *const c_char, var_args: /*Unimplemented*/va_list) -> *mut c_char;
8818    pub fn gst_pad_event_default(
8819        pad: *mut GstPad,
8820        parent: *mut GstObject,
8821        event: *mut GstEvent,
8822    ) -> gboolean;
8823    pub fn gst_pad_forward(
8824        pad: *mut GstPad,
8825        forward: GstPadForwardFunction,
8826        user_data: gpointer,
8827    ) -> gboolean;
8828    pub fn gst_pad_get_allowed_caps(pad: *mut GstPad) -> *mut GstCaps;
8829    pub fn gst_pad_get_current_caps(pad: *mut GstPad) -> *mut GstCaps;
8830    pub fn gst_pad_get_direction(pad: *mut GstPad) -> GstPadDirection;
8831    pub fn gst_pad_get_element_private(pad: *mut GstPad) -> gpointer;
8832    pub fn gst_pad_get_last_flow_return(pad: *mut GstPad) -> GstFlowReturn;
8833    pub fn gst_pad_get_offset(pad: *mut GstPad) -> i64;
8834    pub fn gst_pad_get_pad_template(pad: *mut GstPad) -> *mut GstPadTemplate;
8835    pub fn gst_pad_get_pad_template_caps(pad: *mut GstPad) -> *mut GstCaps;
8836    pub fn gst_pad_get_parent_element(pad: *mut GstPad) -> *mut GstElement;
8837    pub fn gst_pad_get_peer(pad: *mut GstPad) -> *mut GstPad;
8838    pub fn gst_pad_get_range(
8839        pad: *mut GstPad,
8840        offset: u64,
8841        size: c_uint,
8842        buffer: *mut *mut GstBuffer,
8843    ) -> GstFlowReturn;
8844    #[cfg(feature = "v1_18")]
8845    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
8846    pub fn gst_pad_get_single_internal_link(pad: *mut GstPad) -> *mut GstPad;
8847    pub fn gst_pad_get_sticky_event(
8848        pad: *mut GstPad,
8849        event_type: GstEventType,
8850        idx: c_uint,
8851    ) -> *mut GstEvent;
8852    pub fn gst_pad_get_stream(pad: *mut GstPad) -> *mut GstStream;
8853    pub fn gst_pad_get_stream_id(pad: *mut GstPad) -> *mut c_char;
8854    pub fn gst_pad_get_task_state(pad: *mut GstPad) -> GstTaskState;
8855    pub fn gst_pad_has_current_caps(pad: *mut GstPad) -> gboolean;
8856    pub fn gst_pad_is_active(pad: *mut GstPad) -> gboolean;
8857    pub fn gst_pad_is_blocked(pad: *mut GstPad) -> gboolean;
8858    pub fn gst_pad_is_blocking(pad: *mut GstPad) -> gboolean;
8859    pub fn gst_pad_is_linked(pad: *mut GstPad) -> gboolean;
8860    pub fn gst_pad_iterate_internal_links(pad: *mut GstPad) -> *mut GstIterator;
8861    pub fn gst_pad_iterate_internal_links_default(
8862        pad: *mut GstPad,
8863        parent: *mut GstObject,
8864    ) -> *mut GstIterator;
8865    pub fn gst_pad_link(srcpad: *mut GstPad, sinkpad: *mut GstPad) -> GstPadLinkReturn;
8866    pub fn gst_pad_link_full(
8867        srcpad: *mut GstPad,
8868        sinkpad: *mut GstPad,
8869        flags: GstPadLinkCheck,
8870    ) -> GstPadLinkReturn;
8871    pub fn gst_pad_link_maybe_ghosting(src: *mut GstPad, sink: *mut GstPad) -> gboolean;
8872    pub fn gst_pad_link_maybe_ghosting_full(
8873        src: *mut GstPad,
8874        sink: *mut GstPad,
8875        flags: GstPadLinkCheck,
8876    ) -> gboolean;
8877    pub fn gst_pad_mark_reconfigure(pad: *mut GstPad);
8878    pub fn gst_pad_needs_reconfigure(pad: *mut GstPad) -> gboolean;
8879    pub fn gst_pad_pause_task(pad: *mut GstPad) -> gboolean;
8880    pub fn gst_pad_peer_query(pad: *mut GstPad, query: *mut GstQuery) -> gboolean;
8881    pub fn gst_pad_peer_query_accept_caps(pad: *mut GstPad, caps: *mut GstCaps) -> gboolean;
8882    pub fn gst_pad_peer_query_caps(pad: *mut GstPad, filter: *mut GstCaps) -> *mut GstCaps;
8883    pub fn gst_pad_peer_query_convert(
8884        pad: *mut GstPad,
8885        src_format: GstFormat,
8886        src_val: i64,
8887        dest_format: GstFormat,
8888        dest_val: *mut i64,
8889    ) -> gboolean;
8890    pub fn gst_pad_peer_query_duration(
8891        pad: *mut GstPad,
8892        format: GstFormat,
8893        duration: *mut i64,
8894    ) -> gboolean;
8895    pub fn gst_pad_peer_query_position(
8896        pad: *mut GstPad,
8897        format: GstFormat,
8898        cur: *mut i64,
8899    ) -> gboolean;
8900    pub fn gst_pad_proxy_query_accept_caps(pad: *mut GstPad, query: *mut GstQuery) -> gboolean;
8901    pub fn gst_pad_proxy_query_caps(pad: *mut GstPad, query: *mut GstQuery) -> gboolean;
8902    pub fn gst_pad_pull_range(
8903        pad: *mut GstPad,
8904        offset: u64,
8905        size: c_uint,
8906        buffer: *mut *mut GstBuffer,
8907    ) -> GstFlowReturn;
8908    pub fn gst_pad_push(pad: *mut GstPad, buffer: *mut GstBuffer) -> GstFlowReturn;
8909    pub fn gst_pad_push_event(pad: *mut GstPad, event: *mut GstEvent) -> gboolean;
8910    pub fn gst_pad_push_list(pad: *mut GstPad, list: *mut GstBufferList) -> GstFlowReturn;
8911    pub fn gst_pad_query(pad: *mut GstPad, query: *mut GstQuery) -> gboolean;
8912    pub fn gst_pad_query_accept_caps(pad: *mut GstPad, caps: *mut GstCaps) -> gboolean;
8913    pub fn gst_pad_query_caps(pad: *mut GstPad, filter: *mut GstCaps) -> *mut GstCaps;
8914    pub fn gst_pad_query_convert(
8915        pad: *mut GstPad,
8916        src_format: GstFormat,
8917        src_val: i64,
8918        dest_format: GstFormat,
8919        dest_val: *mut i64,
8920    ) -> gboolean;
8921    pub fn gst_pad_query_default(
8922        pad: *mut GstPad,
8923        parent: *mut GstObject,
8924        query: *mut GstQuery,
8925    ) -> gboolean;
8926    pub fn gst_pad_query_duration(
8927        pad: *mut GstPad,
8928        format: GstFormat,
8929        duration: *mut i64,
8930    ) -> gboolean;
8931    pub fn gst_pad_query_position(pad: *mut GstPad, format: GstFormat, cur: *mut i64) -> gboolean;
8932    pub fn gst_pad_remove_probe(pad: *mut GstPad, id: c_ulong);
8933    pub fn gst_pad_send_event(pad: *mut GstPad, event: *mut GstEvent) -> gboolean;
8934    pub fn gst_pad_set_activate_function_full(
8935        pad: *mut GstPad,
8936        activate: GstPadActivateFunction,
8937        user_data: gpointer,
8938        notify: glib::GDestroyNotify,
8939    );
8940    pub fn gst_pad_set_activatemode_function_full(
8941        pad: *mut GstPad,
8942        activatemode: GstPadActivateModeFunction,
8943        user_data: gpointer,
8944        notify: glib::GDestroyNotify,
8945    );
8946    pub fn gst_pad_set_active(pad: *mut GstPad, active: gboolean) -> gboolean;
8947    pub fn gst_pad_set_chain_function_full(
8948        pad: *mut GstPad,
8949        chain: GstPadChainFunction,
8950        user_data: gpointer,
8951        notify: glib::GDestroyNotify,
8952    );
8953    pub fn gst_pad_set_chain_list_function_full(
8954        pad: *mut GstPad,
8955        chainlist: GstPadChainListFunction,
8956        user_data: gpointer,
8957        notify: glib::GDestroyNotify,
8958    );
8959    pub fn gst_pad_set_element_private(pad: *mut GstPad, priv_: gpointer);
8960    pub fn gst_pad_set_event_full_function_full(
8961        pad: *mut GstPad,
8962        event: GstPadEventFullFunction,
8963        user_data: gpointer,
8964        notify: glib::GDestroyNotify,
8965    );
8966    pub fn gst_pad_set_event_function_full(
8967        pad: *mut GstPad,
8968        event: GstPadEventFunction,
8969        user_data: gpointer,
8970        notify: glib::GDestroyNotify,
8971    );
8972    pub fn gst_pad_set_getrange_function_full(
8973        pad: *mut GstPad,
8974        get: GstPadGetRangeFunction,
8975        user_data: gpointer,
8976        notify: glib::GDestroyNotify,
8977    );
8978    pub fn gst_pad_set_iterate_internal_links_function_full(
8979        pad: *mut GstPad,
8980        iterintlink: GstPadIterIntLinkFunction,
8981        user_data: gpointer,
8982        notify: glib::GDestroyNotify,
8983    );
8984    pub fn gst_pad_set_link_function_full(
8985        pad: *mut GstPad,
8986        link: GstPadLinkFunction,
8987        user_data: gpointer,
8988        notify: glib::GDestroyNotify,
8989    );
8990    pub fn gst_pad_set_offset(pad: *mut GstPad, offset: i64);
8991    pub fn gst_pad_set_query_function_full(
8992        pad: *mut GstPad,
8993        query: GstPadQueryFunction,
8994        user_data: gpointer,
8995        notify: glib::GDestroyNotify,
8996    );
8997    pub fn gst_pad_set_unlink_function_full(
8998        pad: *mut GstPad,
8999        unlink: GstPadUnlinkFunction,
9000        user_data: gpointer,
9001        notify: glib::GDestroyNotify,
9002    );
9003    pub fn gst_pad_start_task(
9004        pad: *mut GstPad,
9005        func: GstTaskFunction,
9006        user_data: gpointer,
9007        notify: glib::GDestroyNotify,
9008    ) -> gboolean;
9009    pub fn gst_pad_sticky_events_foreach(
9010        pad: *mut GstPad,
9011        foreach_func: GstPadStickyEventsForeachFunction,
9012        user_data: gpointer,
9013    );
9014    pub fn gst_pad_stop_task(pad: *mut GstPad) -> gboolean;
9015    pub fn gst_pad_store_sticky_event(pad: *mut GstPad, event: *mut GstEvent) -> GstFlowReturn;
9016    pub fn gst_pad_unlink(srcpad: *mut GstPad, sinkpad: *mut GstPad) -> gboolean;
9017    pub fn gst_pad_use_fixed_caps(pad: *mut GstPad);
9018
9019    //=========================================================================
9020    // GstPadTemplate
9021    //=========================================================================
9022    pub fn gst_pad_template_get_type() -> GType;
9023    pub fn gst_pad_template_new(
9024        name_template: *const c_char,
9025        direction: GstPadDirection,
9026        presence: GstPadPresence,
9027        caps: *mut GstCaps,
9028    ) -> *mut GstPadTemplate;
9029    pub fn gst_pad_template_new_from_static_pad_template_with_gtype(
9030        pad_template: *mut GstStaticPadTemplate,
9031        pad_type: GType,
9032    ) -> *mut GstPadTemplate;
9033    pub fn gst_pad_template_new_with_gtype(
9034        name_template: *const c_char,
9035        direction: GstPadDirection,
9036        presence: GstPadPresence,
9037        caps: *mut GstCaps,
9038        pad_type: GType,
9039    ) -> *mut GstPadTemplate;
9040    pub fn gst_pad_template_get_caps(templ: *mut GstPadTemplate) -> *mut GstCaps;
9041    #[cfg(feature = "v1_18")]
9042    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
9043    pub fn gst_pad_template_get_documentation_caps(templ: *mut GstPadTemplate) -> *mut GstCaps;
9044    pub fn gst_pad_template_pad_created(templ: *mut GstPadTemplate, pad: *mut GstPad);
9045    #[cfg(feature = "v1_18")]
9046    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
9047    pub fn gst_pad_template_set_documentation_caps(templ: *mut GstPadTemplate, caps: *mut GstCaps);
9048
9049    //=========================================================================
9050    // GstParamArray
9051    //=========================================================================
9052    pub fn gst_param_spec_array_get_type() -> GType;
9053
9054    //=========================================================================
9055    // GstParamFraction
9056    //=========================================================================
9057    pub fn gst_param_spec_fraction_get_type() -> GType;
9058
9059    //=========================================================================
9060    // GstPipeline
9061    //=========================================================================
9062    pub fn gst_pipeline_get_type() -> GType;
9063    pub fn gst_pipeline_new(name: *const c_char) -> *mut GstElement;
9064    pub fn gst_pipeline_auto_clock(pipeline: *mut GstPipeline);
9065    pub fn gst_pipeline_get_auto_flush_bus(pipeline: *mut GstPipeline) -> gboolean;
9066    pub fn gst_pipeline_get_bus(pipeline: *mut GstPipeline) -> *mut GstBus;
9067    pub fn gst_pipeline_get_clock(pipeline: *mut GstPipeline) -> *mut GstClock;
9068    #[cfg(feature = "v1_24")]
9069    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
9070    pub fn gst_pipeline_get_configured_latency(pipeline: *mut GstPipeline) -> GstClockTime;
9071    pub fn gst_pipeline_get_delay(pipeline: *mut GstPipeline) -> GstClockTime;
9072    pub fn gst_pipeline_get_latency(pipeline: *mut GstPipeline) -> GstClockTime;
9073    pub fn gst_pipeline_get_pipeline_clock(pipeline: *mut GstPipeline) -> *mut GstClock;
9074    #[cfg(feature = "v1_24")]
9075    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
9076    pub fn gst_pipeline_is_live(pipeline: *mut GstPipeline) -> gboolean;
9077    pub fn gst_pipeline_set_auto_flush_bus(pipeline: *mut GstPipeline, auto_flush: gboolean);
9078    pub fn gst_pipeline_set_clock(pipeline: *mut GstPipeline, clock: *mut GstClock) -> gboolean;
9079    pub fn gst_pipeline_set_delay(pipeline: *mut GstPipeline, delay: GstClockTime);
9080    pub fn gst_pipeline_set_latency(pipeline: *mut GstPipeline, latency: GstClockTime);
9081    pub fn gst_pipeline_use_clock(pipeline: *mut GstPipeline, clock: *mut GstClock);
9082
9083    //=========================================================================
9084    // GstPlugin
9085    //=========================================================================
9086    pub fn gst_plugin_get_type() -> GType;
9087    pub fn gst_plugin_list_free(list: *mut glib::GList);
9088    pub fn gst_plugin_load_by_name(name: *const c_char) -> *mut GstPlugin;
9089    pub fn gst_plugin_load_file(
9090        filename: *const c_char,
9091        error: *mut *mut glib::GError,
9092    ) -> *mut GstPlugin;
9093    pub fn gst_plugin_register_static(
9094        major_version: c_int,
9095        minor_version: c_int,
9096        name: *const c_char,
9097        description: *const c_char,
9098        init_func: GstPluginInitFunc,
9099        version: *const c_char,
9100        license: *const c_char,
9101        source: *const c_char,
9102        package: *const c_char,
9103        origin: *const c_char,
9104    ) -> gboolean;
9105    pub fn gst_plugin_register_static_full(
9106        major_version: c_int,
9107        minor_version: c_int,
9108        name: *const c_char,
9109        description: *const c_char,
9110        init_full_func: GstPluginInitFullFunc,
9111        version: *const c_char,
9112        license: *const c_char,
9113        source: *const c_char,
9114        package: *const c_char,
9115        origin: *const c_char,
9116        user_data: gpointer,
9117    ) -> gboolean;
9118    pub fn gst_plugin_add_dependency(
9119        plugin: *mut GstPlugin,
9120        env_vars: *mut *const c_char,
9121        paths: *mut *const c_char,
9122        names: *mut *const c_char,
9123        flags: GstPluginDependencyFlags,
9124    );
9125    pub fn gst_plugin_add_dependency_simple(
9126        plugin: *mut GstPlugin,
9127        env_vars: *const c_char,
9128        paths: *const c_char,
9129        names: *const c_char,
9130        flags: GstPluginDependencyFlags,
9131    );
9132    #[cfg(feature = "v1_24")]
9133    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
9134    pub fn gst_plugin_add_status_error(plugin: *mut GstPlugin, message: *const c_char);
9135    #[cfg(feature = "v1_24")]
9136    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
9137    pub fn gst_plugin_add_status_info(plugin: *mut GstPlugin, message: *const c_char);
9138    #[cfg(feature = "v1_24")]
9139    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
9140    pub fn gst_plugin_add_status_warning(plugin: *mut GstPlugin, message: *const c_char);
9141    pub fn gst_plugin_get_cache_data(plugin: *mut GstPlugin) -> *const GstStructure;
9142    pub fn gst_plugin_get_description(plugin: *mut GstPlugin) -> *const c_char;
9143    pub fn gst_plugin_get_filename(plugin: *mut GstPlugin) -> *const c_char;
9144    pub fn gst_plugin_get_license(plugin: *mut GstPlugin) -> *const c_char;
9145    pub fn gst_plugin_get_name(plugin: *mut GstPlugin) -> *const c_char;
9146    pub fn gst_plugin_get_origin(plugin: *mut GstPlugin) -> *const c_char;
9147    pub fn gst_plugin_get_package(plugin: *mut GstPlugin) -> *const c_char;
9148    pub fn gst_plugin_get_release_date_string(plugin: *mut GstPlugin) -> *const c_char;
9149    pub fn gst_plugin_get_source(plugin: *mut GstPlugin) -> *const c_char;
9150    #[cfg(feature = "v1_24")]
9151    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
9152    pub fn gst_plugin_get_status_errors(plugin: *mut GstPlugin) -> *mut *mut c_char;
9153    #[cfg(feature = "v1_24")]
9154    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
9155    pub fn gst_plugin_get_status_infos(plugin: *mut GstPlugin) -> *mut *mut c_char;
9156    #[cfg(feature = "v1_24")]
9157    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
9158    pub fn gst_plugin_get_status_warnings(plugin: *mut GstPlugin) -> *mut *mut c_char;
9159    pub fn gst_plugin_get_version(plugin: *mut GstPlugin) -> *const c_char;
9160    pub fn gst_plugin_is_loaded(plugin: *mut GstPlugin) -> gboolean;
9161    pub fn gst_plugin_load(plugin: *mut GstPlugin) -> *mut GstPlugin;
9162    pub fn gst_plugin_set_cache_data(plugin: *mut GstPlugin, cache_data: *mut GstStructure);
9163
9164    //=========================================================================
9165    // GstPluginFeature
9166    //=========================================================================
9167    pub fn gst_plugin_feature_get_type() -> GType;
9168    pub fn gst_plugin_feature_list_copy(list: *mut glib::GList) -> *mut glib::GList;
9169    pub fn gst_plugin_feature_list_debug(list: *mut glib::GList);
9170    pub fn gst_plugin_feature_list_free(list: *mut glib::GList);
9171    pub fn gst_plugin_feature_rank_compare_func(p1: gconstpointer, p2: gconstpointer) -> c_int;
9172    pub fn gst_plugin_feature_check_version(
9173        feature: *mut GstPluginFeature,
9174        min_major: c_uint,
9175        min_minor: c_uint,
9176        min_micro: c_uint,
9177    ) -> gboolean;
9178    pub fn gst_plugin_feature_get_plugin(feature: *mut GstPluginFeature) -> *mut GstPlugin;
9179    pub fn gst_plugin_feature_get_plugin_name(feature: *mut GstPluginFeature) -> *const c_char;
9180    pub fn gst_plugin_feature_get_rank(feature: *mut GstPluginFeature) -> c_uint;
9181    pub fn gst_plugin_feature_load(feature: *mut GstPluginFeature) -> *mut GstPluginFeature;
9182    pub fn gst_plugin_feature_set_rank(feature: *mut GstPluginFeature, rank: c_uint);
9183
9184    //=========================================================================
9185    // GstProxyPad
9186    //=========================================================================
9187    pub fn gst_proxy_pad_get_type() -> GType;
9188    pub fn gst_proxy_pad_chain_default(
9189        pad: *mut GstPad,
9190        parent: *mut GstObject,
9191        buffer: *mut GstBuffer,
9192    ) -> GstFlowReturn;
9193    pub fn gst_proxy_pad_chain_list_default(
9194        pad: *mut GstPad,
9195        parent: *mut GstObject,
9196        list: *mut GstBufferList,
9197    ) -> GstFlowReturn;
9198    pub fn gst_proxy_pad_getrange_default(
9199        pad: *mut GstPad,
9200        parent: *mut GstObject,
9201        offset: u64,
9202        size: c_uint,
9203        buffer: *mut *mut GstBuffer,
9204    ) -> GstFlowReturn;
9205    pub fn gst_proxy_pad_iterate_internal_links_default(
9206        pad: *mut GstPad,
9207        parent: *mut GstObject,
9208    ) -> *mut GstIterator;
9209    pub fn gst_proxy_pad_get_internal(pad: *mut GstProxyPad) -> *mut GstProxyPad;
9210
9211    //=========================================================================
9212    // GstRegistry
9213    //=========================================================================
9214    pub fn gst_registry_get_type() -> GType;
9215    pub fn gst_registry_fork_is_enabled() -> gboolean;
9216    pub fn gst_registry_fork_set_enabled(enabled: gboolean);
9217    pub fn gst_registry_get() -> *mut GstRegistry;
9218    pub fn gst_registry_add_feature(
9219        registry: *mut GstRegistry,
9220        feature: *mut GstPluginFeature,
9221    ) -> gboolean;
9222    pub fn gst_registry_add_plugin(registry: *mut GstRegistry, plugin: *mut GstPlugin) -> gboolean;
9223    pub fn gst_registry_check_feature_version(
9224        registry: *mut GstRegistry,
9225        feature_name: *const c_char,
9226        min_major: c_uint,
9227        min_minor: c_uint,
9228        min_micro: c_uint,
9229    ) -> gboolean;
9230    pub fn gst_registry_feature_filter(
9231        registry: *mut GstRegistry,
9232        filter: GstPluginFeatureFilter,
9233        first: gboolean,
9234        user_data: gpointer,
9235    ) -> *mut glib::GList;
9236    pub fn gst_registry_find_feature(
9237        registry: *mut GstRegistry,
9238        name: *const c_char,
9239        type_: GType,
9240    ) -> *mut GstPluginFeature;
9241    pub fn gst_registry_find_plugin(
9242        registry: *mut GstRegistry,
9243        name: *const c_char,
9244    ) -> *mut GstPlugin;
9245    pub fn gst_registry_get_feature_list(
9246        registry: *mut GstRegistry,
9247        type_: GType,
9248    ) -> *mut glib::GList;
9249    pub fn gst_registry_get_feature_list_by_plugin(
9250        registry: *mut GstRegistry,
9251        name: *const c_char,
9252    ) -> *mut glib::GList;
9253    pub fn gst_registry_get_feature_list_cookie(registry: *mut GstRegistry) -> u32;
9254    pub fn gst_registry_get_plugin_list(registry: *mut GstRegistry) -> *mut glib::GList;
9255    pub fn gst_registry_lookup(
9256        registry: *mut GstRegistry,
9257        filename: *const c_char,
9258    ) -> *mut GstPlugin;
9259    pub fn gst_registry_lookup_feature(
9260        registry: *mut GstRegistry,
9261        name: *const c_char,
9262    ) -> *mut GstPluginFeature;
9263    pub fn gst_registry_plugin_filter(
9264        registry: *mut GstRegistry,
9265        filter: GstPluginFilter,
9266        first: gboolean,
9267        user_data: gpointer,
9268    ) -> *mut glib::GList;
9269    pub fn gst_registry_remove_feature(registry: *mut GstRegistry, feature: *mut GstPluginFeature);
9270    pub fn gst_registry_remove_plugin(registry: *mut GstRegistry, plugin: *mut GstPlugin);
9271    pub fn gst_registry_scan_path(registry: *mut GstRegistry, path: *const c_char) -> gboolean;
9272
9273    //=========================================================================
9274    // GstSharedTaskPool
9275    //=========================================================================
9276    #[cfg(feature = "v1_20")]
9277    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
9278    pub fn gst_shared_task_pool_get_type() -> GType;
9279    #[cfg(feature = "v1_20")]
9280    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
9281    pub fn gst_shared_task_pool_new() -> *mut GstTaskPool;
9282    #[cfg(feature = "v1_20")]
9283    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
9284    pub fn gst_shared_task_pool_get_max_threads(pool: *mut GstSharedTaskPool) -> c_uint;
9285    #[cfg(feature = "v1_20")]
9286    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
9287    pub fn gst_shared_task_pool_set_max_threads(pool: *mut GstSharedTaskPool, max_threads: c_uint);
9288
9289    //=========================================================================
9290    // GstStream
9291    //=========================================================================
9292    pub fn gst_stream_get_type() -> GType;
9293    pub fn gst_stream_new(
9294        stream_id: *const c_char,
9295        caps: *mut GstCaps,
9296        type_: GstStreamType,
9297        flags: GstStreamFlags,
9298    ) -> *mut GstStream;
9299    pub fn gst_stream_get_caps(stream: *mut GstStream) -> *mut GstCaps;
9300    pub fn gst_stream_get_stream_flags(stream: *mut GstStream) -> GstStreamFlags;
9301    pub fn gst_stream_get_stream_id(stream: *mut GstStream) -> *const c_char;
9302    pub fn gst_stream_get_stream_type(stream: *mut GstStream) -> GstStreamType;
9303    pub fn gst_stream_get_tags(stream: *mut GstStream) -> *mut GstTagList;
9304    pub fn gst_stream_set_caps(stream: *mut GstStream, caps: *mut GstCaps);
9305    pub fn gst_stream_set_stream_flags(stream: *mut GstStream, flags: GstStreamFlags);
9306    pub fn gst_stream_set_stream_type(stream: *mut GstStream, stream_type: GstStreamType);
9307    pub fn gst_stream_set_tags(stream: *mut GstStream, tags: *mut GstTagList);
9308
9309    //=========================================================================
9310    // GstStreamCollection
9311    //=========================================================================
9312    pub fn gst_stream_collection_get_type() -> GType;
9313    pub fn gst_stream_collection_new(upstream_id: *const c_char) -> *mut GstStreamCollection;
9314    pub fn gst_stream_collection_add_stream(
9315        collection: *mut GstStreamCollection,
9316        stream: *mut GstStream,
9317    ) -> gboolean;
9318    pub fn gst_stream_collection_get_size(collection: *mut GstStreamCollection) -> c_uint;
9319    pub fn gst_stream_collection_get_stream(
9320        collection: *mut GstStreamCollection,
9321        index: c_uint,
9322    ) -> *mut GstStream;
9323    pub fn gst_stream_collection_get_upstream_id(
9324        collection: *mut GstStreamCollection,
9325    ) -> *const c_char;
9326
9327    //=========================================================================
9328    // GstSystemClock
9329    //=========================================================================
9330    pub fn gst_system_clock_get_type() -> GType;
9331    pub fn gst_system_clock_obtain() -> *mut GstClock;
9332    pub fn gst_system_clock_set_default(new_clock: *mut GstClock);
9333
9334    //=========================================================================
9335    // GstTask
9336    //=========================================================================
9337    pub fn gst_task_get_type() -> GType;
9338    pub fn gst_task_new(
9339        func: GstTaskFunction,
9340        user_data: gpointer,
9341        notify: glib::GDestroyNotify,
9342    ) -> *mut GstTask;
9343    pub fn gst_task_cleanup_all();
9344    pub fn gst_task_get_pool(task: *mut GstTask) -> *mut GstTaskPool;
9345    pub fn gst_task_get_state(task: *mut GstTask) -> GstTaskState;
9346    pub fn gst_task_join(task: *mut GstTask) -> gboolean;
9347    pub fn gst_task_pause(task: *mut GstTask) -> gboolean;
9348    #[cfg(feature = "v1_18")]
9349    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
9350    pub fn gst_task_resume(task: *mut GstTask) -> gboolean;
9351    pub fn gst_task_set_enter_callback(
9352        task: *mut GstTask,
9353        enter_func: GstTaskThreadFunc,
9354        user_data: gpointer,
9355        notify: glib::GDestroyNotify,
9356    );
9357    pub fn gst_task_set_leave_callback(
9358        task: *mut GstTask,
9359        leave_func: GstTaskThreadFunc,
9360        user_data: gpointer,
9361        notify: glib::GDestroyNotify,
9362    );
9363    pub fn gst_task_set_lock(task: *mut GstTask, mutex: *mut glib::GRecMutex);
9364    pub fn gst_task_set_pool(task: *mut GstTask, pool: *mut GstTaskPool);
9365    pub fn gst_task_set_state(task: *mut GstTask, state: GstTaskState) -> gboolean;
9366    pub fn gst_task_start(task: *mut GstTask) -> gboolean;
9367    pub fn gst_task_stop(task: *mut GstTask) -> gboolean;
9368
9369    //=========================================================================
9370    // GstTaskPool
9371    //=========================================================================
9372    pub fn gst_task_pool_get_type() -> GType;
9373    pub fn gst_task_pool_new() -> *mut GstTaskPool;
9374    pub fn gst_task_pool_cleanup(pool: *mut GstTaskPool);
9375    #[cfg(feature = "v1_20")]
9376    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
9377    pub fn gst_task_pool_dispose_handle(pool: *mut GstTaskPool, id: gpointer);
9378    pub fn gst_task_pool_join(pool: *mut GstTaskPool, id: gpointer);
9379    pub fn gst_task_pool_prepare(pool: *mut GstTaskPool, error: *mut *mut glib::GError);
9380    pub fn gst_task_pool_push(
9381        pool: *mut GstTaskPool,
9382        func: GstTaskPoolFunction,
9383        user_data: gpointer,
9384        error: *mut *mut glib::GError,
9385    ) -> gpointer;
9386
9387    //=========================================================================
9388    // GstTracer
9389    //=========================================================================
9390    pub fn gst_tracer_get_type() -> GType;
9391    pub fn gst_tracer_register(
9392        plugin: *mut GstPlugin,
9393        name: *const c_char,
9394        type_: GType,
9395    ) -> gboolean;
9396
9397    //=========================================================================
9398    // GstTracerFactory
9399    //=========================================================================
9400    pub fn gst_tracer_factory_get_type() -> GType;
9401    pub fn gst_tracer_factory_get_list() -> *mut glib::GList;
9402    pub fn gst_tracer_factory_get_tracer_type(factory: *mut GstTracerFactory) -> GType;
9403
9404    //=========================================================================
9405    // GstTracerRecord
9406    //=========================================================================
9407    pub fn gst_tracer_record_get_type() -> GType;
9408    pub fn gst_tracer_record_new(
9409        name: *const c_char,
9410        firstfield: *const c_char,
9411        ...
9412    ) -> *mut GstTracerRecord;
9413    pub fn gst_tracer_record_log(self_: *mut GstTracerRecord, ...);
9414
9415    //=========================================================================
9416    // GstTypeFindFactory
9417    //=========================================================================
9418    pub fn gst_type_find_factory_get_type() -> GType;
9419    pub fn gst_type_find_factory_get_list() -> *mut glib::GList;
9420    pub fn gst_type_find_factory_call_function(
9421        factory: *mut GstTypeFindFactory,
9422        find: *mut GstTypeFind,
9423    );
9424    pub fn gst_type_find_factory_get_caps(factory: *mut GstTypeFindFactory) -> *mut GstCaps;
9425    pub fn gst_type_find_factory_get_extensions(
9426        factory: *mut GstTypeFindFactory,
9427    ) -> *const *const c_char;
9428    pub fn gst_type_find_factory_has_function(factory: *mut GstTypeFindFactory) -> gboolean;
9429
9430    //=========================================================================
9431    // GstValueArray
9432    //=========================================================================
9433    pub fn gst_value_array_get_type() -> GType;
9434    pub fn gst_value_array_append_and_take_value(
9435        value: *mut gobject::GValue,
9436        append_value: *mut gobject::GValue,
9437    );
9438    pub fn gst_value_array_append_value(
9439        value: *mut gobject::GValue,
9440        append_value: *const gobject::GValue,
9441    );
9442    pub fn gst_value_array_get_size(value: *const gobject::GValue) -> c_uint;
9443    pub fn gst_value_array_get_value(
9444        value: *const gobject::GValue,
9445        index: c_uint,
9446    ) -> *const gobject::GValue;
9447    #[cfg(feature = "v1_18")]
9448    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
9449    pub fn gst_value_array_init(
9450        value: *mut gobject::GValue,
9451        prealloc: c_uint,
9452    ) -> *mut gobject::GValue;
9453    pub fn gst_value_array_prepend_value(
9454        value: *mut gobject::GValue,
9455        prepend_value: *const gobject::GValue,
9456    );
9457
9458    //=========================================================================
9459    // GstValueList
9460    //=========================================================================
9461    pub fn gst_value_list_get_type() -> GType;
9462    pub fn gst_value_list_append_and_take_value(
9463        value: *mut gobject::GValue,
9464        append_value: *mut gobject::GValue,
9465    );
9466    pub fn gst_value_list_append_value(
9467        value: *mut gobject::GValue,
9468        append_value: *const gobject::GValue,
9469    );
9470    pub fn gst_value_list_concat(
9471        dest: *mut gobject::GValue,
9472        value1: *const gobject::GValue,
9473        value2: *const gobject::GValue,
9474    );
9475    pub fn gst_value_list_get_size(value: *const gobject::GValue) -> c_uint;
9476    pub fn gst_value_list_get_value(
9477        value: *const gobject::GValue,
9478        index: c_uint,
9479    ) -> *const gobject::GValue;
9480    #[cfg(feature = "v1_18")]
9481    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
9482    pub fn gst_value_list_init(
9483        value: *mut gobject::GValue,
9484        prealloc: c_uint,
9485    ) -> *mut gobject::GValue;
9486    pub fn gst_value_list_merge(
9487        dest: *mut gobject::GValue,
9488        value1: *const gobject::GValue,
9489        value2: *const gobject::GValue,
9490    );
9491    pub fn gst_value_list_prepend_value(
9492        value: *mut gobject::GValue,
9493        prepend_value: *const gobject::GValue,
9494    );
9495
9496    //=========================================================================
9497    // GstChildProxy
9498    //=========================================================================
9499    pub fn gst_child_proxy_get_type() -> GType;
9500    pub fn gst_child_proxy_child_added(
9501        parent: *mut GstChildProxy,
9502        child: *mut gobject::GObject,
9503        name: *const c_char,
9504    );
9505    pub fn gst_child_proxy_child_removed(
9506        parent: *mut GstChildProxy,
9507        child: *mut gobject::GObject,
9508        name: *const c_char,
9509    );
9510    pub fn gst_child_proxy_get(object: *mut GstChildProxy, first_property_name: *const c_char, ...);
9511    pub fn gst_child_proxy_get_child_by_index(
9512        parent: *mut GstChildProxy,
9513        index: c_uint,
9514    ) -> *mut gobject::GObject;
9515    pub fn gst_child_proxy_get_child_by_name(
9516        parent: *mut GstChildProxy,
9517        name: *const c_char,
9518    ) -> *mut gobject::GObject;
9519    #[cfg(feature = "v1_22")]
9520    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
9521    pub fn gst_child_proxy_get_child_by_name_recurse(
9522        child_proxy: *mut GstChildProxy,
9523        name: *const c_char,
9524    ) -> *mut gobject::GObject;
9525    pub fn gst_child_proxy_get_children_count(parent: *mut GstChildProxy) -> c_uint;
9526    pub fn gst_child_proxy_get_property(
9527        object: *mut GstChildProxy,
9528        name: *const c_char,
9529        value: *mut gobject::GValue,
9530    );
9531    //pub fn gst_child_proxy_get_valist(object: *mut GstChildProxy, first_property_name: *const c_char, var_args: /*Unimplemented*/va_list);
9532    pub fn gst_child_proxy_lookup(
9533        object: *mut GstChildProxy,
9534        name: *const c_char,
9535        target: *mut *mut gobject::GObject,
9536        pspec: *mut *mut gobject::GParamSpec,
9537    ) -> gboolean;
9538    pub fn gst_child_proxy_set(object: *mut GstChildProxy, first_property_name: *const c_char, ...);
9539    pub fn gst_child_proxy_set_property(
9540        object: *mut GstChildProxy,
9541        name: *const c_char,
9542        value: *const gobject::GValue,
9543    );
9544    //pub fn gst_child_proxy_set_valist(object: *mut GstChildProxy, first_property_name: *const c_char, var_args: /*Unimplemented*/va_list);
9545
9546    //=========================================================================
9547    // GstPreset
9548    //=========================================================================
9549    pub fn gst_preset_get_type() -> GType;
9550    pub fn gst_preset_get_app_dir() -> *const c_char;
9551    pub fn gst_preset_set_app_dir(app_dir: *const c_char) -> gboolean;
9552    pub fn gst_preset_delete_preset(preset: *mut GstPreset, name: *const c_char) -> gboolean;
9553    pub fn gst_preset_get_meta(
9554        preset: *mut GstPreset,
9555        name: *const c_char,
9556        tag: *const c_char,
9557        value: *mut *mut c_char,
9558    ) -> gboolean;
9559    pub fn gst_preset_get_preset_names(preset: *mut GstPreset) -> *mut *mut c_char;
9560    pub fn gst_preset_get_property_names(preset: *mut GstPreset) -> *mut *mut c_char;
9561    pub fn gst_preset_is_editable(preset: *mut GstPreset) -> gboolean;
9562    pub fn gst_preset_load_preset(preset: *mut GstPreset, name: *const c_char) -> gboolean;
9563    pub fn gst_preset_rename_preset(
9564        preset: *mut GstPreset,
9565        old_name: *const c_char,
9566        new_name: *const c_char,
9567    ) -> gboolean;
9568    pub fn gst_preset_save_preset(preset: *mut GstPreset, name: *const c_char) -> gboolean;
9569    pub fn gst_preset_set_meta(
9570        preset: *mut GstPreset,
9571        name: *const c_char,
9572        tag: *const c_char,
9573        value: *const c_char,
9574    ) -> gboolean;
9575
9576    //=========================================================================
9577    // GstTagSetter
9578    //=========================================================================
9579    pub fn gst_tag_setter_get_type() -> GType;
9580    //pub fn gst_tag_setter_add_tag_valist(setter: *mut GstTagSetter, mode: GstTagMergeMode, tag: *const c_char, var_args: /*Unimplemented*/va_list);
9581    //pub fn gst_tag_setter_add_tag_valist_values(setter: *mut GstTagSetter, mode: GstTagMergeMode, tag: *const c_char, var_args: /*Unimplemented*/va_list);
9582    pub fn gst_tag_setter_add_tag_value(
9583        setter: *mut GstTagSetter,
9584        mode: GstTagMergeMode,
9585        tag: *const c_char,
9586        value: *const gobject::GValue,
9587    );
9588    pub fn gst_tag_setter_add_tag_values(
9589        setter: *mut GstTagSetter,
9590        mode: GstTagMergeMode,
9591        tag: *const c_char,
9592        ...
9593    );
9594    pub fn gst_tag_setter_add_tags(
9595        setter: *mut GstTagSetter,
9596        mode: GstTagMergeMode,
9597        tag: *const c_char,
9598        ...
9599    );
9600    pub fn gst_tag_setter_get_tag_list(setter: *mut GstTagSetter) -> *const GstTagList;
9601    pub fn gst_tag_setter_get_tag_merge_mode(setter: *mut GstTagSetter) -> GstTagMergeMode;
9602    pub fn gst_tag_setter_merge_tags(
9603        setter: *mut GstTagSetter,
9604        list: *const GstTagList,
9605        mode: GstTagMergeMode,
9606    );
9607    pub fn gst_tag_setter_reset_tags(setter: *mut GstTagSetter);
9608    pub fn gst_tag_setter_set_tag_merge_mode(setter: *mut GstTagSetter, mode: GstTagMergeMode);
9609
9610    //=========================================================================
9611    // GstTocSetter
9612    //=========================================================================
9613    pub fn gst_toc_setter_get_type() -> GType;
9614    pub fn gst_toc_setter_get_toc(setter: *mut GstTocSetter) -> *mut GstToc;
9615    pub fn gst_toc_setter_reset(setter: *mut GstTocSetter);
9616    pub fn gst_toc_setter_set_toc(setter: *mut GstTocSetter, toc: *mut GstToc);
9617
9618    //=========================================================================
9619    // GstURIHandler
9620    //=========================================================================
9621    pub fn gst_uri_handler_get_type() -> GType;
9622    pub fn gst_uri_handler_get_protocols(handler: *mut GstURIHandler) -> *const *const c_char;
9623    pub fn gst_uri_handler_get_uri(handler: *mut GstURIHandler) -> *mut c_char;
9624    pub fn gst_uri_handler_get_uri_type(handler: *mut GstURIHandler) -> GstURIType;
9625    pub fn gst_uri_handler_set_uri(
9626        handler: *mut GstURIHandler,
9627        uri: *const c_char,
9628        error: *mut *mut glib::GError,
9629    ) -> gboolean;
9630
9631    //=========================================================================
9632    // Other functions
9633    //=========================================================================
9634    pub fn gst_calculate_linear_regression(
9635        xy: *const GstClockTime,
9636        temp: *mut GstClockTime,
9637        n: c_uint,
9638        m_num: *mut GstClockTime,
9639        m_denom: *mut GstClockTime,
9640        b: *mut GstClockTime,
9641        xbase: *mut GstClockTime,
9642        r_squared: *mut c_double,
9643    ) -> gboolean;
9644    #[cfg(feature = "v1_18_3")]
9645    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
9646    pub fn gst_clear_buffer(buf_ptr: *mut *mut GstBuffer);
9647    #[cfg(feature = "v1_18_3")]
9648    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
9649    pub fn gst_clear_buffer_list(list_ptr: *mut *mut GstBufferList);
9650    #[cfg(feature = "v1_18_3")]
9651    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
9652    pub fn gst_clear_caps(caps_ptr: *mut *mut GstCaps);
9653    #[cfg(feature = "v1_24")]
9654    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
9655    pub fn gst_clear_context(context_ptr: *mut *mut GstContext);
9656    #[cfg(feature = "v1_18_3")]
9657    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
9658    pub fn gst_clear_event(event_ptr: *mut *mut GstEvent);
9659    #[cfg(feature = "v1_18_3")]
9660    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
9661    pub fn gst_clear_message(msg_ptr: *mut *mut GstMessage);
9662    #[cfg(feature = "v1_16")]
9663    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
9664    pub fn gst_clear_mini_object(object_ptr: *mut *mut GstMiniObject);
9665    #[cfg(feature = "v1_16")]
9666    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
9667    pub fn gst_clear_object(object_ptr: *mut *mut GstObject);
9668    #[cfg(feature = "v1_24")]
9669    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
9670    pub fn gst_clear_promise(promise_ptr: *mut *mut GstPromise);
9671    #[cfg(feature = "v1_18_3")]
9672    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
9673    pub fn gst_clear_query(query_ptr: *mut *mut GstQuery);
9674    #[cfg(feature = "v1_24")]
9675    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
9676    pub fn gst_clear_sample(sample_ptr: *mut *mut GstSample);
9677    #[cfg(feature = "v1_16")]
9678    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
9679    pub fn gst_clear_structure(structure_ptr: *mut *mut GstStructure);
9680    #[cfg(feature = "v1_18_3")]
9681    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
9682    pub fn gst_clear_tag_list(taglist_ptr: *mut *mut GstTagList);
9683    #[cfg(feature = "v1_18_3")]
9684    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))]
9685    pub fn gst_clear_uri(uri_ptr: *mut *mut GstUri);
9686    pub fn gst_debug_add_log_function(
9687        func: GstLogFunction,
9688        user_data: gpointer,
9689        notify: glib::GDestroyNotify,
9690    );
9691    pub fn gst_debug_add_ring_buffer_logger(max_size_per_thread: c_uint, thread_timeout: c_uint);
9692    pub fn gst_debug_bin_to_dot_data(
9693        bin: *mut GstBin,
9694        details: GstDebugGraphDetails,
9695    ) -> *mut c_char;
9696    pub fn gst_debug_bin_to_dot_file(
9697        bin: *mut GstBin,
9698        details: GstDebugGraphDetails,
9699        file_name: *const c_char,
9700    );
9701    pub fn gst_debug_bin_to_dot_file_with_ts(
9702        bin: *mut GstBin,
9703        details: GstDebugGraphDetails,
9704        file_name: *const c_char,
9705    );
9706    pub fn gst_debug_construct_term_color(colorinfo: c_uint) -> *mut c_char;
9707    pub fn gst_debug_construct_win_color(colorinfo: c_uint) -> c_int;
9708    pub fn gst_debug_get_all_categories() -> *mut glib::GSList;
9709    pub fn gst_debug_get_color_mode() -> GstDebugColorMode;
9710    pub fn gst_debug_get_default_threshold() -> GstDebugLevel;
9711    pub fn gst_debug_get_stack_trace(flags: GstStackTraceFlags) -> *mut c_char;
9712    pub fn gst_debug_is_active() -> gboolean;
9713    pub fn gst_debug_is_colored() -> gboolean;
9714    pub fn gst_debug_log(
9715        category: *mut GstDebugCategory,
9716        level: GstDebugLevel,
9717        file: *const c_char,
9718        function: *const c_char,
9719        line: c_int,
9720        object: *mut gobject::GObject,
9721        format: *const c_char,
9722        ...
9723    );
9724    pub fn gst_debug_log_default(
9725        category: *mut GstDebugCategory,
9726        level: GstDebugLevel,
9727        file: *const c_char,
9728        function: *const c_char,
9729        line: c_int,
9730        object: *mut gobject::GObject,
9731        message: *mut GstDebugMessage,
9732        user_data: gpointer,
9733    );
9734    #[cfg(feature = "v1_18")]
9735    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
9736    pub fn gst_debug_log_get_line(
9737        category: *mut GstDebugCategory,
9738        level: GstDebugLevel,
9739        file: *const c_char,
9740        function: *const c_char,
9741        line: c_int,
9742        object: *mut gobject::GObject,
9743        message: *mut GstDebugMessage,
9744    ) -> *mut c_char;
9745    #[cfg(feature = "v1_22")]
9746    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
9747    pub fn gst_debug_log_id(
9748        category: *mut GstDebugCategory,
9749        level: GstDebugLevel,
9750        file: *const c_char,
9751        function: *const c_char,
9752        line: c_int,
9753        id: *const c_char,
9754        format: *const c_char,
9755        ...
9756    );
9757    #[cfg(feature = "v1_22")]
9758    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
9759    pub fn gst_debug_log_id_literal(
9760        category: *mut GstDebugCategory,
9761        level: GstDebugLevel,
9762        file: *const c_char,
9763        function: *const c_char,
9764        line: c_int,
9765        id: *const c_char,
9766        message_string: *const c_char,
9767    );
9768    #[cfg(feature = "v1_28")]
9769    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
9770    pub fn gst_debug_log_id_literal_with_context(
9771        ctx: *mut GstLogContext,
9772        level: GstDebugLevel,
9773        file: *const c_char,
9774        function: *const c_char,
9775        line: c_int,
9776        id: *const c_char,
9777        message: *const c_char,
9778    );
9779    //#[cfg(feature = "v1_22")]
9780    //#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
9781    //pub fn gst_debug_log_id_valist(category: *mut GstDebugCategory, level: GstDebugLevel, file: *const c_char, function: *const c_char, line: c_int, id: *const c_char, format: *const c_char, args: /*Unimplemented*/va_list);
9782    #[cfg(feature = "v1_28")]
9783    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
9784    pub fn gst_debug_log_id_with_context(
9785        ctx: *mut GstLogContext,
9786        level: GstDebugLevel,
9787        file: *const c_char,
9788        function: *const c_char,
9789        line: c_int,
9790        id: *const c_char,
9791        format: *const c_char,
9792        ...
9793    );
9794    //#[cfg(feature = "v1_28")]
9795    //#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
9796    //pub fn gst_debug_log_id_with_context_valist(ctx: *mut GstLogContext, level: GstDebugLevel, file: *const c_char, function: *const c_char, line: c_int, id: *const c_char, format: *const c_char, args: /*Unimplemented*/va_list);
9797    #[cfg(feature = "v1_20")]
9798    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
9799    pub fn gst_debug_log_literal(
9800        category: *mut GstDebugCategory,
9801        level: GstDebugLevel,
9802        file: *const c_char,
9803        function: *const c_char,
9804        line: c_int,
9805        object: *mut gobject::GObject,
9806        message_string: *const c_char,
9807    );
9808    #[cfg(feature = "v1_28")]
9809    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
9810    pub fn gst_debug_log_literal_with_context(
9811        ctx: *mut GstLogContext,
9812        level: GstDebugLevel,
9813        file: *const c_char,
9814        function: *const c_char,
9815        line: c_int,
9816        object: *mut gobject::GObject,
9817        message: *const c_char,
9818    );
9819    //pub fn gst_debug_log_valist(category: *mut GstDebugCategory, level: GstDebugLevel, file: *const c_char, function: *const c_char, line: c_int, object: *mut gobject::GObject, format: *const c_char, args: /*Unimplemented*/va_list);
9820    #[cfg(feature = "v1_28")]
9821    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
9822    pub fn gst_debug_log_with_context(
9823        ctx: *mut GstLogContext,
9824        level: GstDebugLevel,
9825        file: *const c_char,
9826        function: *const c_char,
9827        line: c_int,
9828        object: *mut gobject::GObject,
9829        format: *const c_char,
9830        ...
9831    );
9832    //#[cfg(feature = "v1_28")]
9833    //#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
9834    //pub fn gst_debug_log_with_context_valist(ctx: *mut GstLogContext, level: GstDebugLevel, file: *const c_char, function: *const c_char, line: c_int, object: *mut gobject::GObject, format: *const c_char, args: /*Unimplemented*/va_list);
9835    #[cfg(feature = "v1_26")]
9836    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
9837    pub fn gst_debug_print_object(ptr: gconstpointer) -> *mut c_char;
9838    #[cfg(feature = "v1_26")]
9839    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
9840    pub fn gst_debug_print_segment(segment: *const GstSegment) -> *mut c_char;
9841    pub fn gst_debug_print_stack_trace();
9842    pub fn gst_debug_remove_log_function(func: GstLogFunction) -> c_uint;
9843    pub fn gst_debug_remove_log_function_by_data(data: gpointer) -> c_uint;
9844    pub fn gst_debug_remove_ring_buffer_logger();
9845    pub fn gst_debug_ring_buffer_logger_get_logs() -> *mut *mut c_char;
9846    pub fn gst_debug_set_active(active: gboolean);
9847    pub fn gst_debug_set_color_mode(mode: GstDebugColorMode);
9848    pub fn gst_debug_set_color_mode_from_string(mode: *const c_char);
9849    pub fn gst_debug_set_colored(colored: gboolean);
9850    pub fn gst_debug_set_default_threshold(level: GstDebugLevel);
9851    pub fn gst_debug_set_threshold_for_name(name: *const c_char, level: GstDebugLevel);
9852    pub fn gst_debug_set_threshold_from_string(list: *const c_char, reset: gboolean);
9853    pub fn gst_debug_unset_threshold_for_name(name: *const c_char);
9854    pub fn gst_deinit();
9855    pub fn gst_dynamic_type_register(plugin: *mut GstPlugin, type_: GType) -> gboolean;
9856    pub fn gst_error_get_message(domain: glib::GQuark, code: c_int) -> *mut c_char;
9857    pub fn gst_filename_to_uri(
9858        filename: *const c_char,
9859        error: *mut *mut glib::GError,
9860    ) -> *mut c_char;
9861    pub fn gst_flow_get_name(ret: GstFlowReturn) -> *const c_char;
9862    pub fn gst_flow_to_quark(ret: GstFlowReturn) -> glib::GQuark;
9863    pub fn gst_formats_contains(formats: *const GstFormat, format: GstFormat) -> gboolean;
9864    pub fn gst_get_main_executable_path() -> *const c_char;
9865    pub fn gst_info_strdup_printf(format: *const c_char, ...) -> *mut c_char;
9866    //pub fn gst_info_strdup_vprintf(format: *const c_char, args: /*Unimplemented*/va_list) -> *mut c_char;
9867    //pub fn gst_info_vasprintf(result: *mut *mut c_char, format: *const c_char, args: /*Unimplemented*/va_list) -> c_int;
9868    pub fn gst_init(argc: *mut c_int, argv: *mut *mut *mut c_char);
9869    pub fn gst_init_check(
9870        argc: *mut c_int,
9871        argv: *mut *mut *mut c_char,
9872        error: *mut *mut glib::GError,
9873    ) -> gboolean;
9874    pub fn gst_init_get_option_group() -> *mut glib::GOptionGroup;
9875    pub fn gst_is_caps_features(obj: gconstpointer) -> gboolean;
9876    pub fn gst_is_initialized() -> gboolean;
9877    pub fn gst_make_element_message_details(name: *const c_char, ...) -> *mut GstStructure;
9878    pub fn gst_param_spec_array(
9879        name: *const c_char,
9880        nick: *const c_char,
9881        blurb: *const c_char,
9882        element_spec: *mut gobject::GParamSpec,
9883        flags: gobject::GParamFlags,
9884    ) -> *mut gobject::GParamSpec;
9885    pub fn gst_param_spec_fraction(
9886        name: *const c_char,
9887        nick: *const c_char,
9888        blurb: *const c_char,
9889        min_num: c_int,
9890        min_denom: c_int,
9891        max_num: c_int,
9892        max_denom: c_int,
9893        default_num: c_int,
9894        default_denom: c_int,
9895        flags: gobject::GParamFlags,
9896    ) -> *mut gobject::GParamSpec;
9897    pub fn gst_parent_buffer_meta_api_get_type() -> GType;
9898    pub fn gst_parse_bin_from_description(
9899        bin_description: *const c_char,
9900        ghost_unlinked_pads: gboolean,
9901        error: *mut *mut glib::GError,
9902    ) -> *mut GstBin;
9903    pub fn gst_parse_bin_from_description_full(
9904        bin_description: *const c_char,
9905        ghost_unlinked_pads: gboolean,
9906        context: *mut GstParseContext,
9907        flags: GstParseFlags,
9908        error: *mut *mut glib::GError,
9909    ) -> *mut GstElement;
9910    pub fn gst_parse_launch(
9911        pipeline_description: *const c_char,
9912        error: *mut *mut glib::GError,
9913    ) -> *mut GstElement;
9914    pub fn gst_parse_launch_full(
9915        pipeline_description: *const c_char,
9916        context: *mut GstParseContext,
9917        flags: GstParseFlags,
9918        error: *mut *mut glib::GError,
9919    ) -> *mut GstElement;
9920    pub fn gst_parse_launchv(
9921        argv: *mut *const c_char,
9922        error: *mut *mut glib::GError,
9923    ) -> *mut GstElement;
9924    pub fn gst_parse_launchv_full(
9925        argv: *mut *const c_char,
9926        context: *mut GstParseContext,
9927        flags: GstParseFlags,
9928        error: *mut *mut glib::GError,
9929    ) -> *mut GstElement;
9930    pub fn gst_print(format: *const c_char, ...);
9931    pub fn gst_printerr(format: *const c_char, ...);
9932    pub fn gst_printerrln(format: *const c_char, ...);
9933    pub fn gst_println(format: *const c_char, ...);
9934    pub fn gst_protection_filter_systems_by_available_decryptors(
9935        system_identifiers: *mut *const c_char,
9936    ) -> *mut *mut c_char;
9937    pub fn gst_protection_meta_api_get_type() -> GType;
9938    pub fn gst_protection_select_system(system_identifiers: *mut *const c_char) -> *const c_char;
9939    pub fn gst_reference_timestamp_meta_api_get_type() -> GType;
9940    pub fn gst_segtrap_is_enabled() -> gboolean;
9941    pub fn gst_segtrap_set_enabled(enabled: gboolean);
9942    pub fn gst_tag_exists(tag: *const c_char) -> gboolean;
9943    pub fn gst_tag_get_description(tag: *const c_char) -> *const c_char;
9944    pub fn gst_tag_get_flag(tag: *const c_char) -> GstTagFlag;
9945    pub fn gst_tag_get_nick(tag: *const c_char) -> *const c_char;
9946    pub fn gst_tag_get_type(tag: *const c_char) -> GType;
9947    pub fn gst_tag_is_fixed(tag: *const c_char) -> gboolean;
9948    pub fn gst_tag_merge_strings_with_comma(
9949        dest: *mut gobject::GValue,
9950        src: *const gobject::GValue,
9951    );
9952    pub fn gst_tag_merge_use_first(dest: *mut gobject::GValue, src: *const gobject::GValue);
9953    pub fn gst_tag_register(
9954        name: *const c_char,
9955        flag: GstTagFlag,
9956        type_: GType,
9957        nick: *const c_char,
9958        blurb: *const c_char,
9959        func: GstTagMergeFunc,
9960    );
9961    pub fn gst_tag_register_static(
9962        name: *const c_char,
9963        flag: GstTagFlag,
9964        type_: GType,
9965        nick: *const c_char,
9966        blurb: *const c_char,
9967        func: GstTagMergeFunc,
9968    );
9969    #[cfg(feature = "v1_18")]
9970    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
9971    pub fn gst_tracing_get_active_tracers() -> *mut glib::GList;
9972    pub fn gst_tracing_register_hook(
9973        tracer: *mut GstTracer,
9974        detail: *const c_char,
9975        func: gobject::GCallback,
9976    );
9977    #[cfg(feature = "v1_18")]
9978    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
9979    pub fn gst_type_is_plugin_api(type_: GType, flags: *mut GstPluginAPIFlags) -> gboolean;
9980    #[cfg(feature = "v1_18")]
9981    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
9982    pub fn gst_type_mark_as_plugin_api(type_: GType, flags: GstPluginAPIFlags);
9983    pub fn gst_update_registry() -> gboolean;
9984    pub fn gst_util_array_binary_search(
9985        array: gpointer,
9986        num_elements: c_uint,
9987        element_size: size_t,
9988        search_func: glib::GCompareDataFunc,
9989        mode: GstSearchMode,
9990        search_data: gconstpointer,
9991        user_data: gpointer,
9992    ) -> gpointer;
9993    #[cfg(feature = "v1_24")]
9994    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
9995    pub fn gst_util_ceil_log2(v: u32) -> c_uint;
9996    pub fn gst_util_double_to_fraction(src: c_double, dest_n: *mut c_int, dest_d: *mut c_int);
9997    pub fn gst_util_dump_buffer(buf: *mut GstBuffer);
9998    pub fn gst_util_dump_mem(mem: *const u8, size: c_uint);
9999    #[cfg(feature = "v1_24")]
10000    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
10001    pub fn gst_util_filename_compare(a: *const c_char, b: *const c_char) -> c_int;
10002    #[cfg(feature = "v1_26")]
10003    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
10004    pub fn gst_util_floor_log2(v: u32) -> c_uint;
10005    pub fn gst_util_fraction_add(
10006        a_n: c_int,
10007        a_d: c_int,
10008        b_n: c_int,
10009        b_d: c_int,
10010        res_n: *mut c_int,
10011        res_d: *mut c_int,
10012    ) -> gboolean;
10013    pub fn gst_util_fraction_compare(a_n: c_int, a_d: c_int, b_n: c_int, b_d: c_int) -> c_int;
10014    pub fn gst_util_fraction_multiply(
10015        a_n: c_int,
10016        a_d: c_int,
10017        b_n: c_int,
10018        b_d: c_int,
10019        res_n: *mut c_int,
10020        res_d: *mut c_int,
10021    ) -> gboolean;
10022    #[cfg(feature = "v1_26")]
10023    #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
10024    pub fn gst_util_fraction_multiply_int64(
10025        a_n: i64,
10026        a_d: i64,
10027        b_n: i64,
10028        b_d: i64,
10029        res_n: *mut i64,
10030        res_d: *mut i64,
10031    ) -> gboolean;
10032    pub fn gst_util_fraction_to_double(src_n: c_int, src_d: c_int, dest: *mut c_double);
10033    pub fn gst_util_gdouble_to_guint64(value: c_double) -> u64;
10034    pub fn gst_util_get_object_array(
10035        object: *mut gobject::GObject,
10036        name: *const c_char,
10037        array: *mut *mut gobject::GValueArray,
10038    ) -> gboolean;
10039    pub fn gst_util_get_timestamp() -> GstClockTime;
10040    pub fn gst_util_greatest_common_divisor(a: c_int, b: c_int) -> c_int;
10041    pub fn gst_util_greatest_common_divisor_int64(a: i64, b: i64) -> i64;
10042    pub fn gst_util_group_id_next() -> c_uint;
10043    pub fn gst_util_guint64_to_gdouble(value: u64) -> c_double;
10044    pub fn gst_util_seqnum_compare(s1: u32, s2: u32) -> i32;
10045    pub fn gst_util_seqnum_next() -> u32;
10046    pub fn gst_util_set_object_arg(
10047        object: *mut gobject::GObject,
10048        name: *const c_char,
10049        value: *const c_char,
10050    );
10051    pub fn gst_util_set_object_array(
10052        object: *mut gobject::GObject,
10053        name: *const c_char,
10054        array: *const gobject::GValueArray,
10055    ) -> gboolean;
10056    pub fn gst_util_set_value_from_string(value: *mut gobject::GValue, value_str: *const c_char);
10057    #[cfg(feature = "v1_24")]
10058    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
10059    pub fn gst_util_simplify_fraction(
10060        numerator: *mut c_int,
10061        denominator: *mut c_int,
10062        n_terms: c_uint,
10063        threshold: c_uint,
10064    );
10065    pub fn gst_util_uint64_scale(val: u64, num: u64, denom: u64) -> u64;
10066    pub fn gst_util_uint64_scale_ceil(val: u64, num: u64, denom: u64) -> u64;
10067    pub fn gst_util_uint64_scale_int(val: u64, num: c_int, denom: c_int) -> u64;
10068    pub fn gst_util_uint64_scale_int_ceil(val: u64, num: c_int, denom: c_int) -> u64;
10069    pub fn gst_util_uint64_scale_int_round(val: u64, num: c_int, denom: c_int) -> u64;
10070    pub fn gst_util_uint64_scale_round(val: u64, num: u64, denom: u64) -> u64;
10071    pub fn gst_value_can_compare(
10072        value1: *const gobject::GValue,
10073        value2: *const gobject::GValue,
10074    ) -> gboolean;
10075    pub fn gst_value_can_intersect(
10076        value1: *const gobject::GValue,
10077        value2: *const gobject::GValue,
10078    ) -> gboolean;
10079    pub fn gst_value_can_subtract(
10080        minuend: *const gobject::GValue,
10081        subtrahend: *const gobject::GValue,
10082    ) -> gboolean;
10083    pub fn gst_value_can_union(
10084        value1: *const gobject::GValue,
10085        value2: *const gobject::GValue,
10086    ) -> gboolean;
10087    pub fn gst_value_compare(
10088        value1: *const gobject::GValue,
10089        value2: *const gobject::GValue,
10090    ) -> c_int;
10091    pub fn gst_value_deserialize(dest: *mut gobject::GValue, src: *const c_char) -> gboolean;
10092    #[cfg(feature = "v1_20")]
10093    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
10094    pub fn gst_value_deserialize_with_pspec(
10095        dest: *mut gobject::GValue,
10096        src: *const c_char,
10097        pspec: *mut gobject::GParamSpec,
10098    ) -> gboolean;
10099    pub fn gst_value_fixate(dest: *mut gobject::GValue, src: *const gobject::GValue) -> gboolean;
10100    pub fn gst_value_fraction_multiply(
10101        product: *mut gobject::GValue,
10102        factor1: *const gobject::GValue,
10103        factor2: *const gobject::GValue,
10104    ) -> gboolean;
10105    pub fn gst_value_fraction_subtract(
10106        dest: *mut gobject::GValue,
10107        minuend: *const gobject::GValue,
10108        subtrahend: *const gobject::GValue,
10109    ) -> gboolean;
10110    pub fn gst_value_get_bitmask(value: *const gobject::GValue) -> u64;
10111    pub fn gst_value_get_caps(value: *const gobject::GValue) -> *const GstCaps;
10112    pub fn gst_value_get_caps_features(value: *const gobject::GValue) -> *const GstCapsFeatures;
10113    pub fn gst_value_get_double_range_max(value: *const gobject::GValue) -> c_double;
10114    pub fn gst_value_get_double_range_min(value: *const gobject::GValue) -> c_double;
10115    pub fn gst_value_get_flagset_flags(value: *const gobject::GValue) -> c_uint;
10116    pub fn gst_value_get_flagset_mask(value: *const gobject::GValue) -> c_uint;
10117    pub fn gst_value_get_fraction_denominator(value: *const gobject::GValue) -> c_int;
10118    pub fn gst_value_get_fraction_numerator(value: *const gobject::GValue) -> c_int;
10119    pub fn gst_value_get_fraction_range_max(
10120        value: *const gobject::GValue,
10121    ) -> *const gobject::GValue;
10122    pub fn gst_value_get_fraction_range_min(
10123        value: *const gobject::GValue,
10124    ) -> *const gobject::GValue;
10125    pub fn gst_value_get_int64_range_max(value: *const gobject::GValue) -> i64;
10126    pub fn gst_value_get_int64_range_min(value: *const gobject::GValue) -> i64;
10127    pub fn gst_value_get_int64_range_step(value: *const gobject::GValue) -> i64;
10128    pub fn gst_value_get_int_range_max(value: *const gobject::GValue) -> c_int;
10129    pub fn gst_value_get_int_range_min(value: *const gobject::GValue) -> c_int;
10130    pub fn gst_value_get_int_range_step(value: *const gobject::GValue) -> c_int;
10131    pub fn gst_value_get_structure(value: *const gobject::GValue) -> *const GstStructure;
10132    #[cfg(feature = "v1_28")]
10133    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
10134    pub fn gst_value_hash(value: *const gobject::GValue, res: *mut c_uint) -> gboolean;
10135    pub fn gst_value_init_and_copy(dest: *mut gobject::GValue, src: *const gobject::GValue);
10136    pub fn gst_value_intersect(
10137        dest: *mut gobject::GValue,
10138        value1: *const gobject::GValue,
10139        value2: *const gobject::GValue,
10140    ) -> gboolean;
10141    pub fn gst_value_is_fixed(value: *const gobject::GValue) -> gboolean;
10142    pub fn gst_value_is_subset(
10143        value1: *const gobject::GValue,
10144        value2: *const gobject::GValue,
10145    ) -> gboolean;
10146    pub fn gst_value_register(table: *const GstValueTable);
10147    pub fn gst_value_serialize(value: *const gobject::GValue) -> *mut c_char;
10148    pub fn gst_value_set_bitmask(value: *mut gobject::GValue, bitmask: u64);
10149    pub fn gst_value_set_caps(value: *mut gobject::GValue, caps: *const GstCaps);
10150    pub fn gst_value_set_caps_features(
10151        value: *mut gobject::GValue,
10152        features: *const GstCapsFeatures,
10153    );
10154    pub fn gst_value_set_double_range(value: *mut gobject::GValue, start: c_double, end: c_double);
10155    pub fn gst_value_set_flagset(value: *mut gobject::GValue, flags: c_uint, mask: c_uint);
10156    pub fn gst_value_set_fraction(
10157        value: *mut gobject::GValue,
10158        numerator: c_int,
10159        denominator: c_int,
10160    );
10161    pub fn gst_value_set_fraction_range(
10162        value: *mut gobject::GValue,
10163        start: *const gobject::GValue,
10164        end: *const gobject::GValue,
10165    );
10166    pub fn gst_value_set_fraction_range_full(
10167        value: *mut gobject::GValue,
10168        numerator_start: c_int,
10169        denominator_start: c_int,
10170        numerator_end: c_int,
10171        denominator_end: c_int,
10172    );
10173    pub fn gst_value_set_int64_range(value: *mut gobject::GValue, start: i64, end: i64);
10174    pub fn gst_value_set_int64_range_step(
10175        value: *mut gobject::GValue,
10176        start: i64,
10177        end: i64,
10178        step: i64,
10179    );
10180    pub fn gst_value_set_int_range(value: *mut gobject::GValue, start: c_int, end: c_int);
10181    pub fn gst_value_set_int_range_step(
10182        value: *mut gobject::GValue,
10183        start: c_int,
10184        end: c_int,
10185        step: c_int,
10186    );
10187    pub fn gst_value_set_structure(value: *mut gobject::GValue, structure: *const GstStructure);
10188    pub fn gst_value_subtract(
10189        dest: *mut gobject::GValue,
10190        minuend: *const gobject::GValue,
10191        subtrahend: *const gobject::GValue,
10192    ) -> gboolean;
10193    pub fn gst_value_union(
10194        dest: *mut gobject::GValue,
10195        value1: *const gobject::GValue,
10196        value2: *const gobject::GValue,
10197    ) -> gboolean;
10198    pub fn gst_version(
10199        major: *mut c_uint,
10200        minor: *mut c_uint,
10201        micro: *mut c_uint,
10202        nano: *mut c_uint,
10203    );
10204    pub fn gst_version_string() -> *mut c_char;
10205
10206}