lib.rs 36.6 KB
Newer Older
Sebastian Dröge's avatar
Sebastian Dröge committed
1 2
// This file was generated by gir (https://github.com/gtk-rs/gir @ d1e88f9)
// from gir-files (https://github.com/gtk-rs/gir-files @ 63dd366)
3 4
// DO NOT EDIT

5
#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
6 7 8 9 10
#![allow(
    clippy::approx_constant,
    clippy::type_complexity,
    clippy::unreadable_literal
)]
11 12 13 14

extern crate glib_sys as glib;
extern crate gobject_sys as gobject;
extern crate gstreamer_audio_sys as gst_audio;
15
extern crate gstreamer_sys as gst;
16
extern crate gstreamer_video_sys as gst_video;
17
extern crate libc;
18 19

#[allow(unused_imports)]
20 21 22 23
use libc::{
    c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
    intptr_t, size_t, ssize_t, time_t, uintptr_t, FILE,
};
24 25

#[allow(unused_imports)]
26
use glib::{gboolean, gconstpointer, gpointer, GType};
27 28 29 30 31 32 33 34 35 36 37

// Aliases
pub type GstDiscovererAudioInfoClass = gobject::GObjectClass;
pub type GstDiscovererContainerInfoClass = gobject::GObjectClass;
pub type GstDiscovererInfoClass = gobject::GObjectClass;
pub type GstDiscovererStreamInfoClass = gobject::GObjectClass;
pub type GstDiscovererSubtitleInfoClass = gobject::GObjectClass;
pub type GstDiscovererVideoInfoClass = gobject::GObjectClass;
pub type GstEncodingTargetClass = gobject::GObjectClass;

// Enums
38 39 40 41 42 43 44 45 46 47 48
pub type GstAudioVisualizerShader = c_int;
pub const GST_AUDIO_VISUALIZER_SHADER_NONE: GstAudioVisualizerShader = 0;
pub const GST_AUDIO_VISUALIZER_SHADER_FADE: GstAudioVisualizerShader = 1;
pub const GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_UP: GstAudioVisualizerShader = 2;
pub const GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN: GstAudioVisualizerShader = 3;
pub const GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT: GstAudioVisualizerShader = 4;
pub const GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT: GstAudioVisualizerShader = 5;
pub const GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT: GstAudioVisualizerShader = 6;
pub const GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN: GstAudioVisualizerShader = 7;
pub const GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT: GstAudioVisualizerShader = 8;
pub const GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN: GstAudioVisualizerShader = 9;
49

50 51 52 53 54 55 56
pub type GstDiscovererResult = c_int;
pub const GST_DISCOVERER_OK: GstDiscovererResult = 0;
pub const GST_DISCOVERER_URI_INVALID: GstDiscovererResult = 1;
pub const GST_DISCOVERER_ERROR: GstDiscovererResult = 2;
pub const GST_DISCOVERER_TIMEOUT: GstDiscovererResult = 3;
pub const GST_DISCOVERER_BUSY: GstDiscovererResult = 4;
pub const GST_DISCOVERER_MISSING_PLUGINS: GstDiscovererResult = 5;
57

58 59 60 61 62 63 64 65 66 67 68 69
pub type GstInstallPluginsReturn = c_int;
pub const GST_INSTALL_PLUGINS_SUCCESS: GstInstallPluginsReturn = 0;
pub const GST_INSTALL_PLUGINS_NOT_FOUND: GstInstallPluginsReturn = 1;
pub const GST_INSTALL_PLUGINS_ERROR: GstInstallPluginsReturn = 2;
pub const GST_INSTALL_PLUGINS_PARTIAL_SUCCESS: GstInstallPluginsReturn = 3;
pub const GST_INSTALL_PLUGINS_USER_ABORT: GstInstallPluginsReturn = 4;
pub const GST_INSTALL_PLUGINS_CRASHED: GstInstallPluginsReturn = 100;
pub const GST_INSTALL_PLUGINS_INVALID: GstInstallPluginsReturn = 101;
pub const GST_INSTALL_PLUGINS_STARTED_OK: GstInstallPluginsReturn = 200;
pub const GST_INSTALL_PLUGINS_INTERNAL_FAILURE: GstInstallPluginsReturn = 201;
pub const GST_INSTALL_PLUGINS_HELPER_MISSING: GstInstallPluginsReturn = 202;
pub const GST_INSTALL_PLUGINS_INSTALL_IN_PROGRESS: GstInstallPluginsReturn = 203;
70 71 72 73

// Constants
pub const GST_ENCODING_CATEGORY_CAPTURE: *const c_char = b"capture\0" as *const u8 as *const c_char;
pub const GST_ENCODING_CATEGORY_DEVICE: *const c_char = b"device\0" as *const u8 as *const c_char;
74 75 76 77 78 79
pub const GST_ENCODING_CATEGORY_FILE_EXTENSION: *const c_char =
    b"file-extension\0" as *const u8 as *const c_char;
pub const GST_ENCODING_CATEGORY_ONLINE_SERVICE: *const c_char =
    b"online-service\0" as *const u8 as *const c_char;
pub const GST_ENCODING_CATEGORY_STORAGE_EDITING: *const c_char =
    b"storage-editing\0" as *const u8 as *const c_char;
80 81

// Flags
82 83 84 85 86 87
pub type GstDiscovererSerializeFlags = c_uint;
pub const GST_DISCOVERER_SERIALIZE_BASIC: GstDiscovererSerializeFlags = 0;
pub const GST_DISCOVERER_SERIALIZE_CAPS: GstDiscovererSerializeFlags = 1;
pub const GST_DISCOVERER_SERIALIZE_TAGS: GstDiscovererSerializeFlags = 2;
pub const GST_DISCOVERER_SERIALIZE_MISC: GstDiscovererSerializeFlags = 4;
pub const GST_DISCOVERER_SERIALIZE_ALL: GstDiscovererSerializeFlags = 7;
88 89

