#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
#![allow(
clippy::approx_constant,
clippy::type_complexity,
clippy::unreadable_literal,
clippy::upper_case_acronyms
)]
#![cfg_attr(docsrs, feature(doc_cfg))]
use glib_sys as glib;
use gobject_sys as gobject;
use gstreamer_audio_sys as gst_audio;
use gstreamer_sys as gst;
use gstreamer_video_sys as gst_video;
#[allow(unused_imports)]
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, off_t, size_t, ssize_t, time_t, uintptr_t, FILE,
};
#[cfg(unix)]
#[allow(unused_imports)]
use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
#[allow(unused_imports)]
use glib::{gboolean, gconstpointer, gpointer, GType};
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;
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;
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;
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;
pub const GST_ENCODING_CATEGORY_CAPTURE: &[u8] = b"capture\0";
pub const GST_ENCODING_CATEGORY_DEVICE: &[u8] = b"device\0";
pub const GST_ENCODING_CATEGORY_FILE_EXTENSION: &[u8] = b"file-extension\0";
pub const GST_ENCODING_CATEGORY_ONLINE_SERVICE: &[u8] = b"online-service\0";
pub const GST_ENCODING_CATEGORY_STORAGE_EDITING: &[u8] = b"storage-editing\0";
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;
pub type GstPbUtilsCapsDescriptionFlags = c_uint;
pub const GST_PBUTILS_CAPS_DESCRIPTION_FLAG_CONTAINER: GstPbUtilsCapsDescriptionFlags = 1;
pub const GST_PBUTILS_CAPS_DESCRIPTION_FLAG_AUDIO: GstPbUtilsCapsDescriptionFlags = 2;
pub const GST_PBUTILS_CAPS_DESCRIPTION_FLAG_VIDEO: GstPbUtilsCapsDescriptionFlags = 4;
pub const GST_PBUTILS_CAPS_DESCRIPTION_FLAG_IMAGE: GstPbUtilsCapsDescriptionFlags = 8;
pub const GST_PBUTILS_CAPS_DESCRIPTION_FLAG_SUBTITLE: GstPbUtilsCapsDescriptionFlags = 16;
pub const GST_PBUTILS_CAPS_DESCRIPTION_FLAG_TAG: GstPbUtilsCapsDescriptionFlags = 32;
pub const GST_PBUTILS_CAPS_DESCRIPTION_FLAG_GENERIC: GstPbUtilsCapsDescriptionFlags = 64;
#[cfg(feature = "v1_22")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
pub const GST_PBUTILS_CAPS_DESCRIPTION_FLAG_METADATA: GstPbUtilsCapsDescriptionFlags = 128;
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)>;
#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstAudioVisualizerClass {
pub parent_class: gst::GstElementClass,
pub setup: Option<unsafe extern "C" fn(*mut GstAudioVisualizer) -> gboolean>,
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>,
}
impl ::std::fmt::Debug for GstAudioVisualizerClass {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstAudioVisualizerClass @ {self:p}"))
.field("setup", &self.setup)
.field("render", &self.render)
.field("decide_allocation", &self.decide_allocation)
.finish()
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct _GstAudioVisualizerPrivate {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
pub type GstAudioVisualizerPrivate = _GstAudioVisualizerPrivate;
#[derive(Copy, Clone)]
#[repr(C)]
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)>,
pub discovered: Option<
unsafe extern "C" fn(*mut GstDiscoverer, *mut GstDiscovererInfo, *const glib::GError),
>,
pub source_setup: Option<unsafe extern "C" fn(*mut GstDiscoverer, *mut gst::GstElement)>,
pub load_serialize_info:
Option<unsafe extern "C" fn(*mut GstDiscoverer, *mut c_char) -> *mut GstDiscovererInfo>,
pub _reserved: [gpointer; 3],
}
impl ::std::fmt::Debug for GstDiscovererClass {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstDiscovererClass @ {self:p}"))
.field("parentclass", &self.parentclass)
.field("finished", &self.finished)
.field("starting", &self.starting)
.field("discovered", &self.discovered)
.field("source_setup", &self.source_setup)
.field("load_serialize_info", &self.load_serialize_info)
.field("_reserved", &self._reserved)
.finish()
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct _GstDiscovererPrivate {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
pub type GstDiscovererPrivate = _GstDiscovererPrivate;
#[repr(C)]
#[allow(dead_code)]
pub struct _GstEncodingAudioProfileClass {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
pub type GstEncodingAudioProfileClass = _GstEncodingAudioProfileClass;
#[repr(C)]
#[allow(dead_code)]
pub struct _GstEncodingContainerProfileClass {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
pub type GstEncodingContainerProfileClass = _GstEncodingContainerProfileClass;
#[repr(C)]
#[allow(dead_code)]
pub struct _GstEncodingProfileClass {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
pub type GstEncodingProfileClass = _GstEncodingProfileClass;
#[repr(C)]
#[allow(dead_code)]
pub struct _GstEncodingVideoProfileClass {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
pub type GstEncodingVideoProfileClass = _GstEncodingVideoProfileClass;
#[repr(C)]
#[allow(dead_code)]
pub struct GstInstallPluginsContext {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
impl ::std::fmt::Debug for GstInstallPluginsContext {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstInstallPluginsContext @ {self:p}"))
.finish()
}
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstAudioVisualizer {
pub parent: gst::GstElement,
pub req_spf: c_uint,
pub vinfo: gst_video::GstVideoInfo,
pub ainfo: gst_audio::GstAudioInfo,
pub priv_: *mut GstAudioVisualizerPrivate,
}
impl ::std::fmt::Debug for GstAudioVisualizer {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstAudioVisualizer @ {self:p}"))
.field("parent", &self.parent)
.field("req_spf", &self.req_spf)
.field("vinfo", &self.vinfo)
.field("ainfo", &self.ainfo)
.finish()
}
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstDiscoverer {
pub parent: gobject::GObject,
pub priv_: *mut GstDiscovererPrivate,
pub _reserved: [gpointer; 4],
}
impl ::std::fmt::Debug for GstDiscoverer {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstDiscoverer @ {self:p}"))
.field("parent", &self.parent)
.finish()
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstDiscovererAudioInfo {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
impl ::std::fmt::Debug for GstDiscovererAudioInfo {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstDiscovererAudioInfo @ {self:p}"))
.finish()
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstDiscovererContainerInfo {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
impl ::std::fmt::Debug for GstDiscovererContainerInfo {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstDiscovererContainerInfo @ {self:p}"))
.finish()
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstDiscovererInfo {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
impl ::std::fmt::Debug for GstDiscovererInfo {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstDiscovererInfo @ {self:p}"))
.finish()
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstDiscovererStreamInfo {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
impl ::std::fmt::Debug for GstDiscovererStreamInfo {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstDiscovererStreamInfo @ {self:p}"))
.finish()
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstDiscovererSubtitleInfo {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
impl ::std::fmt::Debug for GstDiscovererSubtitleInfo {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstDiscovererSubtitleInfo @ {self:p}"))
.finish()
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstDiscovererVideoInfo {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
impl ::std::fmt::Debug for GstDiscovererVideoInfo {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstDiscovererVideoInfo @ {self:p}"))
.finish()
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstEncodingAudioProfile {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
impl ::std::fmt::Debug for GstEncodingAudioProfile {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstEncodingAudioProfile @ {self:p}"))
.finish()
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstEncodingContainerProfile {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
impl ::std::fmt::Debug for GstEncodingContainerProfile {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstEncodingContainerProfile @ {self:p}"))
.finish()
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstEncodingProfile {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
impl ::std::fmt::Debug for GstEncodingProfile {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstEncodingProfile @ {self:p}"))
.finish()
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstEncodingTarget {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
impl ::std::fmt::Debug for GstEncodingTarget {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstEncodingTarget @ {self:p}"))
.finish()
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstEncodingVideoProfile {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
impl ::std::fmt::Debug for GstEncodingVideoProfile {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstEncodingVideoProfile @ {self:p}"))
.finish()
}
}
#[link(name = "gstpbutils-1.0")]
extern "C" {
pub fn gst_audio_visualizer_shader_get_type() -> GType;
pub fn gst_discoverer_result_get_type() -> GType;
pub fn gst_install_plugins_return_get_type() -> GType;
pub fn gst_install_plugins_return_get_name(ret: GstInstallPluginsReturn) -> *const c_char;
pub fn gst_discoverer_serialize_flags_get_type() -> GType;
#[cfg(feature = "v1_20")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
pub fn gst_pb_utils_caps_description_flags_get_type() -> GType;
pub fn gst_install_plugins_context_get_type() -> GType;
pub fn gst_install_plugins_context_new() -> *mut GstInstallPluginsContext;
pub fn gst_install_plugins_context_copy(
ctx: *mut GstInstallPluginsContext,
) -> *mut GstInstallPluginsContext;
pub fn gst_install_plugins_context_free(ctx: *mut GstInstallPluginsContext);
pub fn gst_install_plugins_context_set_confirm_search(
ctx: *mut GstInstallPluginsContext,
confirm_search: gboolean,
);
pub fn gst_install_plugins_context_set_desktop_id(
ctx: *mut GstInstallPluginsContext,
desktop_id: *const c_char,
);
pub fn gst_install_plugins_context_set_startup_notification_id(
ctx: *mut GstInstallPluginsContext,
startup_id: *const c_char,
);
pub fn gst_install_plugins_context_set_xid(ctx: *mut GstInstallPluginsContext, xid: c_uint);
pub fn gst_audio_visualizer_get_type() -> GType;
pub fn gst_discoverer_get_type() -> GType;
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;
pub fn gst_discoverer_start(discoverer: *mut GstDiscoverer);
pub fn gst_discoverer_stop(discoverer: *mut GstDiscoverer);
pub fn gst_discoverer_audio_info_get_type() -> GType;
pub fn gst_discoverer_audio_info_get_bitrate(info: *const GstDiscovererAudioInfo) -> c_uint;
pub fn gst_discoverer_audio_info_get_channel_mask(info: *const GstDiscovererAudioInfo) -> u64;
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;
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;
pub fn gst_discoverer_container_info_get_type() -> GType;
pub fn gst_discoverer_container_info_get_streams(
info: *mut GstDiscovererContainerInfo,
) -> *mut glib::GList;
#[cfg(feature = "v1_20")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
pub fn gst_discoverer_container_info_get_tags(
info: *const GstDiscovererContainerInfo,
) -> *const gst::GstTagList;
pub fn gst_discoverer_info_get_type() -> GType;
pub fn gst_discoverer_info_from_variant(variant: *mut glib::GVariant)
-> *mut GstDiscovererInfo;
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;
pub fn gst_discoverer_info_get_container_streams(
info: *mut GstDiscovererInfo,
) -> *mut glib::GList;
pub fn gst_discoverer_info_get_duration(info: *const GstDiscovererInfo) -> gst::GstClockTime;
pub fn gst_discoverer_info_get_live(info: *const GstDiscovererInfo) -> gboolean;
pub fn gst_discoverer_info_get_misc(info: *const GstDiscovererInfo)
-> *const gst::GstStructure;
pub fn gst_discoverer_info_get_missing_elements_installer_details(
info: *const GstDiscovererInfo,
) -> *mut *const c_char;
pub fn gst_discoverer_info_get_result(info: *const GstDiscovererInfo) -> GstDiscovererResult;
pub fn gst_discoverer_info_get_seekable(info: *const GstDiscovererInfo) -> gboolean;
pub fn gst_discoverer_info_get_stream_info(
info: *mut GstDiscovererInfo,
) -> *mut GstDiscovererStreamInfo;
pub fn gst_discoverer_info_get_stream_list(info: *mut GstDiscovererInfo) -> *mut glib::GList;
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;
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;
pub fn gst_discoverer_info_to_variant(
info: *mut GstDiscovererInfo,
flags: GstDiscovererSerializeFlags,
) -> *mut glib::GVariant;
pub fn gst_discoverer_stream_info_get_type() -> GType;
pub fn gst_discoverer_stream_info_list_free(infos: *mut glib::GList);
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;
#[cfg(feature = "v1_20")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
pub fn gst_discoverer_stream_info_get_stream_number(
info: *mut GstDiscovererStreamInfo,
) -> c_int;
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;
pub fn gst_discoverer_subtitle_info_get_type() -> GType;
pub fn gst_discoverer_subtitle_info_get_language(
info: *const GstDiscovererSubtitleInfo,
) -> *const c_char;
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;
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;
pub fn gst_discoverer_video_info_get_height(info: *const GstDiscovererVideoInfo) -> c_uint;
pub fn gst_discoverer_video_info_get_max_bitrate(info: *const GstDiscovererVideoInfo)
-> c_uint;
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;
pub fn gst_discoverer_video_info_is_interlaced(info: *const GstDiscovererVideoInfo)
-> gboolean;
pub fn gst_encoding_audio_profile_get_type() -> GType;
pub fn gst_encoding_audio_profile_new(
format: *mut gst::GstCaps,
preset: *const c_char,
restriction: *mut gst::GstCaps,
presence: c_uint,
) -> *mut GstEncodingAudioProfile;
pub fn gst_encoding_container_profile_get_type() -> GType;
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;
pub fn gst_encoding_profile_get_type() -> GType;
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;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_encoding_profile_from_string(string: *const c_char) -> *mut GstEncodingProfile;
pub fn gst_encoding_profile_copy(self_: *mut GstEncodingProfile) -> *mut GstEncodingProfile;
pub fn gst_encoding_profile_get_allow_dynamic_output(
profile: *mut GstEncodingProfile,
) -> gboolean;
pub fn gst_encoding_profile_get_description(profile: *mut GstEncodingProfile) -> *const c_char;
#[cfg(feature = "v1_20")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
pub fn gst_encoding_profile_get_element_properties(
self_: *mut GstEncodingProfile,
) -> *mut gst::GstStructure;
pub fn gst_encoding_profile_get_file_extension(
profile: *mut GstEncodingProfile,
) -> *const c_char;
pub fn gst_encoding_profile_get_format(profile: *mut GstEncodingProfile) -> *mut gst::GstCaps;
pub fn gst_encoding_profile_get_input_caps(
profile: *mut GstEncodingProfile,
) -> *mut gst::GstCaps;
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;
pub fn gst_encoding_profile_get_restriction(
profile: *mut GstEncodingProfile,
) -> *mut gst::GstCaps;
#[cfg(feature = "v1_18")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
pub fn gst_encoding_profile_get_single_segment(profile: *mut GstEncodingProfile) -> gboolean;
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;
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,
);
#[cfg(feature = "v1_20")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
pub fn gst_encoding_profile_set_element_properties(
self_: *mut GstEncodingProfile,
element_properties: *mut gst::GstStructure,
);
pub fn gst_encoding_profile_set_enabled(profile: *mut GstEncodingProfile, enabled: gboolean);
pub fn gst_encoding_profile_set_format(
profile: *mut GstEncodingProfile,
format: *mut gst::GstCaps,
);
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);
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,
);
#[cfg(feature = "v1_18")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
pub fn gst_encoding_profile_set_single_segment(
profile: *mut GstEncodingProfile,
single_segment: gboolean,
);
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_encoding_profile_to_string(profile: *mut GstEncodingProfile) -> *mut c_char;
pub fn gst_encoding_target_get_type() -> GType;
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;
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;
#[cfg(feature = "v1_18")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
pub fn gst_encoding_target_get_path(target: *mut GstEncodingTarget) -> *const c_char;
pub fn gst_encoding_target_get_profile(
target: *mut GstEncodingTarget,
name: *const c_char,
) -> *mut GstEncodingProfile;
pub fn gst_encoding_target_get_profiles(target: *mut GstEncodingTarget) -> *const glib::GList;
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;
pub fn gst_encoding_video_profile_get_type() -> GType;
pub fn gst_encoding_video_profile_new(
format: *mut gst::GstCaps,
preset: *const c_char,
restriction: *mut gst::GstCaps,
presence: c_uint,
) -> *mut GstEncodingVideoProfile;
pub fn gst_encoding_video_profile_get_pass(prof: *mut GstEncodingVideoProfile) -> c_uint;
pub fn gst_encoding_video_profile_get_variableframerate(
prof: *mut GstEncodingVideoProfile,
) -> gboolean;
pub fn gst_encoding_video_profile_set_pass(prof: *mut GstEncodingVideoProfile, pass: c_uint);
pub fn gst_encoding_video_profile_set_variableframerate(
prof: *mut GstEncodingVideoProfile,
variableframerate: gboolean,
);
pub fn gst_codec_utils_aac_caps_set_level_and_profile(
caps: *mut gst::GstCaps,
audio_config: *const u8,
len: c_uint,
) -> gboolean;
pub fn gst_codec_utils_aac_get_channels(audio_config: *const u8, len: c_uint) -> c_uint;
pub fn gst_codec_utils_aac_get_index_from_sample_rate(rate: c_uint) -> c_int;
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;
pub fn gst_codec_utils_aac_get_sample_rate(audio_config: *const u8, len: c_uint) -> c_uint;
pub fn gst_codec_utils_aac_get_sample_rate_from_index(sr_idx: c_uint) -> c_uint;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_codec_utils_av1_get_level(seq_level_idx: u8) -> *const c_char;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_codec_utils_av1_get_seq_level_idx(level: *const c_char) -> u8;
#[cfg(feature = "v1_22")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
pub fn gst_codec_utils_caps_from_mime_codec(codecs_field: *const c_char) -> *mut gst::GstCaps;
#[cfg(feature = "v1_20")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
pub fn gst_codec_utils_caps_get_mime_codec(caps: *mut gst::GstCaps) -> *mut c_char;
pub fn gst_codec_utils_h264_caps_set_level_and_profile(
caps: *mut gst::GstCaps,
sps: *const u8,
len: c_uint,
) -> gboolean;
pub fn gst_codec_utils_h264_get_level(sps: *const u8, len: c_uint) -> *const c_char;
pub fn gst_codec_utils_h264_get_level_idc(level: *const c_char) -> u8;
pub fn gst_codec_utils_h264_get_profile(sps: *const u8, len: c_uint) -> *const c_char;
#[cfg(feature = "v1_20")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
pub fn gst_codec_utils_h264_get_profile_flags_level(
codec_data: *const u8,
len: c_uint,
profile: *mut u8,
flags: *mut u8,
level: *mut u8,
) -> gboolean;
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;
pub fn gst_codec_utils_h265_get_level(
profile_tier_level: *const u8,
len: c_uint,
) -> *const c_char;
pub fn gst_codec_utils_h265_get_level_idc(level: *const c_char) -> u8;
pub fn gst_codec_utils_h265_get_profile(
profile_tier_level: *const u8,
len: c_uint,
) -> *const c_char;
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;
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;
pub fn gst_codec_utils_opus_create_caps_from_header(
header: *mut gst::GstBuffer,
comments: *mut gst::GstBuffer,
) -> *mut gst::GstCaps;
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;
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;
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;
pub fn gst_encoding_list_all_targets(categoryname: *const c_char) -> *mut glib::GList;
pub fn gst_encoding_list_available_categories() -> *mut glib::GList;
pub fn gst_install_plugins_async(
details: *const *const c_char,
ctx: *mut GstInstallPluginsContext,
func: GstInstallPluginsResultFunc,
user_data: gpointer,
) -> GstInstallPluginsReturn;
pub fn gst_install_plugins_installation_in_progress() -> gboolean;
pub fn gst_install_plugins_supported() -> gboolean;
pub fn gst_install_plugins_sync(
details: *const *const c_char,
ctx: *mut GstInstallPluginsContext,
) -> GstInstallPluginsReturn;
pub fn gst_is_missing_plugin_message(msg: *mut gst::GstMessage) -> gboolean;
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;
pub fn gst_missing_element_installer_detail_new(factory_name: *const c_char) -> *mut c_char;
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;
pub fn gst_missing_plugin_message_get_description(msg: *mut gst::GstMessage) -> *mut c_char;
pub fn gst_missing_plugin_message_get_installer_detail(
msg: *mut gst::GstMessage,
) -> *mut c_char;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_missing_plugin_message_get_stream_id(msg: *mut gst::GstMessage) -> *const c_char;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_missing_plugin_message_set_stream_id(
msg: *mut gst::GstMessage,
stream_id: *const c_char,
);
pub fn gst_missing_uri_sink_installer_detail_new(protocol: *const c_char) -> *mut c_char;
pub fn gst_missing_uri_sink_message_new(
element: *mut gst::GstElement,
protocol: *const c_char,
) -> *mut gst::GstMessage;
pub fn gst_missing_uri_source_installer_detail_new(protocol: *const c_char) -> *mut c_char;
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;
#[cfg(feature = "v1_20")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
pub fn gst_pb_utils_get_caps_description_flags(
caps: *const gst::GstCaps,
) -> GstPbUtilsCapsDescriptionFlags;
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;
#[cfg(feature = "v1_20")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
pub fn gst_pb_utils_get_file_extension_from_caps(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();
pub fn gst_plugins_base_version(
major: *mut c_uint,
minor: *mut c_uint,
micro: *mut c_uint,
nano: *mut c_uint,
);
pub fn gst_plugins_base_version_string() -> *mut c_char;
}