// This file was generated by gir (https://github.com/gtk-rs/gir) // from gir-files (https://github.com/gtk-rs/gir-files) // from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git) // DO NOT EDIT #![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))] #[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, size_t, ssize_t, uintptr_t, FILE, }; #[allow(unused_imports)] use glib::{gboolean, gconstpointer, gpointer, GType}; // 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 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; // Constants 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"; // Flags 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; // Callbacks pub type GstAudioVisualizerShaderFunc = Option< unsafe extern "C" fn( *mut GstAudioVisualizer, *const gst_video::GstVideoFrame, *mut gst_video::GstVideoFrame, ), >; pub type GstInstallPluginsResultFunc = Option; // Records #[derive(Copy, Clone)] #[repr(C)] pub struct GstAudioVisualizerClass { pub parent_class: gst::GstElementClass, pub setup: Option gboolean>, pub render: Option< unsafe extern "C" fn( *mut GstAudioVisualizer, *mut gst::GstBuffer, *mut gst_video::GstVideoFrame, ) -> gboolean, >, pub decide_allocation: Option 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)] pub struct _GstAudioVisualizerPrivate { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstAudioVisualizerPrivate = *mut _GstAudioVisualizerPrivate; #[derive(Copy, Clone)] #[repr(C)] pub struct GstDiscovererClass { pub parentclass: gobject::GObjectClass, pub finished: Option, pub starting: Option, pub discovered: Option< unsafe extern "C" fn(*mut GstDiscoverer, *mut GstDiscovererInfo, *const glib::GError), >, pub source_setup: Option, pub load_serialize_info: Option *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)] pub struct _GstDiscovererPrivate { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstDiscovererPrivate = *mut _GstDiscovererPrivate; #[repr(C)] pub struct _GstEncodingAudioProfileClass { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstEncodingAudioProfileClass = *mut _GstEncodingAudioProfileClass; #[repr(C)] pub struct _GstEncodingContainerProfileClass { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstEncodingContainerProfileClass = *mut _GstEncodingContainerProfileClass; #[repr(C)] pub struct _GstEncodingProfileClass { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstEncodingProfileClass = *mut _GstEncodingProfileClass; #[repr(C)] pub struct _GstEncodingVideoProfileClass { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstEncodingVideoProfileClass = *mut _GstEncodingVideoProfileClass; #[repr(C)] 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() } } // Classes #[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)] 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)] 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)] 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)] 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)] 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)] 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)] 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)] 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)] 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)] 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)] 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" { //========================================================================= // GstAudioVisualizerShader //========================================================================= pub fn gst_audio_visualizer_shader_get_type() -> GType; //========================================================================= // GstDiscovererResult //========================================================================= pub fn gst_discoverer_result_get_type() -> GType; //========================================================================= // GstInstallPluginsReturn //========================================================================= pub fn gst_install_plugins_return_get_type() -> GType; pub fn gst_install_plugins_return_get_name(ret: GstInstallPluginsReturn) -> *const c_char; //========================================================================= // GstDiscovererSerializeFlags //========================================================================= pub fn gst_discoverer_serialize_flags_get_type() -> GType; //========================================================================= // GstPbUtilsCapsDescriptionFlags //========================================================================= #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_pb_utils_caps_description_flags_get_type() -> GType; //========================================================================= // GstInstallPluginsContext //========================================================================= 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); //========================================================================= // GstAudioVisualizer //========================================================================= pub fn gst_audio_visualizer_get_type() -> GType; //========================================================================= // GstDiscoverer //========================================================================= 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); //========================================================================= // GstDiscovererAudioInfo //========================================================================= 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; //========================================================================= // GstDiscovererContainerInfo //========================================================================= 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; //========================================================================= // GstDiscovererInfo //========================================================================= 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; //========================================================================= // GstDiscovererStreamInfo //========================================================================= 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; //========================================================================= // GstDiscovererSubtitleInfo //========================================================================= pub fn gst_discoverer_subtitle_info_get_type() -> GType; pub fn gst_discoverer_subtitle_info_get_language( info: *const GstDiscovererSubtitleInfo, ) -> *const c_char; //========================================================================= // 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; 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; //========================================================================= // GstEncodingAudioProfile //========================================================================= 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; //========================================================================= // GstEncodingContainerProfile //========================================================================= 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; //========================================================================= // GstEncodingProfile //========================================================================= 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; 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, ); //========================================================================= // GstEncodingTarget //========================================================================= 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; //========================================================================= // GstEncodingVideoProfile //========================================================================= 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, ); //========================================================================= // Other functions //========================================================================= 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_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; 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; }