Struct gstreamer_play::Play

source ·
pub struct Play { /* private fields */ }
Expand description

The goal of the GstPlay library is to ease the integration of multimedia playback features in applications. Thus, if you need to build a media player from the ground-up, GstPlay provides the features you will most likely need.

An example player is available in gst-examples/playback/player/gst-play/.

Internally the GstPlay makes use of the playbin3 element. The legacy playbin2 can be selected if the GST_PLAY_USE_PLAYBIN3=0 environment variable has been set.

Important note: If your application relies on the GstBus to get notifications from GstPlay, you need to add some explicit clean-up code in order to prevent the GstPlay object from leaking. See below for the details. If you use the GstPlaySignalAdapter, no special clean-up is required.

When the GstPlaySignalAdapter is not used, the GstBus owned by GstPlay should be set to flushing state before any attempt to drop the last reference of the GstPlay object. An example in C:

⚠️ The following code is in c ⚠️

...
GstBus *bus = gst_play_get_message_bus (player);
gst_bus_set_flushing (bus, TRUE);
gst_object_unref (bus);
gst_object_unref (player);

The messages managed by the player contain a reference to itself, and if the bus watch is just removed together with dropping the player then the bus will simply keep them around forever (and the bus never goes away because the player has a strong reference to it, so there’s a reference cycle as long as there are messages). Setting the bus to flushing state forces it to get rid of its queued messages, thus breaking any possible reference cycle.

§Properties

§audio-video-offset

Readable | Writeable

§current-audio-track

Readable

§current-subtitle-track

Readable

§current-video-track

Readable

§duration

Readable

§media-info

Readable

§mute

Readable | Writeable

§pipeline

Readable

§position

Readable

§rate

Readable | Writeable

§subtitle-video-offset

Readable | Writeable

§suburi

Readable | Writeable

§uri

Readable | Writeable

§video-multiview-flags

Readable | Writeable

§video-multiview-mode

Readable | Writeable

§video-renderer

Readable | Writeable

§volume

Readable | Writeable

Object

§name

Readable | Writeable | Construct

§parent

