1#![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;
17use gstreamer_audio_sys as gst_audio;
18use gstreamer_sys as gst;
19use gstreamer_video_sys as gst_video;
20
21#[cfg(unix)]
22#[allow(unused_imports)]
23use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
24#[allow(unused_imports)]
25use libc::{intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE};
26#[allow(unused_imports)]
27use std::ffi::{
28 c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
29};
30
31#[allow(unused_imports)]
32use glib::{gboolean, gconstpointer, gpointer, GType};
33
34pub type GstDiscovererAudioInfoClass = gobject::GObjectClass;
36pub type GstDiscovererContainerInfoClass = gobject::GObjectClass;
37pub type GstDiscovererInfoClass = gobject::GObjectClass;
38pub type GstDiscovererStreamInfoClass = gobject::GObjectClass;
39pub type GstDiscovererSubtitleInfoClass = gobject::GObjectClass;
40pub type GstDiscovererVideoInfoClass = gobject::GObjectClass;
41pub type GstEncodingTargetClass = gobject::GObjectClass;
42
43pub type GstAudioVisualizerShader = c_int;
45pub const GST_AUDIO_VISUALIZER_SHADER_NONE: GstAudioVisualizerShader = 0;
46pub const GST_AUDIO_VISUALIZER_SHADER_FADE: GstAudioVisualizerShader = 1;
47pub const GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_UP: GstAudioVisualizerShader = 2;
48pub const GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN: GstAudioVisualizerShader = 3;
49pub const GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT: GstAudioVisualizerShader = 4;
50pub const GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT: GstAudioVisualizerShader = 5;
51pub const GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT: GstAudioVisualizerShader = 6;
52pub const GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN: GstAudioVisualizerShader = 7;
53pub const GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT: GstAudioVisualizerShader = 8;
54pub const GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN: GstAudioVisualizerShader = 9;
55
56pub type GstDiscovererResult = c_int;
57pub const GST_DISCOVERER_OK: GstDiscovererResult = 0;
58pub const GST_DISCOVERER_URI_INVALID: GstDiscovererResult = 1;
59pub const GST_DISCOVERER_ERROR: GstDiscovererResult = 2;
60pub const GST_DISCOVERER_TIMEOUT: GstDiscovererResult = 3;
61pub const GST_DISCOVERER_BUSY: GstDiscovererResult = 4;
62pub const GST_DISCOVERER_MISSING_PLUGINS: GstDiscovererResult = 5;
63
64pub type GstInstallPluginsReturn = c_int;
65pub const GST_INSTALL_PLUGINS_SUCCESS: GstInstallPluginsReturn = 0;
66pub const GST_INSTALL_PLUGINS_NOT_FOUND: GstInstallPluginsReturn = 1;
67pub const GST_INSTALL_PLUGINS_ERROR: GstInstallPluginsReturn = 2;
68pub const GST_INSTALL_PLUGINS_PARTIAL_SUCCESS: GstInstallPluginsReturn = 3;
69pub const GST_INSTALL_PLUGINS_USER_ABORT: GstInstallPluginsReturn = 4;
70pub const GST_INSTALL_PLUGINS_CRASHED: GstInstallPluginsReturn = 100;
71pub const GST_INSTALL_PLUGINS_INVALID: GstInstallPluginsReturn = 101;
72pub const GST_INSTALL_PLUGINS_STARTED_OK: GstInstallPluginsReturn = 200;
73pub const GST_INSTALL_PLUGINS_INTERNAL_FAILURE: GstInstallPluginsReturn = 201;
74pub const GST_INSTALL_PLUGINS_HELPER_MISSING: GstInstallPluginsReturn = 202;
75pub const GST_INSTALL_PLUGINS_INSTALL_IN_PROGRESS: GstInstallPluginsReturn = 203;
76
77pub const GST_ENCODING_CATEGORY_CAPTURE: &[u8] = b"capture\0";
79pub const GST_ENCODING_CATEGORY_DEVICE: &[u8] = b"device\0";
80pub const GST_ENCODING_CATEGORY_FILE_EXTENSION: &[u8] = b"file-extension\0";
81pub const GST_ENCODING_CATEGORY_ONLINE_SERVICE: &[u8] = b"online-service\0";
82pub const GST_ENCODING_CATEGORY_STORAGE_EDITING: &[u8] = b"storage-editing\0";
83
84pub type GstDiscovererSerializeFlags = c_uint;
86pub const GST_DISCOVERER_SERIALIZE_BASIC: GstDiscovererSerializeFlags = 0;
87pub const GST_DISCOVERER_SERIALIZE_CAPS: GstDiscovererSerializeFlags = 1;
88pub const GST_DISCOVERER_SERIALIZE_TAGS: GstDiscovererSerializeFlags = 2;
89pub const GST_DISCOVERER_SERIALIZE_MISC: GstDiscovererSerializeFlags = 4;
90pub const GST_DISCOVERER_SERIALIZE_ALL: GstDiscovererSerializeFlags = 7;
91
92pub type GstPbUtilsCapsDescriptionFlags = c_uint;
93pub const GST_PBUTILS_CAPS_DESCRIPTION_FLAG_CONTAINER: GstPbUtilsCapsDescriptionFlags = 1;
94pub const GST_PBUTILS_CAPS_DESCRIPTION_FLAG_AUDIO: GstPbUtilsCapsDescriptionFlags = 2;
95pub const GST_PBUTILS_CAPS_DESCRIPTION_FLAG_VIDEO: GstPbUtilsCapsDescriptionFlags = 4;
96pub const GST_PBUTILS_CAPS_DESCRIPTION_FLAG_IMAGE: GstPbUtilsCapsDescriptionFlags = 8;
97pub const GST_PBUTILS_CAPS_DESCRIPTION_FLAG_SUBTITLE: GstPbUtilsCapsDescriptionFlags = 16;
98pub const GST_PBUTILS_CAPS_DESCRIPTION_FLAG_TAG: GstPbUtilsCapsDescriptionFlags = 32;
99pub const GST_PBUTILS_CAPS_DESCRIPTION_FLAG_GENERIC: GstPbUtilsCapsDescriptionFlags = 64;
100#[cfg(feature = "v1_22")]
101#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
102pub const GST_PBUTILS_CAPS_DESCRIPTION_FLAG_METADATA: GstPbUtilsCapsDescriptionFlags = 128;
103
104pub type GstAudioVisualizerShaderFunc = Option<
106 unsafe extern "C" fn(
107 *mut GstAudioVisualizer,
108 *const gst_video::GstVideoFrame,
109 *mut gst_video::GstVideoFrame,
110 ),
111>;
112pub type GstInstallPluginsResultFunc =
113 Option<unsafe extern "C" fn(GstInstallPluginsReturn, gpointer)>;
114
115#[derive(Copy, Clone)]
117#[repr(C)]
118pub struct GstAudioVisualizerClass {
119 pub parent_class: gst::GstElementClass,
120 pub setup: Option<unsafe extern "C" fn(*mut GstAudioVisualizer) -> gboolean>,
121 pub render: Option<
122 unsafe extern "C" fn(
123 *mut GstAudioVisualizer,
124 *mut gst::GstBuffer,
125 *mut gst_video::GstVideoFrame,
126 ) -> gboolean,
127 >,
128 pub decide_allocation:
129 Option<unsafe extern "C" fn(*mut GstAudioVisualizer, *mut gst::GstQuery) -> gboolean>,
130}
131
132impl ::std::fmt::Debug for GstAudioVisualizerClass {
133 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
134 f.debug_struct(&format!("GstAudioVisualizerClass @ {self:p}"))
135 .field("setup", &self.setup)
136 .field("render", &self.render)
137 .field("decide_allocation", &self.decide_allocation)
138 .finish()
139 }
140}
141
142#[repr(C)]
143#[allow(dead_code)]
144pub struct _GstAudioVisualizerPrivate {
145 _data: [u8; 0],
146 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
147}
148
149pub type GstAudioVisualizerPrivate = _GstAudioVisualizerPrivate;
150
151#[derive(Copy, Clone)]
152#[repr(C)]
153pub struct GstDiscovererClass {
154 pub parentclass: gobject::GObjectClass,
155 pub finished: Option<unsafe extern "C" fn(*mut GstDiscoverer)>,
156 pub starting: Option<unsafe extern "C" fn(*mut GstDiscoverer)>,
157 pub discovered: Option<
158 unsafe extern "C" fn(*mut GstDiscoverer, *mut GstDiscovererInfo, *const glib::GError),
159 >,
160 pub source_setup: Option<unsafe extern "C" fn(*mut GstDiscoverer, *mut gst::GstElement)>,
161 pub load_serialize_info:
162 Option<unsafe extern "C" fn(*mut GstDiscoverer, *mut c_char) -> *mut GstDiscovererInfo>,
163 pub _reserved: [gpointer; 3],
164}
165
166impl ::std::fmt::Debug for GstDiscovererClass {
167 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
168 f.debug_struct(&format!("GstDiscovererClass @ {self:p}"))
169 .field("parentclass", &self.parentclass)
170 .field("finished", &self.finished)
171 .field("starting", &self.starting)
172 .field("discovered", &self.discovered)
173 .field("source_setup", &self.source_setup)
174 .field("load_serialize_info", &self.load_serialize_info)
175 .field("_reserved", &self._reserved)
176 .finish()
177 }
178}
179
180#[repr(C)]
181#[allow(dead_code)]
182pub struct _GstDiscovererPrivate {
183 _data: [u8; 0],
184 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
185}
186
187pub type GstDiscovererPrivate = _GstDiscovererPrivate;
188
189#[repr(C)]
190#[allow(dead_code)]
191pub struct _GstEncodingAudioProfileClass {
192 _data: [u8; 0],
193 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
194}
195
196pub type GstEncodingAudioProfileClass = _GstEncodingAudioProfileClass;
197
198#[repr(C)]
199#[allow(dead_code)]
200pub struct _GstEncodingContainerProfileClass {
201 _data: [u8; 0],
202 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
203}
204
205pub type GstEncodingContainerProfileClass = _GstEncodingContainerProfileClass;
206
207#[repr(C)]
208#[allow(dead_code)]
209pub struct _GstEncodingProfileClass {
210 _data: [u8; 0],
211 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
212}
213
214pub type GstEncodingProfileClass = _GstEncodingProfileClass;
215
216#[repr(C)]
217#[allow(dead_code)]
218pub struct _GstEncodingVideoProfileClass {
219 _data: [u8; 0],
220 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
221}
222
223pub type GstEncodingVideoProfileClass = _GstEncodingVideoProfileClass;
224
225#[repr(C)]
226#[allow(dead_code)]
227pub struct GstInstallPluginsContext {
228 _data: [u8; 0],
229 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
230}
231
232impl ::std::fmt::Debug for GstInstallPluginsContext {
233 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
234 f.debug_struct(&format!("GstInstallPluginsContext @ {self:p}"))
235 .finish()
236 }
237}
238
239#[derive(Copy, Clone)]
241#[repr(C)]
242pub struct GstAudioVisualizer {
243 pub parent: gst::GstElement,
244 pub req_spf: c_uint,
245 pub vinfo: gst_video::GstVideoInfo,
246 pub ainfo: gst_audio::GstAudioInfo,
247 pub priv_: *mut GstAudioVisualizerPrivate,
248}
249
250impl ::std::fmt::Debug for GstAudioVisualizer {
251 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
252 f.debug_struct(&format!("GstAudioVisualizer @ {self:p}"))
253 .field("parent", &self.parent)
254 .field("req_spf", &self.req_spf)
255 .field("vinfo", &self.vinfo)
256 .field("ainfo", &self.ainfo)
257 .finish()
258 }
259}
260
261#[derive(Copy, Clone)]
262#[repr(C)]
263pub struct GstDiscoverer {
264 pub parent: gobject::GObject,
265 pub priv_: *mut GstDiscovererPrivate,
266 pub _reserved: [gpointer; 4],
267}
268
269impl ::std::fmt::Debug for GstDiscoverer {
270 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
271 f.debug_struct(&format!("GstDiscoverer @ {self:p}"))
272 .field("parent", &self.parent)
273 .finish()
274 }
275}
276
277#[repr(C)]
278#[allow(dead_code)]
279pub struct GstDiscovererAudioInfo {
280 _data: [u8; 0],
281 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
282}
283
284impl ::std::fmt::Debug for GstDiscovererAudioInfo {
285 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
286 f.debug_struct(&format!("GstDiscovererAudioInfo @ {self:p}"))
287 .finish()
288 }
289}
290
291#[repr(C)]
292#[allow(dead_code)]
293pub struct GstDiscovererContainerInfo {
294 _data: [u8; 0],
295 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
296}
297
298impl ::std::fmt::Debug for GstDiscovererContainerInfo {
299 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
300 f.debug_struct(&format!("GstDiscovererContainerInfo @ {self:p}"))
301 .finish()
302 }
303}
304
305#[repr(C)]
306#[allow(dead_code)]
307pub struct GstDiscovererInfo {
308 _data: [u8; 0],
309 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
310}
311
312impl ::std::fmt::Debug for GstDiscovererInfo {
313 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
314 f.debug_struct(&format!("GstDiscovererInfo @ {self:p}"))
315 .finish()
316 }
317}
318
319#[repr(C)]
320#[allow(dead_code)]
321pub struct GstDiscovererStreamInfo {
322 _data: [u8; 0],
323 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
324}
325
326impl ::std::fmt::Debug for GstDiscovererStreamInfo {
327 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
328 f.debug_struct(&format!("GstDiscovererStreamInfo @ {self:p}"))
329 .finish()
330 }
331}
332
333#[repr(C)]
334#[allow(dead_code)]
335pub struct GstDiscovererSubtitleInfo {
336 _data: [u8; 0],
337 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
338}
339
340impl ::std::fmt::Debug for GstDiscovererSubtitleInfo {
341 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
342 f.debug_struct(&format!("GstDiscovererSubtitleInfo @ {self:p}"))
343 .finish()
344 }
345}
346
347#[repr(C)]
348#[allow(dead_code)]
349pub struct GstDiscovererVideoInfo {
350 _data: [u8; 0],
351 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
352}
353
354impl ::std::fmt::Debug for GstDiscovererVideoInfo {
355 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
356 f.debug_struct(&format!("GstDiscovererVideoInfo @ {self:p}"))
357 .finish()
358 }
359}
360
361#[repr(C)]
362#[allow(dead_code)]
363pub struct GstEncodingAudioProfile {
364 _data: [u8; 0],
365 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
366}
367
368impl ::std::fmt::Debug for GstEncodingAudioProfile {
369 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
370 f.debug_struct(&format!("GstEncodingAudioProfile @ {self:p}"))
371 .finish()
372 }
373}
374
375#[repr(C)]
376#[allow(dead_code)]
377pub struct GstEncodingContainerProfile {
378 _data: [u8; 0],
379 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
380}
381
382impl ::std::fmt::Debug for GstEncodingContainerProfile {
383 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
384 f.debug_struct(&format!("GstEncodingContainerProfile @ {self:p}"))
385 .finish()
386 }
387}
388
389#[repr(C)]
390#[allow(dead_code)]
391pub struct GstEncodingProfile {
392 _data: [u8; 0],
393 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
394}
395
396impl ::std::fmt::Debug for GstEncodingProfile {
397 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
398 f.debug_struct(&format!("GstEncodingProfile @ {self:p}"))
399 .finish()
400 }
401}
402
403#[repr(C)]
404#[allow(dead_code)]
405pub struct GstEncodingTarget {
406 _data: [u8; 0],
407 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
408}
409
410impl ::std::fmt::Debug for GstEncodingTarget {
411 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
412 f.debug_struct(&format!("GstEncodingTarget @ {self:p}"))
413 .finish()
414 }
415}
416
417#[repr(C)]
418#[allow(dead_code)]
419pub struct GstEncodingVideoProfile {
420 _data: [u8; 0],
421 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
422}
423
424impl ::std::fmt::Debug for GstEncodingVideoProfile {
425 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
426 f.debug_struct(&format!("GstEncodingVideoProfile @ {self:p}"))
427 .finish()
428 }
429}
430
431extern "C" {
432
433 pub fn gst_audio_visualizer_shader_get_type() -> GType;
437
438 pub fn gst_discoverer_result_get_type() -> GType;
442
443 pub fn gst_install_plugins_return_get_type() -> GType;
447 pub fn gst_install_plugins_return_get_name(ret: GstInstallPluginsReturn) -> *const c_char;
448
449 pub fn gst_discoverer_serialize_flags_get_type() -> GType;
453
454 #[cfg(feature = "v1_20")]
458 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
459 pub fn gst_pb_utils_caps_description_flags_get_type() -> GType;
460
461 pub fn gst_install_plugins_context_get_type() -> GType;
465 pub fn gst_install_plugins_context_new() -> *mut GstInstallPluginsContext;
466 pub fn gst_install_plugins_context_copy(
467 ctx: *mut GstInstallPluginsContext,
468 ) -> *mut GstInstallPluginsContext;
469 pub fn gst_install_plugins_context_free(ctx: *mut GstInstallPluginsContext);
470 pub fn gst_install_plugins_context_set_confirm_search(
471 ctx: *mut GstInstallPluginsContext,
472 confirm_search: gboolean,
473 );
474 pub fn gst_install_plugins_context_set_desktop_id(
475 ctx: *mut GstInstallPluginsContext,
476 desktop_id: *const c_char,
477 );
478 pub fn gst_install_plugins_context_set_startup_notification_id(
479 ctx: *mut GstInstallPluginsContext,
480 startup_id: *const c_char,
481 );
482 pub fn gst_install_plugins_context_set_xid(ctx: *mut GstInstallPluginsContext, xid: c_uint);
483
484 pub fn gst_audio_visualizer_get_type() -> GType;
488
489 pub fn gst_discoverer_get_type() -> GType;
493 pub fn gst_discoverer_new(
494 timeout: gst::GstClockTime,
495 error: *mut *mut glib::GError,
496 ) -> *mut GstDiscoverer;
497 pub fn gst_discoverer_discover_uri(
498 discoverer: *mut GstDiscoverer,
499 uri: *const c_char,
500 error: *mut *mut glib::GError,
501 ) -> *mut GstDiscovererInfo;
502 pub fn gst_discoverer_discover_uri_async(
503 discoverer: *mut GstDiscoverer,
504 uri: *const c_char,
505 ) -> gboolean;
506 pub fn gst_discoverer_start(discoverer: *mut GstDiscoverer);
507 pub fn gst_discoverer_stop(discoverer: *mut GstDiscoverer);
508
509 pub fn gst_discoverer_audio_info_get_type() -> GType;
513 pub fn gst_discoverer_audio_info_get_bitrate(info: *const GstDiscovererAudioInfo) -> c_uint;
514 pub fn gst_discoverer_audio_info_get_channel_mask(info: *const GstDiscovererAudioInfo) -> u64;
515 pub fn gst_discoverer_audio_info_get_channels(info: *const GstDiscovererAudioInfo) -> c_uint;
516 pub fn gst_discoverer_audio_info_get_depth(info: *const GstDiscovererAudioInfo) -> c_uint;
517 pub fn gst_discoverer_audio_info_get_language(
518 info: *const GstDiscovererAudioInfo,
519 ) -> *const c_char;
520 pub fn gst_discoverer_audio_info_get_max_bitrate(info: *const GstDiscovererAudioInfo)
521 -> c_uint;
522 pub fn gst_discoverer_audio_info_get_sample_rate(info: *const GstDiscovererAudioInfo)
523 -> c_uint;
524
525 pub fn gst_discoverer_container_info_get_type() -> GType;
529 pub fn gst_discoverer_container_info_get_streams(
530 info: *mut GstDiscovererContainerInfo,
531 ) -> *mut glib::GList;
532 #[cfg(feature = "v1_20")]
533 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
534 pub fn gst_discoverer_container_info_get_tags(
535 info: *const GstDiscovererContainerInfo,
536 ) -> *const gst::GstTagList;
537
538 pub fn gst_discoverer_info_get_type() -> GType;
542 pub fn gst_discoverer_info_from_variant(variant: *mut glib::GVariant)
543 -> *mut GstDiscovererInfo;
544 pub fn gst_discoverer_info_copy(ptr: *mut GstDiscovererInfo) -> *mut GstDiscovererInfo;
545 pub fn gst_discoverer_info_get_audio_streams(info: *mut GstDiscovererInfo) -> *mut glib::GList;
546 pub fn gst_discoverer_info_get_container_streams(
547 info: *mut GstDiscovererInfo,
548 ) -> *mut glib::GList;
549 pub fn gst_discoverer_info_get_duration(info: *const GstDiscovererInfo) -> gst::GstClockTime;
550 pub fn gst_discoverer_info_get_live(info: *const GstDiscovererInfo) -> gboolean;
551 pub fn gst_discoverer_info_get_misc(info: *const GstDiscovererInfo)
552 -> *const gst::GstStructure;
553 pub fn gst_discoverer_info_get_missing_elements_installer_details(
554 info: *const GstDiscovererInfo,
555 ) -> *mut *const c_char;
556 pub fn gst_discoverer_info_get_result(info: *const GstDiscovererInfo) -> GstDiscovererResult;
557 pub fn gst_discoverer_info_get_seekable(info: *const GstDiscovererInfo) -> gboolean;
558 pub fn gst_discoverer_info_get_stream_info(
559 info: *mut GstDiscovererInfo,
560 ) -> *mut GstDiscovererStreamInfo;
561 pub fn gst_discoverer_info_get_stream_list(info: *mut GstDiscovererInfo) -> *mut glib::GList;
562 pub fn gst_discoverer_info_get_streams(
563 info: *mut GstDiscovererInfo,
564 streamtype: GType,
565 ) -> *mut glib::GList;
566 pub fn gst_discoverer_info_get_subtitle_streams(
567 info: *mut GstDiscovererInfo,
568 ) -> *mut glib::GList;
569 pub fn gst_discoverer_info_get_tags(info: *const GstDiscovererInfo) -> *const gst::GstTagList;
570 pub fn gst_discoverer_info_get_toc(info: *const GstDiscovererInfo) -> *const gst::GstToc;
571 pub fn gst_discoverer_info_get_uri(info: *const GstDiscovererInfo) -> *const c_char;
572 pub fn gst_discoverer_info_get_video_streams(info: *mut GstDiscovererInfo) -> *mut glib::GList;
573 pub fn gst_discoverer_info_to_variant(
574 info: *mut GstDiscovererInfo,
575 flags: GstDiscovererSerializeFlags,
576 ) -> *mut glib::GVariant;
577
578 pub fn gst_discoverer_stream_info_get_type() -> GType;
582 pub fn gst_discoverer_stream_info_list_free(infos: *mut glib::GList);
583 pub fn gst_discoverer_stream_info_get_caps(
584 info: *mut GstDiscovererStreamInfo,
585 ) -> *mut gst::GstCaps;
586 pub fn gst_discoverer_stream_info_get_misc(
587 info: *mut GstDiscovererStreamInfo,
588 ) -> *const gst::GstStructure;
589 pub fn gst_discoverer_stream_info_get_next(
590 info: *mut GstDiscovererStreamInfo,
591 ) -> *mut GstDiscovererStreamInfo;
592 pub fn gst_discoverer_stream_info_get_previous(
593 info: *mut GstDiscovererStreamInfo,
594 ) -> *mut GstDiscovererStreamInfo;
595 pub fn gst_discoverer_stream_info_get_stream_id(
596 info: *mut GstDiscovererStreamInfo,
597 ) -> *const c_char;
598 #[cfg(feature = "v1_20")]
599 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
600 pub fn gst_discoverer_stream_info_get_stream_number(
601 info: *mut GstDiscovererStreamInfo,
602 ) -> c_int;
603 pub fn gst_discoverer_stream_info_get_stream_type_nick(
604 info: *mut GstDiscovererStreamInfo,
605 ) -> *const c_char;
606 pub fn gst_discoverer_stream_info_get_tags(
607 info: *mut GstDiscovererStreamInfo,
608 ) -> *const gst::GstTagList;
609 pub fn gst_discoverer_stream_info_get_toc(
610 info: *mut GstDiscovererStreamInfo,
611 ) -> *const gst::GstToc;
612
613 pub fn gst_discoverer_subtitle_info_get_type() -> GType;
617 pub fn gst_discoverer_subtitle_info_get_language(
618 info: *const GstDiscovererSubtitleInfo,
619 ) -> *const c_char;
620
621 pub fn gst_discoverer_video_info_get_type() -> GType;
625 pub fn gst_discoverer_video_info_get_bitrate(info: *const GstDiscovererVideoInfo) -> c_uint;
626 pub fn gst_discoverer_video_info_get_depth(info: *const GstDiscovererVideoInfo) -> c_uint;
627 pub fn gst_discoverer_video_info_get_framerate_denom(
628 info: *const GstDiscovererVideoInfo,
629 ) -> c_uint;
630 pub fn gst_discoverer_video_info_get_framerate_num(
631 info: *const GstDiscovererVideoInfo,
632 ) -> c_uint;
633 pub fn gst_discoverer_video_info_get_height(info: *const GstDiscovererVideoInfo) -> c_uint;
634 pub fn gst_discoverer_video_info_get_max_bitrate(info: *const GstDiscovererVideoInfo)
635 -> c_uint;
636 pub fn gst_discoverer_video_info_get_par_denom(info: *const GstDiscovererVideoInfo) -> c_uint;
637 pub fn gst_discoverer_video_info_get_par_num(info: *const GstDiscovererVideoInfo) -> c_uint;
638 pub fn gst_discoverer_video_info_get_width(info: *const GstDiscovererVideoInfo) -> c_uint;
639 pub fn gst_discoverer_video_info_is_image(info: *const GstDiscovererVideoInfo) -> gboolean;
640 pub fn gst_discoverer_video_info_is_interlaced(info: *const GstDiscovererVideoInfo)
641 -> gboolean;
642
643 pub fn gst_encoding_audio_profile_get_type() -> GType;
647 pub fn gst_encoding_audio_profile_new(
648 format: *mut gst::GstCaps,
649 preset: *const c_char,
650 restriction: *mut gst::GstCaps,
651 presence: c_uint,
652 ) -> *mut GstEncodingAudioProfile;
653
654 pub fn gst_encoding_container_profile_get_type() -> GType;
658 pub fn gst_encoding_container_profile_new(
659 name: *const c_char,
660 description: *const c_char,
661 format: *mut gst::GstCaps,
662 preset: *const c_char,
663 ) -> *mut GstEncodingContainerProfile;
664 pub fn gst_encoding_container_profile_add_profile(
665 container: *mut GstEncodingContainerProfile,
666 profile: *mut GstEncodingProfile,
667 ) -> gboolean;
668 pub fn gst_encoding_container_profile_contains_profile(
669 container: *mut GstEncodingContainerProfile,
670 profile: *mut GstEncodingProfile,
671 ) -> gboolean;
672 pub fn gst_encoding_container_profile_get_profiles(
673 profile: *mut GstEncodingContainerProfile,
674 ) -> *const glib::GList;
675
676 pub fn gst_encoding_profile_get_type() -> GType;
680 pub fn gst_encoding_profile_find(
681 targetname: *const c_char,
682 profilename: *const c_char,
683 category: *const c_char,
684 ) -> *mut GstEncodingProfile;
685 pub fn gst_encoding_profile_from_discoverer(
686 info: *mut GstDiscovererInfo,
687 ) -> *mut GstEncodingProfile;
688 #[cfg(feature = "v1_26")]
689 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
690 pub fn gst_encoding_profile_from_string(string: *const c_char) -> *mut GstEncodingProfile;
691 pub fn gst_encoding_profile_copy(self_: *mut GstEncodingProfile) -> *mut GstEncodingProfile;
692 pub fn gst_encoding_profile_get_allow_dynamic_output(
693 profile: *mut GstEncodingProfile,
694 ) -> gboolean;
695 pub fn gst_encoding_profile_get_description(profile: *mut GstEncodingProfile) -> *const c_char;
696 #[cfg(feature = "v1_20")]
697 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
698 pub fn gst_encoding_profile_get_element_properties(
699 self_: *mut GstEncodingProfile,
700 ) -> *mut gst::GstStructure;
701 pub fn gst_encoding_profile_get_file_extension(
702 profile: *mut GstEncodingProfile,
703 ) -> *const c_char;
704 pub fn gst_encoding_profile_get_format(profile: *mut GstEncodingProfile) -> *mut gst::GstCaps;
705 pub fn gst_encoding_profile_get_input_caps(
706 profile: *mut GstEncodingProfile,
707 ) -> *mut gst::GstCaps;
708 pub fn gst_encoding_profile_get_name(profile: *mut GstEncodingProfile) -> *const c_char;
709 pub fn gst_encoding_profile_get_presence(profile: *mut GstEncodingProfile) -> c_uint;
710 pub fn gst_encoding_profile_get_preset(profile: *mut GstEncodingProfile) -> *const c_char;
711 pub fn gst_encoding_profile_get_preset_name(profile: *mut GstEncodingProfile) -> *const c_char;
712 pub fn gst_encoding_profile_get_restriction(
713 profile: *mut GstEncodingProfile,
714 ) -> *mut gst::GstCaps;
715 #[cfg(feature = "v1_18")]
716 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
717 pub fn gst_encoding_profile_get_single_segment(profile: *mut GstEncodingProfile) -> gboolean;
718 pub fn gst_encoding_profile_get_type_nick(profile: *mut GstEncodingProfile) -> *const c_char;
719 pub fn gst_encoding_profile_is_enabled(profile: *mut GstEncodingProfile) -> gboolean;
720 pub fn gst_encoding_profile_is_equal(
721 a: *mut GstEncodingProfile,
722 b: *mut GstEncodingProfile,
723 ) -> gboolean;
724 pub fn gst_encoding_profile_set_allow_dynamic_output(
725 profile: *mut GstEncodingProfile,
726 allow_dynamic_output: gboolean,
727 );
728 pub fn gst_encoding_profile_set_description(
729 profile: *mut GstEncodingProfile,
730 description: *const c_char,
731 );
732 #[cfg(feature = "v1_20")]
733 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
734 pub fn gst_encoding_profile_set_element_properties(
735 self_: *mut GstEncodingProfile,
736 element_properties: *mut gst::GstStructure,
737 );
738 pub fn gst_encoding_profile_set_enabled(profile: *mut GstEncodingProfile, enabled: gboolean);
739 pub fn gst_encoding_profile_set_format(
740 profile: *mut GstEncodingProfile,
741 format: *mut gst::GstCaps,
742 );
743 pub fn gst_encoding_profile_set_name(profile: *mut GstEncodingProfile, name: *const c_char);
744 pub fn gst_encoding_profile_set_presence(profile: *mut GstEncodingProfile, presence: c_uint);
745 pub fn gst_encoding_profile_set_preset(profile: *mut GstEncodingProfile, preset: *const c_char);
746 pub fn gst_encoding_profile_set_preset_name(
747 profile: *mut GstEncodingProfile,
748 preset_name: *const c_char,
749 );
750 pub fn gst_encoding_profile_set_restriction(
751 profile: *mut GstEncodingProfile,
752 restriction: *mut gst::GstCaps,
753 );
754 #[cfg(feature = "v1_18")]
755 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
756 pub fn gst_encoding_profile_set_single_segment(
757 profile: *mut GstEncodingProfile,
758 single_segment: gboolean,
759 );
760 #[cfg(feature = "v1_26")]
761 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
762 pub fn gst_encoding_profile_to_string(profile: *mut GstEncodingProfile) -> *mut c_char;
763
764 pub fn gst_encoding_target_get_type() -> GType;
768 pub fn gst_encoding_target_new(
769 name: *const c_char,
770 category: *const c_char,
771 description: *const c_char,
772 profiles: *const glib::GList,
773 ) -> *mut GstEncodingTarget;
774 pub fn gst_encoding_target_load(
775 name: *const c_char,
776 category: *const c_char,
777 error: *mut *mut glib::GError,
778 ) -> *mut GstEncodingTarget;
779 pub fn gst_encoding_target_load_from_file(
780 filepath: *const c_char,
781 error: *mut *mut glib::GError,
782 ) -> *mut GstEncodingTarget;
783 pub fn gst_encoding_target_add_profile(
784 target: *mut GstEncodingTarget,
785 profile: *mut GstEncodingProfile,
786 ) -> gboolean;
787 pub fn gst_encoding_target_get_category(target: *mut GstEncodingTarget) -> *const c_char;
788 pub fn gst_encoding_target_get_description(target: *mut GstEncodingTarget) -> *const c_char;
789 pub fn gst_encoding_target_get_name(target: *mut GstEncodingTarget) -> *const c_char;
790 #[cfg(feature = "v1_18")]
791 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
792 pub fn gst_encoding_target_get_path(target: *mut GstEncodingTarget) -> *const c_char;
793 pub fn gst_encoding_target_get_profile(
794 target: *mut GstEncodingTarget,
795 name: *const c_char,
796 ) -> *mut GstEncodingProfile;
797 pub fn gst_encoding_target_get_profiles(target: *mut GstEncodingTarget) -> *const glib::GList;
798 pub fn gst_encoding_target_save(
799 target: *mut GstEncodingTarget,
800 error: *mut *mut glib::GError,
801 ) -> gboolean;
802 pub fn gst_encoding_target_save_to_file(
803 target: *mut GstEncodingTarget,
804 filepath: *const c_char,
805 error: *mut *mut glib::GError,
806 ) -> gboolean;
807
808 pub fn gst_encoding_video_profile_get_type() -> GType;
812 pub fn gst_encoding_video_profile_new(
813 format: *mut gst::GstCaps,
814 preset: *const c_char,
815 restriction: *mut gst::GstCaps,
816 presence: c_uint,
817 ) -> *mut GstEncodingVideoProfile;
818 pub fn gst_encoding_video_profile_get_pass(prof: *mut GstEncodingVideoProfile) -> c_uint;
819 pub fn gst_encoding_video_profile_get_variableframerate(
820 prof: *mut GstEncodingVideoProfile,
821 ) -> gboolean;
822 pub fn gst_encoding_video_profile_set_pass(prof: *mut GstEncodingVideoProfile, pass: c_uint);
823 pub fn gst_encoding_video_profile_set_variableframerate(
824 prof: *mut GstEncodingVideoProfile,
825 variableframerate: gboolean,
826 );
827
828 pub fn gst_codec_utils_aac_caps_set_level_and_profile(
832 caps: *mut gst::GstCaps,
833 audio_config: *const u8,
834 len: c_uint,
835 ) -> gboolean;
836 pub fn gst_codec_utils_aac_get_channels(audio_config: *const u8, len: c_uint) -> c_uint;
837 pub fn gst_codec_utils_aac_get_index_from_sample_rate(rate: c_uint) -> c_int;
838 pub fn gst_codec_utils_aac_get_level(audio_config: *const u8, len: c_uint) -> *const c_char;
839 pub fn gst_codec_utils_aac_get_profile(audio_config: *const u8, len: c_uint) -> *const c_char;
840 pub fn gst_codec_utils_aac_get_sample_rate(audio_config: *const u8, len: c_uint) -> c_uint;
841 pub fn gst_codec_utils_aac_get_sample_rate_from_index(sr_idx: c_uint) -> c_uint;
842 #[cfg(feature = "v1_26")]
843 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
844 pub fn gst_codec_utils_av1_create_av1c_from_caps(
845 caps: *mut gst::GstCaps,
846 ) -> *mut gst::GstBuffer;
847 #[cfg(feature = "v1_26")]
848 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
849 pub fn gst_codec_utils_av1_create_caps_from_av1c(
850 av1c: *mut gst::GstBuffer,
851 ) -> *mut gst::GstCaps;
852 #[cfg(feature = "v1_26")]
853 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
854 pub fn gst_codec_utils_av1_get_level(seq_level_idx: u8) -> *const c_char;
855 #[cfg(feature = "v1_26")]
856 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
857 pub fn gst_codec_utils_av1_get_seq_level_idx(level: *const c_char) -> u8;
858 #[cfg(feature = "v1_22")]
859 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
860 pub fn gst_codec_utils_caps_from_mime_codec(codecs_field: *const c_char) -> *mut gst::GstCaps;
861 #[cfg(feature = "v1_20")]
862 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
863 pub fn gst_codec_utils_caps_get_mime_codec(caps: *mut gst::GstCaps) -> *mut c_char;
864 pub fn gst_codec_utils_h264_caps_set_level_and_profile(
865 caps: *mut gst::GstCaps,
866 sps: *const u8,
867 len: c_uint,
868 ) -> gboolean;
869 pub fn gst_codec_utils_h264_get_level(sps: *const u8, len: c_uint) -> *const c_char;
870 pub fn gst_codec_utils_h264_get_level_idc(level: *const c_char) -> u8;
871 pub fn gst_codec_utils_h264_get_profile(sps: *const u8, len: c_uint) -> *const c_char;
872 #[cfg(feature = "v1_20")]
873 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
874 pub fn gst_codec_utils_h264_get_profile_flags_level(
875 codec_data: *const u8,
876 len: c_uint,
877 profile: *mut u8,
878 flags: *mut u8,
879 level: *mut u8,
880 ) -> gboolean;
881 pub fn gst_codec_utils_h265_caps_set_level_tier_and_profile(
882 caps: *mut gst::GstCaps,
883 profile_tier_level: *const u8,
884 len: c_uint,
885 ) -> gboolean;
886 pub fn gst_codec_utils_h265_get_level(
887 profile_tier_level: *const u8,
888 len: c_uint,
889 ) -> *const c_char;
890 pub fn gst_codec_utils_h265_get_level_idc(level: *const c_char) -> u8;
891 pub fn gst_codec_utils_h265_get_profile(
892 profile_tier_level: *const u8,
893 len: c_uint,
894 ) -> *const c_char;
895 pub fn gst_codec_utils_h265_get_tier(
896 profile_tier_level: *const u8,
897 len: c_uint,
898 ) -> *const c_char;
899 #[cfg(feature = "v1_26")]
900 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
901 pub fn gst_codec_utils_h266_caps_set_level_tier_and_profile(
902 caps: *mut gst::GstCaps,
903 decoder_configuration: *const u8,
904 len: c_uint,
905 ) -> gboolean;
906 #[cfg(feature = "v1_26")]
907 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
908 pub fn gst_codec_utils_h266_get_level(ptl_record: *const u8, len: c_uint) -> *const c_char;
909 #[cfg(feature = "v1_26")]
910 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
911 pub fn gst_codec_utils_h266_get_level_idc(level: *const c_char) -> u8;
912 #[cfg(feature = "v1_26")]
913 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
914 pub fn gst_codec_utils_h266_get_profile(ptl_record: *const u8, len: c_uint) -> *const c_char;
915 #[cfg(feature = "v1_26")]
916 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
917 pub fn gst_codec_utils_h266_get_tier(ptl_record: *const u8, len: c_uint) -> *const c_char;
918 pub fn gst_codec_utils_mpeg4video_caps_set_level_and_profile(
919 caps: *mut gst::GstCaps,
920 vis_obj_seq: *const u8,
921 len: c_uint,
922 ) -> gboolean;
923 pub fn gst_codec_utils_mpeg4video_get_level(
924 vis_obj_seq: *const u8,
925 len: c_uint,
926 ) -> *const c_char;
927 pub fn gst_codec_utils_mpeg4video_get_profile(
928 vis_obj_seq: *const u8,
929 len: c_uint,
930 ) -> *const c_char;
931 pub fn gst_codec_utils_opus_create_caps(
932 rate: u32,
933 channels: u8,
934 channel_mapping_family: u8,
935 stream_count: u8,
936 coupled_count: u8,
937 channel_mapping: *const u8,
938 ) -> *mut gst::GstCaps;
939 pub fn gst_codec_utils_opus_create_caps_from_header(
940 header: *mut gst::GstBuffer,
941 comments: *mut gst::GstBuffer,
942 ) -> *mut gst::GstCaps;
943 pub fn gst_codec_utils_opus_create_header(
944 rate: u32,
945 channels: u8,
946 channel_mapping_family: u8,
947 stream_count: u8,
948 coupled_count: u8,
949 channel_mapping: *const u8,
950 pre_skip: u16,
951 output_gain: i16,
952 ) -> *mut gst::GstBuffer;
953 pub fn gst_codec_utils_opus_parse_caps(
954 caps: *mut gst::GstCaps,
955 rate: *mut u32,
956 channels: *mut u8,
957 channel_mapping_family: *mut u8,
958 stream_count: *mut u8,
959 coupled_count: *mut u8,
960 channel_mapping: *mut [u8; 256],
961 ) -> gboolean;
962 pub fn gst_codec_utils_opus_parse_header(
963 header: *mut gst::GstBuffer,
964 rate: *mut u32,
965 channels: *mut u8,
966 channel_mapping_family: *mut u8,
967 stream_count: *mut u8,
968 coupled_count: *mut u8,
969 channel_mapping: *mut [u8; 256],
970 pre_skip: *mut u16,
971 output_gain: *mut i16,
972 ) -> gboolean;
973 pub fn gst_encoding_list_all_targets(categoryname: *const c_char) -> *mut glib::GList;
974 pub fn gst_encoding_list_available_categories() -> *mut glib::GList;
975 pub fn gst_install_plugins_async(
976 details: *const *const c_char,
977 ctx: *mut GstInstallPluginsContext,
978 func: GstInstallPluginsResultFunc,
979 user_data: gpointer,
980 ) -> GstInstallPluginsReturn;
981 pub fn gst_install_plugins_installation_in_progress() -> gboolean;
982 pub fn gst_install_plugins_supported() -> gboolean;
983 pub fn gst_install_plugins_sync(
984 details: *const *const c_char,
985 ctx: *mut GstInstallPluginsContext,
986 ) -> GstInstallPluginsReturn;
987 pub fn gst_is_missing_plugin_message(msg: *mut gst::GstMessage) -> gboolean;
988 pub fn gst_missing_decoder_installer_detail_new(
989 decode_caps: *const gst::GstCaps,
990 ) -> *mut c_char;
991 pub fn gst_missing_decoder_message_new(
992 element: *mut gst::GstElement,
993 decode_caps: *const gst::GstCaps,
994 ) -> *mut gst::GstMessage;
995 pub fn gst_missing_element_installer_detail_new(factory_name: *const c_char) -> *mut c_char;
996 pub fn gst_missing_element_message_new(
997 element: *mut gst::GstElement,
998 factory_name: *const c_char,
999 ) -> *mut gst::GstMessage;
1000 pub fn gst_missing_encoder_installer_detail_new(
1001 encode_caps: *const gst::GstCaps,
1002 ) -> *mut c_char;
1003 pub fn gst_missing_encoder_message_new(
1004 element: *mut gst::GstElement,
1005 encode_caps: *const gst::GstCaps,
1006 ) -> *mut gst::GstMessage;
1007 pub fn gst_missing_plugin_message_get_description(msg: *mut gst::GstMessage) -> *mut c_char;
1008 pub fn gst_missing_plugin_message_get_installer_detail(
1009 msg: *mut gst::GstMessage,
1010 ) -> *mut c_char;
1011 #[cfg(feature = "v1_26")]
1012 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
1013 pub fn gst_missing_plugin_message_get_stream_id(msg: *mut gst::GstMessage) -> *const c_char;
1014 #[cfg(feature = "v1_26")]
1015 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
1016 pub fn gst_missing_plugin_message_set_stream_id(
1017 msg: *mut gst::GstMessage,
1018 stream_id: *const c_char,
1019 );
1020 pub fn gst_missing_uri_sink_installer_detail_new(protocol: *const c_char) -> *mut c_char;
1021 pub fn gst_missing_uri_sink_message_new(
1022 element: *mut gst::GstElement,
1023 protocol: *const c_char,
1024 ) -> *mut gst::GstMessage;
1025 pub fn gst_missing_uri_source_installer_detail_new(protocol: *const c_char) -> *mut c_char;
1026 pub fn gst_missing_uri_source_message_new(
1027 element: *mut gst::GstElement,
1028 protocol: *const c_char,
1029 ) -> *mut gst::GstMessage;
1030 pub fn gst_pb_utils_add_codec_description_to_tag_list(
1031 taglist: *mut gst::GstTagList,
1032 codec_tag: *const c_char,
1033 caps: *const gst::GstCaps,
1034 ) -> gboolean;
1035 #[cfg(feature = "v1_20")]
1036 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1037 pub fn gst_pb_utils_get_caps_description_flags(
1038 caps: *const gst::GstCaps,
1039 ) -> GstPbUtilsCapsDescriptionFlags;
1040 pub fn gst_pb_utils_get_codec_description(caps: *const gst::GstCaps) -> *mut c_char;
1041 pub fn gst_pb_utils_get_decoder_description(caps: *const gst::GstCaps) -> *mut c_char;
1042 pub fn gst_pb_utils_get_element_description(factory_name: *const c_char) -> *mut c_char;
1043 pub fn gst_pb_utils_get_encoder_description(caps: *const gst::GstCaps) -> *mut c_char;
1044 #[cfg(feature = "v1_20")]
1045 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1046 pub fn gst_pb_utils_get_file_extension_from_caps(caps: *const gst::GstCaps) -> *mut c_char;
1047 pub fn gst_pb_utils_get_sink_description(protocol: *const c_char) -> *mut c_char;
1048 pub fn gst_pb_utils_get_source_description(protocol: *const c_char) -> *mut c_char;
1049 pub fn gst_pb_utils_init();
1050 pub fn gst_plugins_base_version(
1051 major: *mut c_uint,
1052 minor: *mut c_uint,
1053 micro: *mut c_uint,
1054 nano: *mut c_uint,
1055 );
1056 pub fn gst_plugins_base_version_string() -> *mut c_char;
1057
1058}