// Callbacks
90 91 92 93 94 95 96 97 98
pub type GstAudioVisualizerShaderFunc = Option<
    unsafe extern "C" fn(
        *mut GstAudioVisualizer,
        *const gst_video::GstVideoFrame,
        *mut gst_video::GstVideoFrame,
    ),
>;
pub type GstInstallPluginsResultFunc =
    Option<unsafe extern "C" fn(GstInstallPluginsReturn, gpointer)>;
99 100 101

// Records
#[repr(C)]
102
#[derive(Copy, Clone)]
103 104 105
pub struct GstAudioVisualizerClass {
    pub parent_class: gst::GstElementClass,
    pub setup: Option<unsafe extern "C" fn(*mut GstAudioVisualizer) -> gboolean>,
106 107 108 109 110 111 112 113 114
    pub render: Option<
        unsafe extern "C" fn(
            *mut GstAudioVisualizer,
            *mut gst::GstBuffer,
            *mut gst_video::GstVideoFrame,
        ) -> gboolean,
    >,
    pub decide_allocation:
        Option<unsafe extern "C" fn(*mut GstAudioVisualizer, *mut gst::GstQuery) -> gboolean>,
115 116
}

Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
117 118
impl ::std::fmt::Debug for GstAudioVisualizerClass {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
119
        f.debug_struct(&format!("GstAudioVisualizerClass @ {:?}", self as *const _))
120 121 122 123
            .field("setup", &self.setup)
            .field("render", &self.render)
            .field("decide_allocation", &self.decide_allocation)
            .finish()
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
124 125 126
    }
}

127
#[repr(C)]
128
pub struct _GstAudioVisualizerPrivate(c_void);
129

130
pub type GstAudioVisualizerPrivate = *mut _GstAudioVisualizerPrivate;
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
131

132
#[repr(C)]
133
#[derive(Copy, Clone)]
134 135 136 137
pub struct GstDiscovererClass {
    pub parentclass: gobject::GObjectClass,
    pub finished: Option<unsafe extern "C" fn(*mut GstDiscoverer)>,
    pub starting: Option<unsafe extern "C" fn(*mut GstDiscoverer)>,
138 139 140
    pub discovered: Option<
        unsafe extern "C" fn(*mut GstDiscoverer, *mut GstDiscovererInfo, *const glib::GError),
    >,
141 142 143 144
    pub source_setup: Option<unsafe extern "C" fn(*mut GstDiscoverer, *mut gst::GstElement)>,
    pub _reserved: [gpointer; 4],
}

Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
145 146
impl ::std::fmt::Debug for GstDiscovererClass {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
147
        f.debug_struct(&format!("GstDiscovererClass @ {:?}", self as *const _))
148 149 150 151 152 153 154
            .field("parentclass", &self.parentclass)
            .field("finished", &self.finished)
            .field("starting", &self.starting)
            .field("discovered", &self.discovered)
            .field("source_setup", &self.source_setup)
            .field("_reserved", &self._reserved)
            .finish()
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
155 156 157
    }
}

158
#[repr(C)]
159
pub struct _GstDiscovererPrivate(c_void);
160

161
pub type GstDiscovererPrivate = *mut _GstDiscovererPrivate;
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
162

163
#[repr(C)]
164
pub struct _GstEncodingAudioProfileClass(c_void);
165

166
pub type GstEncodingAudioProfileClass = *mut _GstEncodingAudioProfileClass;
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
167

168
#[repr(C)]
169
pub struct _GstEncodingContainerProfileClass(c_void);
170

171
pub type GstEncodingContainerProfileClass = *mut _GstEncodingContainerProfileClass;
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
172

173
#[repr(C)]
174
pub struct _GstEncodingProfileClass(c_void);
175

176
pub type GstEncodingProfileClass = *mut _GstEncodingProfileClass;
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
177

178
#[repr(C)]
179
pub struct _GstEncodingVideoProfileClass(c_void);
180

181
pub type GstEncodingVideoProfileClass = *mut _GstEncodingVideoProfileClass;
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
182

183 184 185
#[repr(C)]
pub struct GstInstallPluginsContext(c_void);

Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
186 187
impl ::std::fmt::Debug for GstInstallPluginsContext {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
188 189 190 191 192
        f.debug_struct(&format!(
            "GstInstallPluginsContext @ {:?}",
            self as *const _
        ))
        .finish()
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
193 194 195
    }
}

196 197
// Classes
#[repr(C)]
198
#[derive(Copy, Clone)]
199 200 201 202 203
pub struct GstAudioVisualizer {
    pub parent: gst::GstElement,
    pub req_spf: c_uint,
    pub vinfo: gst_video::GstVideoInfo,
    pub ainfo: gst_audio::GstAudioInfo,
204
    pub priv_: *mut GstAudioVisualizerPrivate,
205 206
}

Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
207 208 209
impl ::std::fmt::Debug for GstAudioVisualizer {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstAudioVisualizer @ {:?}", self as *const _))
210 211 212 213 214
            .field("parent", &self.parent)
            .field("req_spf", &self.req_spf)
            .field("vinfo", &self.vinfo)
            .field("ainfo", &self.ainfo)
            .finish()
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
215 216 217
    }
}