The parent of the object. Please note, that when changing the ‘parent’ property, we don’t emit [notify][struct@crate::glib::Object#notify] and deep-notify signals due to locking issues. In some cases one can use GstBin::element-added or GstBin::element-removed signals on the parent to achieve a similar effect.

Readable | Writeable

§Implements

gst::prelude::ObjectExt, [trait@glib::ObjectExt]

GLib type: GObject with reference counted clone semantics.

Implementations§

source§

impl Play

source

pub fn new(video_renderer: Option<impl IsA<PlayVideoRenderer>>) -> Play

Creates a new Play instance.

Video is going to be rendered by video_renderer, or if None is provided no special video set up will be done and some default handling will be performed.

This also initializes GStreamer via gst_init() on the first call if this didn’t happen before.

§video_renderer

GstPlayVideoRenderer to use

§Returns

a new Play instance

source

pub fn audio_video_offset(&self) -> i64

Retrieve the current value of audio-video-offset property

§Returns

The current value of audio-video-offset in nanoseconds

source

pub fn color_balance(&self, type_: PlayColorBalanceType) -> f64

Retrieve the current value of the indicated type_.

§type_

PlayColorBalanceType

§Returns

The current value of type_, between [0,1]. In case of error -1 is returned.

source

pub fn current_audio_track(&self) -> Option<PlayAudioInfo>

A Function to get current audio PlayAudioInfo instance.

§Returns

current audio track.

The caller should free it with g_object_unref()

source

pub fn current_subtitle_track(&self) -> Option<PlaySubtitleInfo>

A Function to get current subtitle PlaySubtitleInfo instance.

§Returns

current subtitle track.

The caller should free it with g_object_unref()

source

pub fn current_video_track(&self) -> Option<PlayVideoInfo>

A Function to get current video PlayVideoInfo instance.

§Returns

current video track.

The caller should free it with g_object_unref()

source

pub fn current_visualization(&self) -> Option<GString>

§Returns

Name of the currently enabled visualization. g_free() after usage.

source

pub fn duration(&self) -> Option<ClockTime>

Retrieves the duration of the media stream that self represents.

§Returns

the duration of the currently-playing media stream, in nanoseconds.

source

pub fn media_info(&self) -> Option<PlayMediaInfo>

A Function to get the current media info PlayMediaInfo instance.

§Returns

media info instance.

The caller should free it with g_object_unref()

source

pub fn message_bus(&self) -> Bus

GstPlay API exposes a gst::Bus instance which purpose is to provide data structures representing play-internal events in form of gst::Messages of type GST_MESSAGE_APPLICATION.

Each message carries a “play-message” field of type PlayMessage. Further fields of the message data are specific to each possible value of that enumeration.

Applications can consume the messages asynchronously within their own event-loop / UI-thread etc. Note that in case the application does not consume the messages, the bus will accumulate these internally and eventually fill memory. To avoid that, the bus has to be set “flushing”.

§Returns

The play message bus instance

source

pub fn multiview_flags(&self) -> VideoMultiviewFlags

Retrieve the current value of the indicated type_.

§Returns

The current value of type_, Default: 0x00000000 “none

source

pub fn multiview_mode(&self) -> VideoMultiviewFramePacking

Retrieve the current value of the indicated type_.

§Returns

The current value of type_, Default: -1 “none”

source

pub fn is_muted(&self) -> bool

§Returns

true if the currently-playing stream is muted.

source

pub fn pipeline(&self) -> Element

§Returns

The internal playbin instance.

The caller should free it with g_object_unref()

source

pub fn position(&self) -> Option<ClockTime>

§Returns

the absolute position time, in nanoseconds, of the currently-playing stream.

source

pub fn rate(&self) -> f64

§Returns

current playback rate

source

pub fn subtitle_uri(&self) -> Option<GString>

Current subtitle URI

§Returns

URI of the current external subtitle. g_free() after usage.

source

pub fn subtitle_video_offset(&self) -> i64

Retrieve the current value of subtitle-video-offset property

§Returns

The current value of subtitle-video-offset in nanoseconds

source

pub fn uri(&self) -> Option<GString>

Gets the URI of the currently-playing stream.

§Returns

a string containing the URI of the currently-playing stream. g_free() after usage.

source

pub fn volume(&self) -> f64

Returns the current volume level, as a percentage between 0 and 1.

§Returns

the volume as percentage between 0 and 1.

source

pub fn has_color_balance(&self) -> bool

Checks whether the self has color balance support available.

§Returns

true if self has color balance support. Otherwise, false.

source

pub fn pause(&self)

Pauses the current stream.

source

pub fn play(&self)

Request to play the loaded stream.

source

pub fn seek(&self, position: ClockTime)

Seeks the currently-playing stream to the absolute position time in nanoseconds.

§position

position to seek in nanoseconds

source

pub fn set_audio_track(&self, stream_index: i32) -> Result<(), BoolError>

§stream_index

stream index

§Returns

true or false

Sets the audio track stream_index.

source

pub fn set_audio_track_enabled(&self, enabled: bool)

Enable or disable the current audio track.

§enabled

TRUE or FALSE

source

pub fn set_audio_video_offset(&self, offset: i64)

Sets audio-video-offset property by value of offset

§offset

gint64 in nanoseconds

source

pub fn set_color_balance(&self, type_: PlayColorBalanceType, value: f64)

Sets the current value of the indicated channel type_ to the passed value.

§type_

PlayColorBalanceType

§value

The new value for the type_, ranged [0,1]

source

pub fn set_multiview_flags(&self, flags: VideoMultiviewFlags)

Sets the current value of the indicated mode type_ to the passed value.

§flags

The new value for the type_

source

pub fn set_multiview_mode(&self, mode: VideoMultiviewFramePacking)

Sets the current value of the indicated mode type_ to the passed value.

§mode

The new value for the type_

source

pub fn set_mute(&self, val: bool)

true if the currently-playing stream should be muted.

§val

Mute state the should be set

source

pub fn set_rate(&self, rate: f64)

Playback at specified rate

§rate

playback rate

source

pub fn set_subtitle_track(&self, stream_index: i32) -> Result<(), BoolError>

§stream_index

stream index

§Returns

true or false

Sets the subtitle stack stream_index.

source

pub fn set_subtitle_track_enabled(&self, enabled: bool)

Enable or disable the current subtitle track.

§enabled

TRUE or FALSE

source

pub fn set_subtitle_uri(&self, uri: Option<&str>)

Sets the external subtitle URI. This should be combined with a call to gst_play_set_subtitle_track_enabled(self, TRUE) so the subtitles are actually rendered.

§uri

subtitle URI

source

pub fn set_subtitle_video_offset(&self, offset: i64)

Sets subtitle-video-offset property by value of offset

§offset

gint64 in nanoseconds

source

pub fn set_uri(&self, uri: Option<&str>)

Sets the next URI to play.

§uri

next URI to play.

source

pub fn set_video_track(&self, stream_index: i32) -> Result<(), BoolError>

§stream_index

stream index

§Returns

true or false

Sets the video track stream_index.

source

pub fn set_video_track_enabled(&self, enabled: bool)

Enable or disable the current video track.

§enabled

TRUE or FALSE

source

pub fn set_visualization(&self, name: Option<&str>) -> Result<(), BoolError>

§name

visualization element obtained from visualizations_get()

§Returns

true if the visualization was set correctly. Otherwise, false.

source

pub fn set_visualization_enabled(&self, enabled: bool)

Enable or disable the visualization.

§enabled

TRUE or FALSE

source

pub fn set_volume(&self, val: f64)

Sets the volume level of the stream as a percentage between 0 and 1.

§val

the new volume level, as a percentage between 0 and 1

source

pub fn stop(&self)

Stops playing the current stream and resets to the first position in the stream.

source

pub fn suburi(&self) -> Option<GString>

source

pub fn set_suburi(&self, suburi: Option<&str>)

source

pub fn video_multiview_flags(&self) -> VideoMultiviewFlags

source

pub fn set_video_multiview_flags( &self, video_multiview_flags: VideoMultiviewFlags, )

source

pub fn video_multiview_mode(&self) -> VideoMultiviewFramePacking

source

pub fn set_video_multiview_mode( &self, video_multiview_mode: VideoMultiviewFramePacking, )

source

pub fn video_renderer(&self) -> Option<PlayVideoRenderer>

source

pub fn set_video_renderer<P: IsA<PlayVideoRenderer>>( &self, video_renderer: Option<&P>, )

source

pub fn audio_streams(info: &PlayMediaInfo) -> Vec<PlayAudioInfo>

§info

a PlayMediaInfo

§Returns

A GList of matching PlayAudioInfo.

source

pub fn subtitle_streams(info: &PlayMediaInfo) -> Vec<PlaySubtitleInfo>

§info

a PlayMediaInfo

§Returns

A GList of matching PlaySubtitleInfo.

source

pub fn video_streams(info: &PlayMediaInfo) -> Vec<PlayVideoInfo>

§info

a PlayMediaInfo

§Returns

A GList of matching PlayVideoInfo.

source

pub fn is_play_message(msg: &Message) -> bool

§msg

A gst::Message

§Returns

A gboolean indicating whether the passed message represents a Play message or not.

source

pub fn visualizations_get() -> Vec<PlayVisualization>

§Returns

a None terminated array containing all available visualizations. Use gst_play_visualizations_free() after usage.

source

pub fn connect_audio_video_offset_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId

source

pub fn connect_current_audio_track_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId

source

pub fn connect_current_subtitle_track_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId

source

pub fn connect_current_video_track_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId

source

pub fn connect_duration_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId

source

pub fn connect_media_info_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId

source

pub fn connect_mute_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId

source

pub fn connect_pipeline_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId

source

pub fn connect_position_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId

source

pub fn connect_rate_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId

source

pub fn connect_subtitle_video_offset_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId

source

pub fn connect_suburi_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId

source

pub fn connect_uri_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId

source

pub fn connect_video_multiview_flags_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId

source

pub fn connect_video_multiview_mode_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId

source

pub fn connect_video_renderer_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId

source

pub fn connect_volume_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId

source§

impl Play

source

pub fn config(&self) -> PlayConfig

Get a copy of the current configuration of the play. This configuration can either be modified and used for the set_config() call or it must be freed after usage.

§Returns

a copy of the current configuration of self. Use gst_structure_free() after usage or set_config().

source

pub fn set_config(&self, config: PlayConfig) -> Result<(), BoolError>

Set the configuration of the play. If the play is already configured, and the configuration hasn’t changed, this function will return true. If the play is not in the GST_PLAY_STATE_STOPPED, this method will return false and active configuration will remain.

config is a gst::Structure that contains the configuration parameters for the play.

This function takes ownership of config.

§config

a gst::Structure

§Returns

true when the configuration could be set.

source

pub fn video_snapshot( &self, format: PlaySnapshotFormat, config: Option<&StructureRef>, ) -> Option<Sample>

Get a snapshot of the currently selected video stream, if any. The format can be selected with format and optional configuration is possible with config. Currently supported settings are:

  • width, height of type G_TYPE_INT
  • pixel-aspect-ratio of type GST_TYPE_FRACTION Except for GST_PLAY_THUMBNAIL_RAW_NATIVE format, if no config is set, pixel-aspect-ratio would be 1/1
§format

output format of the video snapshot

§config

Additional configuration

§Returns

Current video snapshot sample or None on failure

Trait Implementations§

source§

impl Clone for Play

source§

fn clone(&self) -> Self

Makes a clone of this shared reference.

This increments the strong reference count of the object. Dropping the object will decrement it again.

1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Play

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Play

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl HasParamSpec for Play

§

type ParamSpec = ParamSpecObject

§

type SetValue = Play

Preferred value to be used as setter for the associated ParamSpec.
§

type BuilderFn = fn(_: &str) -> ParamSpecObjectBuilder<'_, Play>

source§

fn param_spec_builder() -> Self::BuilderFn

source§

impl Hash for Play

source§

fn hash<H>(&self, state: &mut H)
where H: Hasher,

Hashes the memory address of this object.

1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for Play

source§

fn cmp(&self, other: &Self) -> Ordering

Comparison for two GObjects.

Compares the memory addresses of the provided objects.

1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl ParentClassIs for Play

source§

impl<OT: ObjectType> PartialEq<OT> for Play

source§

fn eq(&self, other: &OT) -> bool

Equality for two GObjects.

Two GObjects are equal if their memory addresses are equal.

1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<OT: ObjectType> PartialOrd<OT> for Play

source§

fn partial_cmp(&self, other: &OT) -> Option<Ordering>

Partial comparison for two GObjects.

Compares the memory addresses of the provided objects.

1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl StaticType for Play

source§

fn static_type() -> Type

Returns the type identifier of Self.
source§

impl Eq for Play

source§

impl IsA<Object> for Play

source§

impl Send for Play

source§

impl Sync for Play

Auto Trait Implementations§

§

impl Freeze for Play

§

impl RefUnwindSafe for Play

§

impl Unpin for Play

§

impl UnwindSafe for Play

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> Cast for T
where T: ObjectType,

source§

fn upcast<T>(self) -> T
where T: ObjectType, Self: IsA<T>,

Upcasts an object to a superclass or interface T. Read more
source§

fn upcast_ref<T>(&self) -> &T
where T: ObjectType, Self: IsA<T>,

Upcasts an object to a reference of its superclass or interface T. Read more
source§

fn downcast<T>(self) -> Result<T, Self>
where T: ObjectType, Self: MayDowncastTo<T>,

Tries to downcast to a subclass or interface implementor T. Read more
source§

fn downcast_ref<T>(&self) -> Option<&T>
where T: ObjectType, Self: MayDowncastTo<T>,

Tries to downcast to a reference of its subclass or interface implementor T. Read more
source§

fn dynamic_cast<T>(self) -> Result<T, Self>
where T: ObjectType,

Tries to cast to an object of type T. This handles upcasting, downcasting and casting between interface and interface implementors. All checks are performed at runtime, while upcast will do many checks at compile-time already. downcast will perform the same checks at runtime as dynamic_cast, but will also ensure some amount of compile-time safety. Read more
source§

fn dynamic_cast_ref<T>(&self) -> Option<&T>
where T: ObjectType,

Tries to cast to reference to an object of type T. This handles upcasting, downcasting and casting between interface and interface implementors. All checks are performed at runtime, while downcast and upcast will do many checks at compile-time already. Read more
source§

unsafe fn unsafe_cast<T>(self) -> T
where T: ObjectType,

Casts to T unconditionally. Read more
source§

unsafe fn unsafe_cast_ref<T>(&self) -> &T
where T: ObjectType,

Casts to &T unconditionally. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for T

source§

unsafe fn from_glib_none_num_as_vec(ptr: *const GList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec(_: *const GList, _: usize) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(_: *const GList, _: usize) -> Vec<T>

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for T

source§

unsafe fn from_glib_none_num_as_vec(ptr: *const GPtrArray, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec( _: *const GPtrArray, _: usize, ) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(_: *const GPtrArray, _: usize) -> Vec<T>

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for T

source§

unsafe fn from_glib_none_num_as_vec(ptr: *const GSList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec(_: *const GSList, _: usize) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(_: *const GSList, _: usize) -> Vec<T>

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for T

source§

unsafe fn from_glib_none_num_as_vec(ptr: *mut GList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec(ptr: *mut GList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(ptr: *mut GList, num: usize) -> Vec<T>

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for T

source§

unsafe fn from_glib_none_num_as_vec(ptr: *mut GPtrArray, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec( ptr: *mut GPtrArray, num: usize, ) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(ptr: *mut GPtrArray, num: usize) -> Vec<T>

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for T

source§

unsafe fn from_glib_none_num_as_vec(ptr: *mut GSList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec(ptr: *mut GSList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(ptr: *mut GSList, num: usize) -> Vec<T>

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for T

source§

unsafe fn from_glib_none_as_vec(ptr: *const GList) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(_: *const GList) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(_: *const GList) -> Vec<T>

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for T

source§

unsafe fn from_glib_none_as_vec(ptr: *const GPtrArray) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(_: *const GPtrArray) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(_: *const GPtrArray) -> Vec<T>

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for T

source§

unsafe fn from_glib_none_as_vec(ptr: *const GSList) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(_: *const GSList) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(_: *const GSList) -> Vec<T>

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for T

source§

unsafe fn from_glib_none_as_vec(ptr: *mut GList) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(ptr: *mut GList) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(ptr: *mut GList) -> Vec<T>

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for T

source§

unsafe fn from_glib_none_as_vec(ptr: *mut GPtrArray) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(ptr: *mut GPtrArray) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(ptr: *mut GPtrArray) -> Vec<T>

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for T

source§

unsafe fn from_glib_none_as_vec(ptr: *mut GSList) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(ptr: *mut GSList) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(ptr: *mut GSList) -> Vec<T>

source§

impl<O> GObjectExtManualGst for O
where O: IsA<Object>,

source§

fn set_property_from_str(&self, name: &str, value: &str)

source§

impl<O> GstObjectExt for O
where O: IsA<Object>,

source§

fn add_control_binding( &self, binding: &impl IsA<ControlBinding>, ) -> Result<(), BoolError>

Attach the ControlBinding to the object. If there already was a ControlBinding for this property it will be replaced. Read more
source§

fn default_error(&self, error: &Error, debug: Option<&str>)

A default error function that uses g_printerr() to display the error message and the optional debug string.. Read more
source§

fn control_binding(&self, property_name: &str) -> Option<ControlBinding>

Gets the corresponding ControlBinding for the property. This should be unreferenced again after use. Read more
source§

fn control_rate(&self) -> Option<ClockTime>

Obtain the control-rate for this self. Audio processing Element objects will use this rate to sub-divide their processing loop and call sync_values() in between. The length of the processing segment should be up to control-rate nanoseconds. Read more
source§

fn name(&self) -> GString

Returns a copy of the name of self. Caller should g_free() the return value after usage. For a nameless object, this returns None, which you can safely g_free() as well. Read more
source§

fn parent(&self) -> Option<Object>

Returns the parent of self. This function increases the refcount of the parent object so you should gst_object_unref() it after usage. Read more
source§

fn path_string(&self) -> GString

Generates a string describing the path of self in the object hierarchy. Only useful (or used) for debugging. Read more
source§

fn value( &self, property_name: &str, timestamp: impl Into<Option<ClockTime>>, ) -> Option<Value>

Gets the value for the given controlled property at the requested time. Read more
source§

fn has_active_control_bindings(&self) -> bool

Check if the self has active controlled properties. Read more
source§

fn has_ancestor(&self, ancestor: &impl IsA<Object>) -> bool

Check if self has an ancestor ancestor somewhere up in the hierarchy. One can e.g. check if a Element is inside a Pipeline. Read more
source§

fn has_as_ancestor(&self, ancestor: &impl IsA<Object>) -> bool

Check if self has an ancestor ancestor somewhere up in the hierarchy. One can e.g. check if a Element is inside a Pipeline. Read more
source§

fn has_as_parent(&self, parent: &impl IsA<Object>) -> bool

Check if parent is the parent of self. E.g. a Element can check if it owns a given Pad. Read more
source§

fn remove_control_binding(&self, binding: &impl IsA<ControlBinding>) -> bool

Removes the corresponding ControlBinding. If it was the last ref of the binding, it will be disposed. Read more
source§

fn set_control_binding_disabled(&self, property_name: &str, disabled: bool)

This function is used to disable the control bindings on a property for some time, i.e. sync_values() will do nothing for the property. Read more
source§

fn set_control_bindings_disabled(&self, disabled: bool)

This function is used to disable all controlled properties of the self for some time, i.e. sync_values() will do nothing. Read more
source§

fn set_control_rate(&self, control_rate: impl Into<Option<ClockTime>>)

Change the control-rate for this self. Audio processing Element objects will use this rate to sub-divide their processing loop and call sync_values() in between. The length of the processing segment should be up to control-rate nanoseconds. Read more
source§

fn set_parent(&self, parent: &impl IsA<Object>) -> Result<(), BoolError>

Sets the parent of self to parent. The object’s reference count will be incremented, and any floating reference will be removed (see gst_object_ref_sink()). Read more
source§

fn suggest_next_sync(&self) -> Option<ClockTime>

Returns a suggestion for timestamps where buffers should be split to get best controller results. Read more
source§

fn sync_values(&self, timestamp: ClockTime) -> Result<(), BoolError>

Sets the properties of the object, according to the GstControlSources that (maybe) handle them and for the given timestamp. Read more
source§

fn unparent(&self)

Clear the parent of self, removing the associated reference. This function decreases the refcount of self. Read more
source§

fn connect_parent_notify<F>(&self, f: F) -> SignalHandlerId
where F: Fn(&Self) + Send + Sync + 'static,

source§

impl<O> GstObjectExtManual for O
where O: IsA<Object>,

source§

fn connect_deep_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId
where F: Fn(&Self, &Object, &ParamSpec) + Send + Sync + 'static,

source§

fn set_object_flags(&self, flags: ObjectFlags)

source§

fn unset_object_flags(&self, flags: ObjectFlags)

source§

fn object_flags(&self) -> ObjectFlags

source§

fn g_value_array( &self, property_name: &str, timestamp: ClockTime, interval: ClockTime, values: &mut [Value], ) -> Result<(), BoolError>

source§

fn object_lock(&self) -> ObjectLockGuard<'_, Self>

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoClosureReturnValue for T
where T: Into<Value>,

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

impl<U> IsSubclassableExt for U

source§

impl<T> ObjectExt for T
where T: ObjectType,

source§

fn is<U>(&self) -> bool
where U: StaticType,

Returns true if the object is an instance of (can be cast to) T.
source§

fn type_(&self) -> Type

Returns the type of the object.
source§

fn object_class(&self) -> &Class<Object>

Returns the ObjectClass of the object. Read more
source§

fn class(&self) -> &Class<T>
where T: IsClass,

Returns the class of the object.
source§

fn class_of<U>(&self) -> Option<&Class<U>>
where U: IsClass,

Returns the class of the object in the given type T. Read more
source§

fn interface<U>(&self) -> Option<InterfaceRef<'_, U>>
where U: IsInterface,

Returns the interface T of the object. Read more
source§

fn set_property(&self, property_name: &str, value: impl Into<Value>)

Sets the property property_name of the object to value value. Read more
source§

fn set_property_from_value(&self, property_name: &str, value: &Value)

Sets the property property_name of the object to value value. Read more
source§

fn set_properties(&self, property_values: &[(&str, &dyn ToValue)])

Sets multiple properties of the object at once. Read more
source§

fn set_properties_from_value(&self, property_values: &[(&str, Value)])

Sets multiple properties of the object at once. Read more
source§

fn property<V>(&self, property_name: &str) -> V
where V: for<'b> FromValue<'b> + 'static,

Gets the property property_name of the object and cast it to the type V. Read more
source§

fn property_value(&self, property_name: &str) -> Value

Gets the property property_name of the object. Read more
source§

fn has_property(&self, property_name: &str, type_: Option<Type>) -> bool

Check if the object has a property property_name of the given type_. Read more
source§

fn property_type(&self, property_name: &str) -> Option<Type>

Get the type of the property property_name of this object. Read more
source§

fn find_property(&self, property_name: &str) -> Option<ParamSpec>

Get the ParamSpec of the property property_name of this object.
source§

fn list_properties(&self) -> PtrSlice<ParamSpec>

Return all ParamSpec of the properties of this object.
source§

fn freeze_notify(&self) -> PropertyNotificationFreezeGuard

Freeze all property notifications until the return guard object is dropped. Read more
source§

unsafe fn set_qdata<QD>(&self, key: Quark, value: QD)
where QD: 'static,

Set arbitrary data on this object with the given key. Read more
source§

unsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>>
where QD: 'static,

Return previously set arbitrary data of this object with the given key. Read more
source§

unsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD>
where QD: 'static,

Retrieve previously set arbitrary data of this object with the given key. Read more
source§

unsafe fn set_data<QD>(&self, key: &str, value: QD)
where QD: 'static,

Set arbitrary data on this object with the given key. Read more
source§

unsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>>
where QD: 'static,

Return previously set arbitrary data of this object with the given key. Read more
source§

unsafe fn steal_data<QD>(&self, key: &str) -> Option<QD>
where QD: 'static,

Retrieve previously set arbitrary data of this object with the given key. Read more
source§

fn block_signal(&self, handler_id: &SignalHandlerId)

Block a given signal handler. Read more
source§

fn unblock_signal(&self, handler_id: &SignalHandlerId)

Unblock a given signal handler.
source§

fn stop_signal_emission(&self, signal_id: SignalId, detail: Option<Quark>)

Stop emission of the currently emitted signal.
source§

fn stop_signal_emission_by_name(&self, signal_name: &str)

Stop emission of the currently emitted signal by the (possibly detailed) signal name.
source§

fn connect<F>( &self, signal_name: &str, after: bool, callback: F, ) -> SignalHandlerId
where F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,

Connect to the signal signal_name on this object. Read more
source§

fn connect_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F, ) -> SignalHandlerId
where F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,

Connect to the signal signal_id on this object. Read more
source§

fn connect_local<F>( &self, signal_name: &str, after: bool, callback: F, ) -> SignalHandlerId
where F: Fn(&[Value]) -> Option<Value> + 'static,

Connect to the signal signal_name on this object. Read more
source§

fn connect_local_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F, ) -> SignalHandlerId
where F: Fn(&[Value]) -> Option<Value> + 'static,

Connect to the signal signal_id on this object. Read more
source§

unsafe fn connect_unsafe<F>( &self, signal_name: &str, after: bool, callback: F, ) -> SignalHandlerId
where F: Fn(&[Value]) -> Option<Value>,

Connect to the signal signal_name on this object. Read more
source§

unsafe fn connect_unsafe_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F, ) -> SignalHandlerId
where F: Fn(&[Value]) -> Option<Value>,

Connect to the signal signal_id on this object. Read more
source§

fn connect_closure( &self, signal_name: &str, after: bool, closure: RustClosure, ) -> SignalHandlerId

Connect a closure to the signal signal_name on this object. Read more
source§

fn connect_closure_id( &self, signal_id: SignalId, details: Option<Quark>, after: bool, closure: RustClosure, ) -> SignalHandlerId

Connect a closure to the signal signal_id on this object. Read more
source§

fn watch_closure(&self, closure: &impl AsRef<Closure>)

Limits the lifetime of closure to the lifetime of the object. When the object’s reference count drops to zero, the closure will be invalidated. An invalidated closure will ignore any calls to invoke_with_values, or invoke when using Rust closures.
source§

fn emit<R>(&self, signal_id: SignalId, args: &[&dyn ToValue]) -> R

Emit signal by signal id. Read more
source§

fn emit_with_values(&self, signal_id: SignalId, args: &[Value]) -> Option<Value>

Same as Self::emit but takes Value for the arguments.
source§

fn emit_by_name<R>(&self, signal_name: &str, args: &[&dyn ToValue]) -> R

Emit signal by its name. Read more
source§

fn emit_by_name_with_values( &self, signal_name: &str, args: &[Value], ) -> Option<Value>

Emit signal by its name. Read more
source§

fn emit_by_name_with_details<R>( &self, signal_name: &str, details: Quark, args: &[&dyn ToValue], ) -> R

Emit signal by its name with details. Read more
source§

fn emit_by_name_with_details_and_values( &self, signal_name: &str, details: Quark, args: &[Value], ) -> Option<Value>

Emit signal by its name with details. Read more
source§

fn emit_with_details<R>( &self, signal_id: SignalId, details: Quark, args: &[&dyn ToValue], ) -> R

Emit signal by signal id with details. Read more
source§

fn emit_with_details_and_values( &self, signal_id: SignalId, details: Quark, args: &[Value], ) -> Option<Value>

Emit signal by signal id with details. Read more
source§

fn disconnect(&self, handler_id: SignalHandlerId)

Disconnect a previously connected signal handler.
source§

fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId
where F: Fn(&T, &ParamSpec) + Send + Sync + 'static,

Connect to the notify signal of the object. Read more
source§

fn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId
where F: Fn(&T, &ParamSpec) + 'static,

Connect to the notify signal of the object. Read more
source§

unsafe fn connect_notify_unsafe<F>( &self, name: Option<&str>, f: F, ) -> SignalHandlerId
where F: Fn(&T, &ParamSpec),

Connect to the notify signal of the object. Read more
source§

fn notify(&self, property_name: &str)

Notify that the given property has changed its value. Read more
source§

fn notify_by_pspec(&self, pspec: &ParamSpec)

Notify that the given property has changed its value. Read more
source§

fn downgrade(&self) -> WeakRef<T>

Downgrade this object to a weak reference.
source§

fn add_weak_ref_notify<F>(&self, f: F) -> WeakRefNotify<T>
where F: FnOnce() + Send + 'static,

Add a callback to be notified when the Object is disposed.
source§

fn add_weak_ref_notify_local<F>(&self, f: F) -> WeakRefNotify<T>
where F: FnOnce() + 'static,

Add a callback to be notified when the Object is disposed. Read more
source§

fn bind_property<'a, 'f, 't, O>( &'a self, source_property: &'a str, target: &'a O, target_property: &'a str, ) -> BindingBuilder<'a, 'f, 't>
where O: ObjectType,

Bind property source_property on this object to the target_property on the target object. Read more
source§

fn ref_count(&self) -> u32

Returns the strong reference count of this object.
source§

unsafe fn run_dispose(&self)

Runs the dispose mechanism of the object. Read more
source§

impl<T> Property for T
where T: HasParamSpec,

§

type Value = T

source§

impl<T> PropertyGet for T
where T: HasParamSpec,

§

type Value = T

source§

fn get<R, F>(&self, f: F) -> R
where F: Fn(&<T as PropertyGet>::Value) -> R,

source§

impl<T> StaticTypeExt for T
where T: StaticType,

source§

fn ensure_type()

Ensures that the type has been registered with the type system.
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToSendValue for T
where T: Send + ToValue + ?Sized,

source§

fn to_send_value(&self) -> SendValue

Returns a SendValue clone of self.
source§

impl<T> TransparentType for T

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T> TryFromClosureReturnValue for T
where T: for<'a> FromValue<'a> + StaticType + 'static,

source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<'a, T, C, E> FromValueOptional<'a> for T
where T: FromValue<'a, Checker = C>, C: ValueTypeChecker<Error = ValueTypeMismatchOrNoneError<E>>, E: Error + Send + 'static,

source§

impl<Super, Sub> MayDowncastTo<Sub> for Super
where Super: IsA<Super>, Sub: IsA<Super>,