218
#[repr(C)]
219
#[derive(Copy, Clone)]
220 221
pub struct GstDiscoverer {
    pub parent: gobject::GObject,
222 223
    pub priv_: *mut GstDiscovererPrivate,
    pub _reserved: [gpointer; 4],
224 225
}

Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
226 227 228
impl ::std::fmt::Debug for GstDiscoverer {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstDiscoverer @ {:?}", self as *const _))
229 230
            .field("parent", &self.parent)
            .finish()
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
231 232 233
    }
}

234 235 236
#[repr(C)]
pub struct GstDiscovererAudioInfo(c_void);

Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
237 238
impl ::std::fmt::Debug for GstDiscovererAudioInfo {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
239
        f.debug_struct(&format!("GstDiscovererAudioInfo @ {:?}", self as *const _))
240
            .finish()
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
241 242 243
    }
}

244 245 246
#[repr(C)]
pub struct GstDiscovererContainerInfo(c_void);

Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
247 248
impl ::std::fmt::Debug for GstDiscovererContainerInfo {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
249 250 251 252 253
        f.debug_struct(&format!(
            "GstDiscovererContainerInfo @ {:?}",
            self as *const _
        ))
        .finish()
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
254 255 256
    }
}

257 258 259
#[repr(C)]
pub struct GstDiscovererInfo(c_void);

Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
260 261
impl ::std::fmt::Debug for GstDiscovererInfo {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
262
        f.debug_struct(&format!("GstDiscovererInfo @ {:?}", self as *const _))
263
            .finish()
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
264 265 266
    }
}

267 268 269
#[repr(C)]
pub struct GstDiscovererStreamInfo(c_void);

Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
270 271
impl ::std::fmt::Debug for GstDiscovererStreamInfo {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
272
        f.debug_struct(&format!("GstDiscovererStreamInfo @ {:?}", self as *const _))
273
            .finish()
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
274 275 276
    }
}

277 278 279
#[repr(C)]
pub struct GstDiscovererSubtitleInfo(c_void);

Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
280 281
impl ::std::fmt::Debug for GstDiscovererSubtitleInfo {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
282 283 284 285 286
        f.debug_struct(&format!(
            "GstDiscovererSubtitleInfo @ {:?}",
            self as *const _
        ))
        .finish()
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
287 288 289
    }
}

290 291 292
#[repr(C)]
pub struct GstDiscovererVideoInfo(c_void);

Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
293 294
impl ::std::fmt::Debug for GstDiscovererVideoInfo {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
295
        f.debug_struct(&format!("GstDiscovererVideoInfo @ {:?}", self as *const _))
296
            .finish()
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
297 298 299
    }
}

300 301 302
#[repr(C)]
pub struct GstEncodingAudioProfile(c_void);

Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
303 304
impl ::std::fmt::Debug for GstEncodingAudioProfile {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
305
        f.debug_struct(&format!("GstEncodingAudioProfile @ {:?}", self as *const _))
306
            .finish()
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
307 308 309
    }
}

310 311 312
#[repr(C)]
pub struct GstEncodingContainerProfile(c_void);

Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
313 314
impl ::std::fmt::Debug for GstEncodingContainerProfile {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
315 316 317 318 319
        f.debug_struct(&format!(
            "GstEncodingContainerProfile @ {:?}",
            self as *const _
        ))
        .finish()
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
320 321 322
    }
}

323 324 325
#[repr(C)]
pub struct GstEncodingProfile(c_void);

Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
326 327
impl ::std::fmt::Debug for GstEncodingProfile {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
328
        f.debug_struct(&format!("GstEncodingProfile @ {:?}", self as *const _))
329
            .finish()
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
330 331 332
    }
}

333 334 335
#[repr(C)]
pub struct GstEncodingTarget(c_void);

Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
336 337
impl ::std::fmt::Debug for GstEncodingTarget {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
338
        f.debug_struct(&format!("GstEncodingTarget @ {:?}", self as *const _))
339
            .finish()
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
340 341 342
    }
}

343 344 345
#[repr(C)]
pub struct GstEncodingVideoProfile(c_void);

Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
346 347
impl ::std::fmt::Debug for GstEncodingVideoProfile {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
348
        f.debug_struct(&format!("GstEncodingVideoProfile @ {:?}", self as *const _))
349
            .finish()
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
350 351 352
    }
}

353 354
extern "C" {

Sebastian Dröge's avatar
Sebastian Dröge committed
355 356 357 358 359 360 361 362 363 364
    //=========================================================================
    // GstAudioVisualizerShader
    //=========================================================================
    pub fn gst_audio_visualizer_shader_get_type() -> GType;

    //=========================================================================
    // GstDiscovererResult
    //=========================================================================
    pub fn gst_discoverer_result_get_type() -> GType;

365 366 367
    //=========================================================================
    // GstInstallPluginsReturn
    //=========================================================================
Sebastian Dröge's avatar
Sebastian Dröge committed
368
    pub fn gst_install_plugins_return_get_type() -> GType;
369 370
    pub fn gst_install_plugins_return_get_name(ret: GstInstallPluginsReturn) -> *const c_char;

Sebastian Dröge's avatar
Sebastian Dröge committed
371 372 373 374 375
    //=========================================================================
    // GstDiscovererSerializeFlags
    //=========================================================================
    pub fn gst_discoverer_serialize_flags_get_type() -> GType;

376 377 378 379 380
    //=========================================================================
    // GstInstallPluginsContext
    //=========================================================================
    pub fn gst_install_plugins_context_get_type() -> GType;
    pub fn gst_install_plugins_context_new() -> *mut GstInstallPluginsContext;
381 382 383
    pub fn gst_install_plugins_context_copy(
        ctx: *mut GstInstallPluginsContext,
    ) -> *mut GstInstallPluginsContext;
384
    pub fn gst_install_plugins_context_free(ctx: *mut GstInstallPluginsContext);
385
    #[cfg(any(feature = "v1_6", feature = "dox"))]
386 387 388 389
    pub fn gst_install_plugins_context_set_confirm_search(
        ctx: *mut GstInstallPluginsContext,
        confirm_search: gboolean,
    );
390
    #[cfg(any(feature = "v1_6", feature = "dox"))]
391 392 393 394
    pub fn gst_install_plugins_context_set_desktop_id(
        ctx: *mut GstInstallPluginsContext,
        desktop_id: *const c_char,
    );
395
    #[cfg(any(feature = "v1_6", feature = "dox"))]
396 397 398 399
    pub fn gst_install_plugins_context_set_startup_notification_id(
        ctx: *mut GstInstallPluginsContext,
        startup_id: *const c_char,
    );
400 401 402 403 404 405 406 407 408 409 410
    pub fn gst_install_plugins_context_set_xid(ctx: *mut GstInstallPluginsContext, xid: c_uint);

    //=========================================================================
    // GstAudioVisualizer
    //=========================================================================
    pub fn gst_audio_visualizer_get_type() -> GType;

    //=========================================================================
    // GstDiscoverer
    //=========================================================================
    pub fn gst_discoverer_get_type() -> GType;
411 412 413 414 415 416 417 418 419 420 421 422 423
    pub fn gst_discoverer_new(
        timeout: gst::GstClockTime,
        error: *mut *mut glib::GError,
    ) -> *mut GstDiscoverer;
    pub fn gst_discoverer_discover_uri(
        discoverer: *mut GstDiscoverer,
        uri: *const c_char,
        error: *mut *mut glib::GError,
    ) -> *mut GstDiscovererInfo;
    pub fn gst_discoverer_discover_uri_async(
        discoverer: *mut GstDiscoverer,
        uri: *const c_char,
    ) -> gboolean;
424 425 426 427 428 429 430 431
    pub fn gst_discoverer_start(discoverer: *mut GstDiscoverer);
    pub fn gst_discoverer_stop(discoverer: *mut GstDiscoverer);

    //=========================================================================
    // GstDiscovererAudioInfo
    //=========================================================================
    pub fn gst_discoverer_audio_info_get_type() -> GType;
    pub fn gst_discoverer_audio_info_get_bitrate(info: *const GstDiscovererAudioInfo) -> c_uint;
432 433
    #[cfg(any(feature = "v1_14", feature = "dox"))]
    pub fn gst_discoverer_audio_info_get_channel_mask(info: *const GstDiscovererAudioInfo) -> u64;
434 435
    pub fn gst_discoverer_audio_info_get_channels(info: *const GstDiscovererAudioInfo) -> c_uint;
    pub fn gst_discoverer_audio_info_get_depth(info: *const GstDiscovererAudioInfo) -> c_uint;
436 437 438 439 440 441 442
    pub fn gst_discoverer_audio_info_get_language(
        info: *const GstDiscovererAudioInfo,
    ) -> *const c_char;
    pub fn gst_discoverer_audio_info_get_max_bitrate(info: *const GstDiscovererAudioInfo)
        -> c_uint;
    pub fn gst_discoverer_audio_info_get_sample_rate(info: *const GstDiscovererAudioInfo)
        -> c_uint;
443 444 445 446 447

    //=========================================================================
    // GstDiscovererContainerInfo
    //=========================================================================
    pub fn gst_discoverer_container_info_get_type() -> GType;
448 449 450
    pub fn gst_discoverer_container_info_get_streams(
        info: *mut GstDiscovererContainerInfo,
    ) -> *mut glib::GList;
451 452 453 454 455

    //=========================================================================
    // GstDiscovererInfo
    //=========================================================================
    pub fn gst_discoverer_info_get_type() -> GType;
456
    #[cfg(any(feature = "v1_6", feature = "dox"))]
457 458
    pub fn gst_discoverer_info_from_variant(variant: *mut glib::GVariant)
        -> *mut GstDiscovererInfo;
459 460
    pub fn gst_discoverer_info_copy(ptr: *mut GstDiscovererInfo) -> *mut GstDiscovererInfo;
    pub fn gst_discoverer_info_get_audio_streams(info: *mut GstDiscovererInfo) -> *mut glib::GList;
461 462 463
    pub fn gst_discoverer_info_get_container_streams(
        info: *mut GstDiscovererInfo,
    ) -> *mut glib::GList;
464
    pub fn gst_discoverer_info_get_duration(info: *const GstDiscovererInfo) -> gst::GstClockTime;
465 466
    #[cfg(any(feature = "v1_14", feature = "dox"))]
    pub fn gst_discoverer_info_get_live(info: *const GstDiscovererInfo) -> gboolean;
467 468
    pub fn gst_discoverer_info_get_misc(info: *const GstDiscovererInfo)
        -> *const gst::GstStructure;
469
    #[cfg(any(feature = "v1_4", feature = "dox"))]
470 471 472
    pub fn gst_discoverer_info_get_missing_elements_installer_details(
        info: *const GstDiscovererInfo,
    ) -> *mut *const c_char;
473 474
    pub fn gst_discoverer_info_get_result(info: *const GstDiscovererInfo) -> GstDiscovererResult;
    pub fn gst_discoverer_info_get_seekable(info: *const GstDiscovererInfo) -> gboolean;
475 476 477
    pub fn gst_discoverer_info_get_stream_info(
        info: *mut GstDiscovererInfo,
    ) -> *mut GstDiscovererStreamInfo;
478
    pub fn gst_discoverer_info_get_stream_list(info: *mut GstDiscovererInfo) -> *mut glib::GList;
479 480 481 482 483 484 485
    pub fn gst_discoverer_info_get_streams(
        info: *mut GstDiscovererInfo,
        streamtype: GType,
    ) -> *mut glib::GList;
    pub fn gst_discoverer_info_get_subtitle_streams(
        info: *mut GstDiscovererInfo,
    ) -> *mut glib::GList;
486 487 488 489
    pub fn gst_discoverer_info_get_tags(info: *const GstDiscovererInfo) -> *const gst::GstTagList;
    pub fn gst_discoverer_info_get_toc(info: *const GstDiscovererInfo) -> *const gst::GstToc;
    pub fn gst_discoverer_info_get_uri(info: *const GstDiscovererInfo) -> *const c_char;
    pub fn gst_discoverer_info_get_video_streams(info: *mut GstDiscovererInfo) -> *mut glib::GList;
490
    #[cfg(any(feature = "v1_6", feature = "dox"))]
491 492 493 494
    pub fn gst_discoverer_info_to_variant(
        info: *mut GstDiscovererInfo,
        flags: GstDiscovererSerializeFlags,
    ) -> *mut glib::GVariant;
495 496 497 498 499 500

    //=========================================================================
    // GstDiscovererStreamInfo
    //=========================================================================
    pub fn gst_discoverer_stream_info_get_type() -> GType;
    pub fn gst_discoverer_stream_info_list_free(infos: *mut glib::GList);
501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524
    pub fn gst_discoverer_stream_info_get_caps(
        info: *mut GstDiscovererStreamInfo,
    ) -> *mut gst::GstCaps;
    pub fn gst_discoverer_stream_info_get_misc(
        info: *mut GstDiscovererStreamInfo,
    ) -> *const gst::GstStructure;
    pub fn gst_discoverer_stream_info_get_next(
        info: *mut GstDiscovererStreamInfo,
    ) -> *mut GstDiscovererStreamInfo;
    pub fn gst_discoverer_stream_info_get_previous(
        info: *mut GstDiscovererStreamInfo,
    ) -> *mut GstDiscovererStreamInfo;
    pub fn gst_discoverer_stream_info_get_stream_id(
        info: *mut GstDiscovererStreamInfo,
    ) -> *const c_char;
    pub fn gst_discoverer_stream_info_get_stream_type_nick(
        info: *mut GstDiscovererStreamInfo,
    ) -> *const c_char;
    pub fn gst_discoverer_stream_info_get_tags(
        info: *mut GstDiscovererStreamInfo,
    ) -> *const gst::GstTagList;
    pub fn gst_discoverer_stream_info_get_toc(
        info: *mut GstDiscovererStreamInfo,
    ) -> *const gst::GstToc;
525 526 527 528 529

    //=========================================================================
    // GstDiscovererSubtitleInfo
    //=========================================================================
    pub fn gst_discoverer_subtitle_info_get_type() -> GType;
530 531 532
    pub fn gst_discoverer_subtitle_info_get_language(
        info: *const GstDiscovererSubtitleInfo,
    ) -> *const c_char;
533 534 535 536 537 538 539

    //=========================================================================
    // GstDiscovererVideoInfo
    //=========================================================================
    pub fn gst_discoverer_video_info_get_type() -> GType;
    pub fn gst_discoverer_video_info_get_bitrate(info: *const GstDiscovererVideoInfo) -> c_uint;
    pub fn gst_discoverer_video_info_get_depth(info: *const GstDiscovererVideoInfo) -> c_uint;
540 541 542 543 544 545
    pub fn gst_discoverer_video_info_get_framerate_denom(
        info: *const GstDiscovererVideoInfo,
    ) -> c_uint;
    pub fn gst_discoverer_video_info_get_framerate_num(
        info: *const GstDiscovererVideoInfo,
    ) -> c_uint;
546
    pub fn gst_discoverer_video_info_get_height(info: *const GstDiscovererVideoInfo) -> c_uint;
547 548
    pub fn gst_discoverer_video_info_get_max_bitrate(info: *const GstDiscovererVideoInfo)
        -> c_uint;
549 550 551 552
    pub fn gst_discoverer_video_info_get_par_denom(info: *const GstDiscovererVideoInfo) -> c_uint;
    pub fn gst_discoverer_video_info_get_par_num(info: *const GstDiscovererVideoInfo) -> c_uint;
    pub fn gst_discoverer_video_info_get_width(info: *const GstDiscovererVideoInfo) -> c_uint;
    pub fn gst_discoverer_video_info_is_image(info: *const GstDiscovererVideoInfo) -> gboolean;
553 554
    pub fn gst_discoverer_video_info_is_interlaced(info: *const GstDiscovererVideoInfo)
        -> gboolean;
555 556 557 558 559

    //=========================================================================
    // GstEncodingAudioProfile
    //=========================================================================
    pub fn gst_encoding_audio_profile_get_type() -> GType;
560 561 562 563 564 565
    pub fn gst_encoding_audio_profile_new(
        format: *mut gst::GstCaps,
        preset: *const c_char,
        restriction: *mut gst::GstCaps,
        presence: c_uint,
    ) -> *mut GstEncodingAudioProfile;
566 567 568 569 570

    //=========================================================================
    // GstEncodingContainerProfile
    //=========================================================================
    pub fn gst_encoding_container_profile_get_type() -> GType;
571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587
    pub fn gst_encoding_container_profile_new(
        name: *const c_char,
        description: *const c_char,
        format: *mut gst::GstCaps,
        preset: *const c_char,
    ) -> *mut GstEncodingContainerProfile;
    pub fn gst_encoding_container_profile_add_profile(
        container: *mut GstEncodingContainerProfile,
        profile: *mut GstEncodingProfile,
    ) -> gboolean;
    pub fn gst_encoding_container_profile_contains_profile(
        container: *mut GstEncodingContainerProfile,
        profile: *mut GstEncodingProfile,
    ) -> gboolean;
    pub fn gst_encoding_container_profile_get_profiles(
        profile: *mut GstEncodingContainerProfile,
    ) -> *const glib::GList;
588 589 590 591 592

    //=========================================================================
    // GstEncodingProfile
    //=========================================================================
    pub fn gst_encoding_profile_get_type() -> GType;
593 594 595 596 597 598 599 600
    pub fn gst_encoding_profile_find(
        targetname: *const c_char,
        profilename: *const c_char,
        category: *const c_char,
    ) -> *mut GstEncodingProfile;
    pub fn gst_encoding_profile_from_discoverer(
        info: *mut GstDiscovererInfo,
    ) -> *mut GstEncodingProfile;
601
    #[cfg(any(feature = "v1_12", feature = "dox"))]
602
    pub fn gst_encoding_profile_copy(self_: *mut GstEncodingProfile) -> *mut GstEncodingProfile;
603 604 605
    pub fn gst_encoding_profile_get_allow_dynamic_output(
        profile: *mut GstEncodingProfile,
    ) -> gboolean;
606
    pub fn gst_encoding_profile_get_description(profile: *mut GstEncodingProfile) -> *const c_char;
607 608 609
    pub fn gst_encoding_profile_get_file_extension(
        profile: *mut GstEncodingProfile,
    ) -> *const c_char;
610
    pub fn gst_encoding_profile_get_format(profile: *mut GstEncodingProfile) -> *mut gst::GstCaps;
611 612 613
    pub fn gst_encoding_profile_get_input_caps(
        profile: *mut GstEncodingProfile,
    ) -> *mut gst::GstCaps;
614 615 616 617
    pub fn gst_encoding_profile_get_name(profile: *mut GstEncodingProfile) -> *const c_char;
    pub fn gst_encoding_profile_get_presence(profile: *mut GstEncodingProfile) -> c_uint;
    pub fn gst_encoding_profile_get_preset(profile: *mut GstEncodingProfile) -> *const c_char;
    pub fn gst_encoding_profile_get_preset_name(profile: *mut GstEncodingProfile) -> *const c_char;
618 619 620
    pub fn gst_encoding_profile_get_restriction(
        profile: *mut GstEncodingProfile,
    ) -> *mut gst::GstCaps;
621 622
    pub fn gst_encoding_profile_get_type_nick(profile: *mut GstEncodingProfile) -> *const c_char;
    pub fn gst_encoding_profile_is_enabled(profile: *mut GstEncodingProfile) -> gboolean;
623 624 625 626 627 628 629 630 631 632 633 634
    pub fn gst_encoding_profile_is_equal(
        a: *mut GstEncodingProfile,
        b: *mut GstEncodingProfile,
    ) -> gboolean;
    pub fn gst_encoding_profile_set_allow_dynamic_output(
        profile: *mut GstEncodingProfile,
        allow_dynamic_output: gboolean,
    );
    pub fn gst_encoding_profile_set_description(
        profile: *mut GstEncodingProfile,
        description: *const c_char,
    );
635
    #[cfg(any(feature = "v1_6", feature = "dox"))]
636
    pub fn gst_encoding_profile_set_enabled(profile: *mut GstEncodingProfile, enabled: gboolean);
637 638 639 640
    pub fn gst_encoding_profile_set_format(
        profile: *mut GstEncodingProfile,
        format: *mut gst::GstCaps,
    );
641 642 643
    pub fn gst_encoding_profile_set_name(profile: *mut GstEncodingProfile, name: *const c_char);
    pub fn gst_encoding_profile_set_presence(profile: *mut GstEncodingProfile, presence: c_uint);
    pub fn gst_encoding_profile_set_preset(profile: *mut GstEncodingProfile, preset: *const c_char);
644 645 646 647 648 649 650 651
    pub fn gst_encoding_profile_set_preset_name(
        profile: *mut GstEncodingProfile,
        preset_name: *const c_char,
    );
    pub fn gst_encoding_profile_set_restriction(
        profile: *mut GstEncodingProfile,
        restriction: *mut gst::GstCaps,
    );
652 653 654 655 656

    //=========================================================================
    // GstEncodingTarget
    //=========================================================================
    pub fn gst_encoding_target_get_type() -> GType;
657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675
    pub fn gst_encoding_target_new(
        name: *const c_char,
        category: *const c_char,
        description: *const c_char,
        profiles: *const glib::GList,
    ) -> *mut GstEncodingTarget;
    pub fn gst_encoding_target_load(
        name: *const c_char,
        category: *const c_char,
        error: *mut *mut glib::GError,
    ) -> *mut GstEncodingTarget;
    pub fn gst_encoding_target_load_from_file(
        filepath: *const c_char,
        error: *mut *mut glib::GError,
    ) -> *mut GstEncodingTarget;
    pub fn gst_encoding_target_add_profile(
        target: *mut GstEncodingTarget,
        profile: *mut GstEncodingProfile,
    ) -> gboolean;
676 677 678
    pub fn gst_encoding_target_get_category(target: *mut GstEncodingTarget) -> *const c_char;
    pub fn gst_encoding_target_get_description(target: *mut GstEncodingTarget) -> *const c_char;
    pub fn gst_encoding_target_get_name(target: *mut GstEncodingTarget) -> *const c_char;
679 680 681 682
    pub fn gst_encoding_target_get_profile(
        target: *mut GstEncodingTarget,
        name: *const c_char,
    ) -> *mut GstEncodingProfile;
683
    pub fn gst_encoding_target_get_profiles(target: *mut GstEncodingTarget) -> *const glib::GList;
684 685 686 687 688 689 690 691 692
    pub fn gst_encoding_target_save(
        target: *mut GstEncodingTarget,
        error: *mut *mut glib::GError,
    ) -> gboolean;
    pub fn gst_encoding_target_save_to_file(
        target: *mut GstEncodingTarget,
        filepath: *const c_char,
        error: *mut *mut glib::GError,
    ) -> gboolean;
693 694 695 696 697

    //=========================================================================
    // GstEncodingVideoProfile
    //=========================================================================
    pub fn gst_encoding_video_profile_get_type() -> GType;
698 699 700 701 702 703
    pub fn gst_encoding_video_profile_new(
        format: *mut gst::GstCaps,
        preset: *const c_char,
        restriction: *mut gst::GstCaps,
        presence: c_uint,
    ) -> *mut GstEncodingVideoProfile;
704
    pub fn gst_encoding_video_profile_get_pass(prof: *mut GstEncodingVideoProfile) -> c_uint;
705 706 707
    pub fn gst_encoding_video_profile_get_variableframerate(
        prof: *mut GstEncodingVideoProfile,
    ) -> gboolean;
708
    pub fn gst_encoding_video_profile_set_pass(prof: *mut GstEncodingVideoProfile, pass: c_uint);
709 710 711 712
    pub fn gst_encoding_video_profile_set_variableframerate(
        prof: *mut GstEncodingVideoProfile,
        variableframerate: gboolean,
    );
713 714 715 716

    //=========================================================================
    // Other functions
    //=========================================================================
717 718 719 720 721
    pub fn gst_codec_utils_aac_caps_set_level_and_profile(
        caps: *mut gst::GstCaps,
        audio_config: *const u8,
        len: c_uint,
    ) -> gboolean;
722
    #[cfg(any(feature = "v1_10", feature = "dox"))]
723
    pub fn gst_codec_utils_aac_get_channels(audio_config: *const u8, len: c_uint) -> c_uint;
724
    pub fn gst_codec_utils_aac_get_index_from_sample_rate(rate: c_uint) -> c_int;
725 726
    pub fn gst_codec_utils_aac_get_level(audio_config: *const u8, len: c_uint) -> *const c_char;
    pub fn gst_codec_utils_aac_get_profile(audio_config: *const u8, len: c_uint) -> *const c_char;
727
    #[cfg(any(feature = "v1_10", feature = "dox"))]
728
    pub fn gst_codec_utils_aac_get_sample_rate(audio_config: *const u8, len: c_uint) -> c_uint;
729
    pub fn gst_codec_utils_aac_get_sample_rate_from_index(sr_idx: c_uint) -> c_uint;
730 731 732 733 734
    pub fn gst_codec_utils_h264_caps_set_level_and_profile(
        caps: *mut gst::GstCaps,
        sps: *const u8,
        len: c_uint,
    ) -> gboolean;
735
    pub fn gst_codec_utils_h264_get_level(sps: *const u8, len: c_uint) -> *const c_char;
736
    pub fn gst_codec_utils_h264_get_level_idc(level: *const c_char) -> u8;
737
    pub fn gst_codec_utils_h264_get_profile(sps: *const u8, len: c_uint) -> *const c_char;
738
    #[cfg(any(feature = "v1_4", feature = "dox"))]
739 740 741 742 743
    pub fn gst_codec_utils_h265_caps_set_level_tier_and_profile(
        caps: *mut gst::GstCaps,
        profile_tier_level: *const u8,
        len: c_uint,
    ) -> gboolean;
744
    #[cfg(any(feature = "v1_4", feature = "dox"))]
745 746 747 748
    pub fn gst_codec_utils_h265_get_level(
        profile_tier_level: *const u8,
        len: c_uint,
    ) -> *const c_char;
749
    #[cfg(any(feature = "v1_4", feature = "dox"))]
750
    pub fn gst_codec_utils_h265_get_level_idc(level: *const c_char) -> u8;
751
    #[cfg(any(feature = "v1_4", feature = "dox"))]
752 753 754 755
    pub fn gst_codec_utils_h265_get_profile(
        profile_tier_level: *const u8,
        len: c_uint,
    ) -> *const c_char;
756
    #[cfg(any(feature = "v1_4", feature = "dox"))]
757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773
    pub fn gst_codec_utils_h265_get_tier(
        profile_tier_level: *const u8,
        len: c_uint,
    ) -> *const c_char;
    pub fn gst_codec_utils_mpeg4video_caps_set_level_and_profile(
        caps: *mut gst::GstCaps,
        vis_obj_seq: *const u8,
        len: c_uint,
    ) -> gboolean;
    pub fn gst_codec_utils_mpeg4video_get_level(
        vis_obj_seq: *const u8,
        len: c_uint,
    ) -> *const c_char;
    pub fn gst_codec_utils_mpeg4video_get_profile(
        vis_obj_seq: *const u8,
        len: c_uint,
    ) -> *const c_char;
774
    #[cfg(any(feature = "v1_8", feature = "dox"))]
775 776 777 778 779 780 781 782
    pub fn gst_codec_utils_opus_create_caps(
        rate: u32,
        channels: u8,
        channel_mapping_family: u8,
        stream_count: u8,
        coupled_count: u8,
        channel_mapping: *const u8,
    ) -> *mut gst::GstCaps;
783
    #[cfg(any(feature = "v1_8", feature = "dox"))]
784 785 786 787
    pub fn gst_codec_utils_opus_create_caps_from_header(
        header: *mut gst::GstBuffer,
        comments: *mut gst::GstBuffer,
    ) -> *mut gst::GstCaps;
788
    #[cfg(any(feature = "v1_8", feature = "dox"))]
789 790 791 792 793 794 795 796 797 798
    pub fn gst_codec_utils_opus_create_header(
        rate: u32,
        channels: u8,
        channel_mapping_family: u8,
        stream_count: u8,
        coupled_count: u8,
        channel_mapping: *const u8,
        pre_skip: u16,
        output_gain: i16,
    ) -> *mut gst::GstBuffer;
799
    #[cfg(any(feature = "v1_8", feature = "dox"))]
800 801 802 803 804 805 806 807 808
    pub fn gst_codec_utils_opus_parse_caps(
        caps: *mut gst::GstCaps,
        rate: *mut u32,
        channels: *mut u8,
        channel_mapping_family: *mut u8,
        stream_count: *mut u8,
        coupled_count: *mut u8,
        channel_mapping: *mut [u8; 256],
    ) -> gboolean;
809
    #[cfg(any(feature = "v1_8", feature = "dox"))]
810 811 812 813 814 815 816 817 818 819 820
    pub fn gst_codec_utils_opus_parse_header(
        header: *mut gst::GstBuffer,
        rate: *mut u32,
        channels: *mut u8,
        channel_mapping_family: *mut u8,
        stream_count: *mut u8,
        coupled_count: *mut u8,
        channel_mapping: *mut [u8; 256],
        pre_skip: *mut u16,
        output_gain: *mut i16,
    ) -> gboolean;
821 822
    pub fn gst_encoding_list_all_targets(categoryname: *const c_char) -> *mut glib::GList;
    pub fn gst_encoding_list_available_categories() -> *mut glib::GList;
823 824 825 826 827 828
    pub fn gst_install_plugins_async(
        details: *const *const c_char,
        ctx: *mut GstInstallPluginsContext,
        func: GstInstallPluginsResultFunc,
        user_data: gpointer,
    ) -> GstInstallPluginsReturn;
829 830
    pub fn gst_install_plugins_installation_in_progress() -> gboolean;
    pub fn gst_install_plugins_supported() -> gboolean;
831 832 833 834
    pub fn gst_install_plugins_sync(
        details: *const *const c_char,
        ctx: *mut GstInstallPluginsContext,
    ) -> GstInstallPluginsReturn;
835
    pub fn gst_is_missing_plugin_message(msg: *mut gst::GstMessage) -> gboolean;
836 837 838 839 840 841 842
    pub fn gst_missing_decoder_installer_detail_new(
        decode_caps: *const gst::GstCaps,
    ) -> *mut c_char;
    pub fn gst_missing_decoder_message_new(
        element: *mut gst::GstElement,
        decode_caps: *const gst::GstCaps,
    ) -> *mut gst::GstMessage;
843
    pub fn gst_missing_element_installer_detail_new(factory_name: *const c_char) -> *mut c_char;
844 845 846 847 848 849 850 851 852 853 854
    pub fn gst_missing_element_message_new(
        element: *mut gst::GstElement,
        factory_name: *const c_char,
    ) -> *mut gst::GstMessage;
    pub fn gst_missing_encoder_installer_detail_new(
        encode_caps: *const gst::GstCaps,
    ) -> *mut c_char;
    pub fn gst_missing_encoder_message_new(
        element: *mut gst::GstElement,
        encode_caps: *const gst::GstCaps,
    ) -> *mut gst::GstMessage;
855
    pub fn gst_missing_plugin_message_get_description(msg: *mut gst::GstMessage) -> *mut c_char;
856 857 858
    pub fn gst_missing_plugin_message_get_installer_detail(
        msg: *mut gst::GstMessage,
    ) -> *mut c_char;
859
    pub fn gst_missing_uri_sink_installer_detail_new(protocol: *const c_char) -> *mut c_char;
860 861 862 863
    pub fn gst_missing_uri_sink_message_new(
        element: *mut gst::GstElement,
        protocol: *const c_char,
    ) -> *mut gst::GstMessage;
864
    pub fn gst_missing_uri_source_installer_detail_new(protocol: *const c_char) -> *mut c_char;
865 866 867 868 869 870 871 872 873
    pub fn gst_missing_uri_source_message_new(
        element: *mut gst::GstElement,
        protocol: *const c_char,
    ) -> *mut gst::GstMessage;
    pub fn gst_pb_utils_add_codec_description_to_tag_list(
        taglist: *mut gst::GstTagList,
        codec_tag: *const c_char,
        caps: *const gst::GstCaps,
    ) -> gboolean;
874 875 876 877 878 879 880
    pub fn gst_pb_utils_get_codec_description(caps: *const gst::GstCaps) -> *mut c_char;
    pub fn gst_pb_utils_get_decoder_description(caps: *const gst::GstCaps) -> *mut c_char;
    pub fn gst_pb_utils_get_element_description(factory_name: *const c_char) -> *mut c_char;
    pub fn gst_pb_utils_get_encoder_description(caps: *const gst::GstCaps) -> *mut c_char;
    pub fn gst_pb_utils_get_sink_description(protocol: *const c_char) -> *mut c_char;
    pub fn gst_pb_utils_get_source_description(protocol: *const c_char) -> *mut c_char;
    pub fn gst_pb_utils_init();
881 882 883 884 885 886
    pub fn gst_plugins_base_version(
        major: *mut c_uint,
        minor: *mut c_uint,
        micro: *mut c_uint,
        nano: *mut c_uint,
    );
887 888 889
    pub fn gst_plugins_base_version_string() -> *mut c_char;

}