Struct gstreamer_editing_services::Timeline
source · #[repr(transparent)]pub struct Timeline { /* private fields */ }
Expand description
Timeline
is the central object for any multimedia timeline.
A timeline is composed of a set of Track
-s and a set of
Layer
-s, which are added to the timeline using
TimelineExt::add_track()
and TimelineExt::append_layer()
, respectively.
The contained tracks define the supported types of the timeline
and provide the media output. Essentially, each track provides an
additional source gst::Pad
.
Most usage of a timeline will likely only need a single AudioTrack
and/or a single VideoTrack
. You can create such a timeline with
new_audio_video()
. After this, you are unlikely to need to
work with the tracks directly.
A timeline’s layers contain Clip
-s, which in turn control the
creation of TrackElement
-s, which are added to the timeline’s
tracks. See signal::Timeline::select-tracks-for-object
if you wish to have
more control over which track a clip’s elements are added to.
The layers are ordered, with higher priority layers having their
content prioritised in the tracks. This ordering can be changed using
TimelineExt::move_layer()
.
Editing
See TimelineElement
for the various ways the elements of a timeline
can be edited.
If you change the timing or ordering of a timeline’s
TimelineElement
-s, then these changes will not actually be taken
into account in the output of the timeline’s tracks until the
TimelineExt::commit()
method is called. This allows you to move its
elements around, say, in response to an end user’s mouse dragging, with
little expense before finalising their effect on the produced data.
Overlaps and Auto-Transitions
There are certain restrictions placed on how Source
-s may overlap
in a Track
that belongs to a timeline. These will be enforced by
GES, so the user will not need to keep track of them, but they should
be aware that certain edits will be refused as a result if the overlap
rules would be broken.
Consider two Source
-s, A
and B
, with start times startA
and
startB
, and end times endA
and endB
, respectively. The start
time refers to their property::TimelineElement::start
, and the end time is
their property::TimelineElement::start
+ property::TimelineElement::duration
. These
two sources overlap if:
- they share the same
property::TrackElement::track
(nonNone
), which belongs to the timeline; - they share the same
GES_TIMELINE_ELEMENT_LAYER_PRIORITY
; and startA < endB
andstartB < endA
.
Note that when startA = endB
or startB = endA
then the two sources
will touch at their edges, but are not considered overlapping.
If, in addition, startA < startB < endA
, then we can say that the
end of A
overlaps the start of B
.
If, instead, startA <= startB
and endA >= endB
, then we can say
that A
fully overlaps B
.
The overlap rules for a timeline are that:
- One source cannot fully overlap another source.
- A source can only overlap the end of up to one other source at its start.
- A source can only overlap the start of up to one other source at its end.
The last two rules combined essentially mean that at any given timeline
position, only up to two Source
-s may overlap at that position. So
triple or more overlaps are not allowed.
If you switch on property::Timeline::auto-transition
, then at any moment when
the end of one source (the first source) overlaps the start of another
(the second source), a TransitionClip
will be automatically created
for the pair in the same layer and it will cover their overlap. If the
two elements are edited in a way such that the end of the first source
no longer overlaps the start of the second, the transition will be
automatically removed from the timeline. However, if the two sources
still overlap at the same edges after the edit, then the same
transition object will be kept, but with its timing and layer adjusted
accordingly.
Saving
To save/load a timeline, you can use the TimelineExt::load_from_uri()
and TimelineExt::save_to_uri()
methods that use the default format.
Playing
A timeline is a gst::Bin
with a source gst::Pad
for each of its
tracks, which you can fetch with TimelineExt::pad_for_track()
. You
will likely want to link these to some compatible sink gst::Element
-s to
be able to play or capture the content of the timeline.
You can use a Pipeline
to easily preview/play the timeline’s
content, or render it to a file.
Implements
TimelineExt
, [trait@gst::prelude::BinExt
], gst::prelude::ElementExt
, gst::prelude::GstObjectExt
, glib::ObjectExt
, gst::prelude::ChildProxyExt
, ExtractableExt
, MetaContainerExt
Implementations
sourceimpl Timeline
impl Timeline
pub const NONE: Option<&'static Timeline> = None
sourcepub fn new_audio_video() -> Timeline
pub fn new_audio_video() -> Timeline
Creates a new timeline containing a single AudioTrack
and a
single VideoTrack
.
Returns
The new timeline.
Trait Implementations
sourceimpl Ord for Timeline
impl Ord for Timeline
1.21.0 · sourcefn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
1.21.0 · sourcefn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Selfwhere
Self: Sized + PartialOrd<Self>,
fn clamp(self, min: Self, max: Self) -> Selfwhere
Self: Sized + PartialOrd<Self>,
sourceimpl ParentClassIs for Timeline
impl ParentClassIs for Timeline
sourceimpl<OT: ObjectType> PartialOrd<OT> for Timeline
impl<OT: ObjectType> PartialOrd<OT> for Timeline
sourcefn partial_cmp(&self, other: &OT) -> Option<Ordering>
fn partial_cmp(&self, other: &OT) -> Option<Ordering>
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresourceimpl StaticType for Timeline
impl StaticType for Timeline
sourcefn static_type() -> Type
fn static_type() -> Type
Self
.impl Eq for Timeline
impl IsA<Bin> for Timeline
impl IsA<ChildProxy> for Timeline
impl IsA<Element> for Timeline
impl IsA<Extractable> for Timeline
impl IsA<MetaContainer> for Timeline
impl IsA<Object> for Timeline
Auto Trait Implementations
impl RefUnwindSafe for Timeline
impl !Send for Timeline
impl !Sync for Timeline
impl Unpin for Timeline
impl UnwindSafe for Timeline
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<T> Cast for Twhere
T: ObjectType,
impl<T> Cast for Twhere
T: ObjectType,
sourcefn upcast<T>(self) -> Twhere
T: ObjectType,
Self: IsA<T>,
fn upcast<T>(self) -> Twhere
T: ObjectType,
Self: IsA<T>,
T
. Read moresourcefn upcast_ref<T>(&self) -> &Twhere
T: ObjectType,
Self: IsA<T>,
fn upcast_ref<T>(&self) -> &Twhere
T: ObjectType,
Self: IsA<T>,
T
. Read moresourcefn downcast<T>(self) -> Result<T, Self>where
T: ObjectType,
Self: CanDowncast<T>,
fn downcast<T>(self) -> Result<T, Self>where
T: ObjectType,
Self: CanDowncast<T>,
T
. Read moresourcefn downcast_ref<T>(&self) -> Option<&T>where
T: ObjectType,
Self: CanDowncast<T>,
fn downcast_ref<T>(&self) -> Option<&T>where
T: ObjectType,
Self: CanDowncast<T>,
T
. Read moresourcefn dynamic_cast<T>(self) -> Result<T, Self>where
T: ObjectType,
fn dynamic_cast<T>(self) -> Result<T, Self>where
T: ObjectType,
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 moresourcefn dynamic_cast_ref<T>(&self) -> Option<&T>where
T: ObjectType,
fn dynamic_cast_ref<T>(&self) -> Option<&T>where
T: ObjectType,
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 moresourceunsafe fn unsafe_cast<T>(self) -> Twhere
T: ObjectType,
unsafe fn unsafe_cast<T>(self) -> Twhere
T: ObjectType,
T
unconditionally. Read moresourceunsafe fn unsafe_cast_ref<T>(&self) -> &Twhere
T: ObjectType,
unsafe fn unsafe_cast_ref<T>(&self) -> &Twhere
T: ObjectType,
&T
unconditionally. Read moresourceimpl<O> ChildProxyExt for Owhere
O: IsA<ChildProxy>,
impl<O> ChildProxyExt for Owhere
O: IsA<ChildProxy>,
sourcefn child_added(&self, child: &impl IsA<Object>, name: &str)
fn child_added(&self, child: &impl IsA<Object>, name: &str)
signal::ChildProxy::child-added
signal. Read moresourcefn child_removed(&self, child: &impl IsA<Object>, name: &str)
fn child_removed(&self, child: &impl IsA<Object>, name: &str)
signal::ChildProxy::child-removed
signal. Read moresourcefn child_by_index(&self, index: u32) -> Option<Object>
fn child_by_index(&self, index: u32) -> Option<Object>
sourcefn child_by_name(&self, name: &str) -> Option<Object>
fn child_by_name(&self, name: &str) -> Option<Object>
sourcefn child_by_name_recurse(&self, name: &str) -> Option<Object>
fn child_by_name_recurse(&self, name: &str) -> Option<Object>
v1_22
only.sourcefn children_count(&self) -> u32
fn children_count(&self) -> u32
sourcefn connect_child_added<F>(&self, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&O, &Object, &str) + Send + Sync,
fn connect_child_added<F>(&self, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&O, &Object, &str) + Send + Sync,
sourcefn connect_child_removed<F>(&self, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&O, &Object, &str) + Send + Sync,
fn connect_child_removed<F>(&self, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&O, &Object, &str) + Send + Sync,
sourceimpl<O> ChildProxyExtManual for Owhere
O: IsA<ChildProxy>,
impl<O> ChildProxyExtManual for Owhere
O: IsA<ChildProxy>,
sourcefn child_property<V>(&self, name: &str) -> Vwhere
V: 'static + for<'b> FromValue<'b>,
fn child_property<V>(&self, name: &str) -> Vwhere
V: 'static + for<'b> FromValue<'b>,
glib::Value::unset()
][crate::glib::Value::unset()] Read morefn child_property_value(&self, name: &str) -> Value
sourcefn set_child_property<V>(&self, name: &str, value: V)where
V: ToValue,
fn set_child_property<V>(&self, name: &str, value: V)where
V: ToValue,
fn set_child_property_from_value(&self, name: &str, value: &Value)
sourceimpl<O> ElementExt for Owhere
O: IsA<Element>,
impl<O> ElementExt for Owhere
O: IsA<Element>,
sourcefn abort_state(&self)
fn abort_state(&self)
sourcefn add_pad(&self, pad: &impl IsA<Pad>) -> Result<(), BoolError>
fn add_pad(&self, pad: &impl IsA<Pad>) -> Result<(), BoolError>
self
. pad
’s parent will be set to self
;
see GstObjectExt::set_parent()
for refcounting information. Read moresourcefn change_state(
&self,
transition: StateChange
) -> Result<StateChangeSuccess, StateChangeError>
fn change_state(
&self,
transition: StateChange
) -> Result<StateChangeSuccess, StateChangeError>
sourcefn continue_state(
&self,
ret: impl Into<StateChangeReturn>
) -> Result<StateChangeSuccess, StateChangeError>
fn continue_state(
&self,
ret: impl Into<StateChangeReturn>
) -> Result<StateChangeSuccess, StateChangeError>
StateChangeReturn::Success
from the state change function. Read morefn create_all_pads(&self)
fn foreach_pad<P>(&self, func: P) -> boolwhere
P: FnMut(&Element, &Pad) -> bool,
fn foreach_sink_pad<P>(&self, func: P) -> boolwhere
P: FnMut(&Element, &Pad) -> bool,
fn foreach_src_pad<P>(&self, func: P) -> boolwhere
P: FnMut(&Element, &Pad) -> bool,
fn base_time(&self) -> Option<ClockTime>
fn bus(&self) -> Option<Bus>
fn clock(&self) -> Option<Clock>
fn compatible_pad(&self, pad: &impl IsA<Pad>, caps: Option<&Caps>) -> Option<Pad>
fn compatible_pad_template(
&self,
compattempl: &PadTemplate
) -> Option<PadTemplate>
fn context(&self, context_type: &str) -> Option<Context>
fn contexts(&self) -> Vec<Context, Global> ⓘ
fn factory(&self) -> Option<ElementFactory>
fn start_time(&self) -> Option<ClockTime>
fn state(
&self,
timeout: impl Into<Option<ClockTime>>
) -> (Result<StateChangeSuccess, StateChangeError>, State, State)
fn static_pad(&self, name: &str) -> Option<Pad>
fn is_locked_state(&self) -> bool
fn lost_state(&self)
fn no_more_pads(&self)
fn provide_clock(&self) -> Option<Clock>
fn release_request_pad(&self, pad: &impl IsA<Pad>)
fn remove_pad(&self, pad: &impl IsA<Pad>) -> Result<(), BoolError>
fn request_pad(
&self,
templ: &PadTemplate,
name: Option<&str>,
caps: Option<&Caps>
) -> Option<Pad>
fn set_base_time(&self, time: ClockTime)
fn set_bus(&self, bus: Option<&Bus>)
fn set_clock(&self, clock: Option<&impl IsA<Clock>>) -> Result<(), BoolError>
fn set_context(&self, context: &Context)
fn set_locked_state(&self, locked_state: bool) -> bool
fn set_start_time(&self, time: impl Into<Option<ClockTime>>)
fn set_state(&self, state: State) -> Result<StateChangeSuccess, StateChangeError>
fn sync_state_with_parent(&self) -> Result<(), BoolError>
fn unlink(&self, dest: &impl IsA<Element>)
fn unlink_pads(
&self,
srcpadname: &str,
dest: &impl IsA<Element>,
destpadname: &str
)
fn connect_no_more_pads<F>(&self, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&O) + Send + Sync,
fn connect_pad_added<F>(&self, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&O, &Pad) + Send + Sync,
fn connect_pad_removed<F>(&self, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&O, &Pad) + Send + Sync,
sourceimpl<O> ElementExtManual for Owhere
O: IsA<Element>,
impl<O> ElementExtManual for Owhere
O: IsA<Element>,
fn element_class(&self) -> &Class<Element>
fn current_state(&self) -> State
fn pending_state(&self) -> State
sourcefn send_event(&self, event: impl Into<Event>) -> bool
fn send_event(&self, event: impl Into<Event>) -> bool
fn metadata<'a>(&self, key: &str) -> Option<&'a str>
fn pad_template(&self, name: &str) -> Option<PadTemplate>
fn pad_template_list(&self) -> List<PadTemplate>
fn set_element_flags(&self, flags: ElementFlags)
fn unset_element_flags(&self, flags: ElementFlags)
fn element_flags(&self) -> ElementFlags
fn message_full<T>(
&self,
type_: ElementMessageType,
code: T,
message: Option<&str>,
debug: Option<&str>,
file: &str,
function: &str,
line: u32
)where
T: MessageErrorDomain,
fn message_full_with_details<T>(
&self,
type_: ElementMessageType,
code: T,
message: Option<&str>,
debug: Option<&str>,
file: &str,
function: &str,
line: u32,
structure: Structure
)where
T: MessageErrorDomain,
fn post_message(&self, message: Message) -> Result<(), BoolError>
fn post_error_message(&self, msg: ErrorMessage)
fn iterate_pads(&self) -> Iterator<Pad>
fn iterate_sink_pads(&self) -> Iterator<Pad>
fn iterate_src_pads(&self) -> Iterator<Pad>
fn pads(&self) -> Vec<Pad, Global> ⓘ
fn sink_pads(&self) -> Vec<Pad, Global> ⓘ
fn src_pads(&self) -> Vec<Pad, Global> ⓘ
fn num_pads(&self) -> u16
fn num_sink_pads(&self) -> u16
fn num_src_pads(&self) -> u16
fn add_property_deep_notify_watch(
&self,
property_name: Option<&str>,
include_value: bool
) -> NotifyWatchId
fn add_property_notify_watch(
&self,
property_name: Option<&str>,
include_value: bool
) -> NotifyWatchId
fn remove_property_notify_watch(&self, watch_id: NotifyWatchId)
fn query_convert<U>(&self, src_val: impl FormattedValue) -> Option<U>where
U: SpecificFormattedValueFullRange,
fn query_convert_generic(
&self,
src_val: impl FormattedValue,
dest_format: Format
) -> Option<GenericFormattedValue>
fn query_duration<T>(&self) -> Option<T>where
T: SpecificFormattedValueIntrinsic,
fn query_duration_generic(&self, format: Format) -> Option<GenericFormattedValue>
fn query_position<T>(&self) -> Option<T>where
T: SpecificFormattedValueIntrinsic,
fn query_position_generic(&self, format: Format) -> Option<GenericFormattedValue>
fn seek<V>(
&self,
rate: f64,
flags: SeekFlags,
start_type: SeekType,
start: V,
stop_type: SeekType,
stop: impl CompatibleFormattedValue<V>
) -> Result<(), BoolError>where
V: FormattedValue,
fn seek_simple(
&self,
seek_flags: SeekFlags,
seek_pos: impl FormattedValue
) -> Result<(), BoolError>
fn call_async<F>(&self, func: F)where
F: 'static + FnOnce(&O) + Send,
fn call_async_future<F, T>(
&self,
func: F
) -> Pin<Box<dyn Future<Output = T> + Send + 'static, Global>>where
F: 'static + FnOnce(&O) -> T + Send,
T: 'static + Send,
fn current_running_time(&self) -> Option<ClockTime>
fn current_clock_time(&self) -> Option<ClockTime>
fn request_pad_simple(&self, name: &str) -> Option<Pad>
fn link(&self, dest: &impl IsA<Element>) -> Result<(), BoolError>
fn link_filtered(
&self,
dest: &impl IsA<Element>,
filter: &Caps
) -> Result<(), BoolError>
fn link_pads(
&self,
srcpadname: Option<&str>,
dest: &impl IsA<Element>,
destpadname: Option<&str>
) -> Result<(), BoolError>
fn link_pads_filtered(
&self,
srcpadname: Option<&str>,
dest: &impl IsA<Element>,
destpadname: Option<&str>,
filter: &Caps
) -> Result<(), BoolError>
fn link_pads_full(
&self,
srcpadname: Option<&str>,
dest: &impl IsA<Element>,
destpadname: Option<&str>,
flags: PadLinkCheck
) -> Result<(), BoolError>
sourceimpl<O> GObjectExtManualGst for Owhere
O: IsA<Object>,
impl<O> GObjectExtManualGst for Owhere
O: IsA<Object>,
fn set_property_from_str(&self, name: &str, value: &str)
sourceimpl<O> GstBinExt for Owhere
O: IsA<Bin>,
impl<O> GstBinExt for Owhere
O: IsA<Bin>,
sourcefn add(&self, element: &impl IsA<Element>) -> Result<(), BoolError>
fn add(&self, element: &impl IsA<Element>) -> Result<(), BoolError>
sourcefn find_unlinked_pad(&self, direction: PadDirection) -> Option<Pad>
fn find_unlinked_pad(&self, direction: PadDirection) -> Option<Pad>
None
otherwise. If a pad is found, the caller
owns a reference to it and should use gst_object_unref()
on the
pad when it is not needed any longer. Read moresourcefn by_interface(&self, iface: Type) -> Option<Element>
fn by_interface(&self, iface: Type) -> Option<Element>
GstBinExtManual::iterate_all_by_interface()
. This function recurses into child bins. Read moresourcefn by_name(&self, name: &str) -> Option<Element>
fn by_name(&self, name: &str) -> Option<Element>
sourcefn by_name_recurse_up(&self, name: &str) -> Option<Element>
fn by_name_recurse_up(&self, name: &str) -> Option<Element>
sourcefn suppressed_flags(&self) -> ElementFlags
fn suppressed_flags(&self) -> ElementFlags
sourcefn recalculate_latency(&self) -> Result<(), BoolError>
fn recalculate_latency(&self) -> Result<(), BoolError>
self
for the current latency and reconfigures this latency on all the
elements using a LATENCY event. Read moresourcefn remove(&self, element: &impl IsA<Element>) -> Result<(), BoolError>
fn remove(&self, element: &impl IsA<Element>) -> Result<(), BoolError>
gst_object_ref()
before removing it from the bin. Read moresourcefn set_suppressed_flags(&self, flags: ElementFlags)
fn set_suppressed_flags(&self, flags: ElementFlags)
ElementFlags
of a
child element are propagated when it is added to the bin.
When suppressed flags are set, those specified flags will
not be propagated to the bin. Read moresourcefn sync_children_states(&self) -> Result<(), BoolError>
fn sync_children_states(&self) -> Result<(), BoolError>
self
with the state
of self
. See also ElementExt::sync_state_with_parent()
. Read moresourcefn is_async_handling(&self) -> bool
fn is_async_handling(&self) -> bool
sourcefn set_async_handling(&self, async_handling: bool)
fn set_async_handling(&self, async_handling: bool)
sourcefn is_message_forward(&self) -> bool
fn is_message_forward(&self) -> bool
sourcefn set_message_forward(&self, message_forward: bool)
fn set_message_forward(&self, message_forward: bool)
sourcefn connect_deep_element_added<F>(&self, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&O, &Bin, &Element) + Send + Sync,
fn connect_deep_element_added<F>(&self, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&O, &Bin, &Element) + Send + Sync,
sub_bin
. Read moresourcefn connect_deep_element_removed<F>(&self, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&O, &Bin, &Element) + Send + Sync,
fn connect_deep_element_removed<F>(&self, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&O, &Bin, &Element) + Send + Sync,
sub_bin
. Read moresourcefn connect_element_added<F>(&self, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&O, &Element) + Send + Sync,
fn connect_element_added<F>(&self, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&O, &Element) + Send + Sync,
sourcefn connect_element_removed<F>(&self, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&O, &Element) + Send + Sync,
fn connect_element_removed<F>(&self, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&O, &Element) + Send + Sync,
fn connect_async_handling_notify<F>(&self, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&O) + Send + Sync,
fn connect_message_forward_notify<F>(&self, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&O) + Send + Sync,
sourceimpl<O> GstBinExtManual for Owhere
O: IsA<Bin>,
impl<O> GstBinExtManual for Owhere
O: IsA<Bin>,
fn add_many<E>(&self, elements: &[&E]) -> Result<(), BoolError>where
E: IsA<Element>,
fn remove_many<E>(&self, elements: &[&E]) -> Result<(), BoolError>where
E: IsA<Element>,
fn connect_do_latency<F>(&self, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&O) -> Result<(), LoggableError> + Send + Sync,
sourcefn iterate_all_by_element_factory_name(
&self,
factory_name: &str
) -> Iterator<Element>
fn iterate_all_by_element_factory_name(
&self,
factory_name: &str
) -> Iterator<Element>
v1_18
only.fn iterate_all_by_interface(&self, iface: Type) -> Iterator<Element>
fn iterate_elements(&self) -> Iterator<Element>
fn iterate_recurse(&self) -> Iterator<Element>
fn iterate_sinks(&self) -> Iterator<Element>
fn iterate_sorted(&self) -> Iterator<Element>
fn iterate_sources(&self) -> Iterator<Element>
fn children(&self) -> Vec<Element, Global> ⓘ
fn debug_to_dot_data(&self, details: DebugGraphDetails) -> GString
fn debug_to_dot_file(
&self,
details: DebugGraphDetails,
file_name: impl AsRef<Path>
)
fn debug_to_dot_file_with_ts(
&self,
details: DebugGraphDetails,
file_name: impl AsRef<Path>
)
fn set_bin_flags(&self, flags: BinFlags)
fn unset_bin_flags(&self, flags: BinFlags)
fn bin_flags(&self) -> BinFlags
sourceimpl<O> GstObjectExt for Owhere
O: IsA<Object>,
impl<O> GstObjectExt for Owhere
O: IsA<Object>,
sourcefn add_control_binding(
&self,
binding: &impl IsA<ControlBinding>
) -> Result<(), BoolError>
fn add_control_binding(
&self,
binding: &impl IsA<ControlBinding>
) -> Result<(), BoolError>
ControlBinding
to the object. If there already was a
ControlBinding
for this property it will be replaced. Read moresourcefn default_error(&self, error: &Error, debug: Option<&str>)
fn default_error(&self, error: &Error, debug: Option<&str>)
g_printerr()
to display the error message
and the optional debug string.. Read moresourcefn control_binding(&self, property_name: &str) -> Option<ControlBinding>
fn control_binding(&self, property_name: &str) -> Option<ControlBinding>
ControlBinding
for the property. This should be
unreferenced again after use. Read moresourcefn control_rate(&self) -> Option<ClockTime>
fn control_rate(&self) -> Option<ClockTime>
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 moresourcefn parent(&self) -> Option<Object>
fn parent(&self) -> Option<Object>
self
. This function increases the refcount
of the parent object so you should gst_object_unref()
it after usage. Read moresourcefn path_string(&self) -> GString
fn path_string(&self) -> GString
self
in
the object hierarchy. Only useful (or used) for debugging. Read moresourcefn value(
&self,
property_name: &str,
timestamp: impl Into<Option<ClockTime>>
) -> Option<Value>
fn value(
&self,
property_name: &str,
timestamp: impl Into<Option<ClockTime>>
) -> Option<Value>
fn has_active_control_bindings(&self) -> bool
fn has_ancestor(&self, ancestor: &impl IsA<Object>) -> bool
fn has_as_ancestor(&self, ancestor: &impl IsA<Object>) -> bool
fn has_as_parent(&self, parent: &impl IsA<Object>) -> bool
fn remove_control_binding(&self, binding: &impl IsA<ControlBinding>) -> bool
fn set_control_binding_disabled(&self, property_name: &str, disabled: bool)
fn set_control_bindings_disabled(&self, disabled: bool)
fn set_control_rate(&self, control_rate: impl Into<Option<ClockTime>>)
fn set_parent(&self, parent: &impl IsA<Object>) -> Result<(), BoolError>
fn suggest_next_sync(&self) -> Option<ClockTime>
fn sync_values(&self, timestamp: ClockTime) -> Result<(), BoolError>
fn unparent(&self)
fn connect_parent_notify<F>(&self, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&O) + Send + Sync,
sourceimpl<O> GstObjectExtManual for Owhere
O: IsA<Object>,
impl<O> GstObjectExtManual for Owhere
O: IsA<Object>,
fn connect_deep_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&O, &Object, &ParamSpec) + Send + Sync,
fn set_object_flags(&self, flags: ObjectFlags)
fn unset_object_flags(&self, flags: ObjectFlags)
fn object_flags(&self) -> ObjectFlags
fn g_value_array(
&self,
property_name: &str,
timestamp: ClockTime,
interval: ClockTime,
values: &mut [Value]
) -> Result<(), BoolError>
sourceimpl<U> IsSubclassableExt for Uwhere
U: IsClass + ParentClassIs,
impl<U> IsSubclassableExt for Uwhere
U: IsClass + ParentClassIs,
fn parent_class_init<T>(class: &mut Class<U>)where
T: ObjectSubclass,
<U as ParentClassIs>::Parent: IsSubclassable<T>,
fn parent_instance_init<T>(instance: &mut InitializingObject<T>)where
T: ObjectSubclass,
<U as ParentClassIs>::Parent: IsSubclassable<T>,
sourceimpl<T> ObjectExt for Twhere
T: ObjectType,
impl<T> ObjectExt for Twhere
T: ObjectType,
sourcefn is<U>(&self) -> boolwhere
U: StaticType,
fn is<U>(&self) -> boolwhere
U: StaticType,
true
if the object is an instance of (can be cast to) T
.sourcefn object_class(&self) -> &Class<Object>
fn object_class(&self) -> &Class<Object>
ObjectClass
of the object. Read moresourcefn class_of<U>(&self) -> Option<&Class<U>>where
U: IsClass,
fn class_of<U>(&self) -> Option<&Class<U>>where
U: IsClass,
T
. Read moresourcefn interface<U>(&self) -> Option<InterfaceRef<'_, U>>where
U: IsInterface,
fn interface<U>(&self) -> Option<InterfaceRef<'_, U>>where
U: IsInterface,
T
of the object. Read moresourcefn set_property<V>(&self, property_name: &str, value: V)where
V: ToValue,
fn set_property<V>(&self, property_name: &str, value: V)where
V: ToValue,
sourcefn set_property_from_value(&self, property_name: &str, value: &Value)
fn set_property_from_value(&self, property_name: &str, value: &Value)
sourcefn set_properties(&self, property_values: &[(&str, &dyn ToValue)])
fn set_properties(&self, property_values: &[(&str, &dyn ToValue)])
sourcefn set_properties_from_value(&self, property_values: &[(&str, Value)])
fn set_properties_from_value(&self, property_values: &[(&str, Value)])
sourcefn property<V>(&self, property_name: &str) -> Vwhere
V: 'static + for<'b> FromValue<'b>,
fn property<V>(&self, property_name: &str) -> Vwhere
V: 'static + for<'b> FromValue<'b>,
property_name
of the object and cast it to the type V. Read moresourcefn property_value(&self, property_name: &str) -> Value
fn property_value(&self, property_name: &str) -> Value
property_name
of the object. Read moresourcefn property_type(&self, property_name: &str) -> Option<Type>
fn property_type(&self, property_name: &str) -> Option<Type>
property_name
of this object. Read moresourcefn find_property(&self, property_name: &str) -> Option<ParamSpec>
fn find_property(&self, property_name: &str) -> Option<ParamSpec>
ParamSpec
of the property property_name
of this object.sourcefn list_properties(&self) -> PtrSlice<ParamSpec>
fn list_properties(&self) -> PtrSlice<ParamSpec>
ParamSpec
of the properties of this object.sourcefn freeze_notify(&self) -> PropertyNotificationFreezeGuard
fn freeze_notify(&self) -> PropertyNotificationFreezeGuard
sourceunsafe fn set_qdata<QD>(&self, key: Quark, value: QD)where
QD: 'static,
unsafe fn set_qdata<QD>(&self, key: Quark, value: QD)where
QD: 'static,
key
. Read moresourceunsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>>where
QD: 'static,
unsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>>where
QD: 'static,
key
. Read moresourceunsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD>where
QD: 'static,
unsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD>where
QD: 'static,
key
. Read moresourceunsafe fn set_data<QD>(&self, key: &str, value: QD)where
QD: 'static,
unsafe fn set_data<QD>(&self, key: &str, value: QD)where
QD: 'static,
key
. Read moresourceunsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>>where
QD: 'static,
unsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>>where
QD: 'static,
key
. Read moresourceunsafe fn steal_data<QD>(&self, key: &str) -> Option<QD>where
QD: 'static,
unsafe fn steal_data<QD>(&self, key: &str) -> Option<QD>where
QD: 'static,
key
. Read moresourcefn block_signal(&self, handler_id: &SignalHandlerId)
fn block_signal(&self, handler_id: &SignalHandlerId)
sourcefn unblock_signal(&self, handler_id: &SignalHandlerId)
fn unblock_signal(&self, handler_id: &SignalHandlerId)
sourcefn stop_signal_emission(&self, signal_id: SignalId, detail: Option<Quark>)
fn stop_signal_emission(&self, signal_id: SignalId, detail: Option<Quark>)
sourcefn stop_signal_emission_by_name(&self, signal_name: &str)
fn stop_signal_emission_by_name(&self, signal_name: &str)
sourcefn connect<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: 'static + Fn(&[Value]) -> Option<Value> + Send + Sync,
fn connect<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: 'static + Fn(&[Value]) -> Option<Value> + Send + Sync,
signal_name
on this object. Read moresourcefn connect_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: 'static + Fn(&[Value]) -> Option<Value> + Send + Sync,
fn connect_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: 'static + Fn(&[Value]) -> Option<Value> + Send + Sync,
signal_id
on this object. Read moresourcefn connect_local<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: 'static + Fn(&[Value]) -> Option<Value>,
fn connect_local<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: 'static + Fn(&[Value]) -> Option<Value>,
signal_name
on this object. Read moresourcefn connect_local_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: 'static + Fn(&[Value]) -> Option<Value>,
fn connect_local_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: 'static + Fn(&[Value]) -> Option<Value>,
signal_id
on this object. Read moresourceunsafe fn connect_unsafe<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value>,
unsafe fn connect_unsafe<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value>,
signal_name
on this object. Read moresourceunsafe fn connect_unsafe_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value>,
unsafe fn connect_unsafe_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value>,
signal_id
on this object. Read moresourcefn connect_closure(
&self,
signal_name: &str,
after: bool,
closure: RustClosure
) -> SignalHandlerId
fn connect_closure(
&self,
signal_name: &str,
after: bool,
closure: RustClosure
) -> SignalHandlerId
signal_name
on this object. Read moresourcefn connect_closure_id(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
closure: RustClosure
) -> SignalHandlerId
fn connect_closure_id(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
closure: RustClosure
) -> SignalHandlerId
signal_id
on this object. Read moresourcefn watch_closure(&self, closure: &impl AsRef<Closure>)
fn watch_closure(&self, closure: &impl AsRef<Closure>)
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. Read moresourcefn emit<R>(&self, signal_id: SignalId, args: &[&dyn ToValue]) -> Rwhere
R: TryFromClosureReturnValue,
fn emit<R>(&self, signal_id: SignalId, args: &[&dyn ToValue]) -> Rwhere
R: TryFromClosureReturnValue,
sourcefn emit_with_values(&self, signal_id: SignalId, args: &[Value]) -> Option<Value>
fn emit_with_values(&self, signal_id: SignalId, args: &[Value]) -> Option<Value>
Self::emit
but takes Value
for the arguments.sourcefn emit_by_name<R>(&self, signal_name: &str, args: &[&dyn ToValue]) -> Rwhere
R: TryFromClosureReturnValue,
fn emit_by_name<R>(&self, signal_name: &str, args: &[&dyn ToValue]) -> Rwhere
R: TryFromClosureReturnValue,
sourcefn emit_by_name_with_values(
&self,
signal_name: &str,
args: &[Value]
) -> Option<Value>
fn emit_by_name_with_values(
&self,
signal_name: &str,
args: &[Value]
) -> Option<Value>
sourcefn emit_by_name_with_details<R>(
&self,
signal_name: &str,
details: Quark,
args: &[&dyn ToValue]
) -> Rwhere
R: TryFromClosureReturnValue,
fn emit_by_name_with_details<R>(
&self,
signal_name: &str,
details: Quark,
args: &[&dyn ToValue]
) -> Rwhere
R: TryFromClosureReturnValue,
sourcefn emit_by_name_with_details_and_values(
&self,
signal_name: &str,
details: Quark,
args: &[Value]
) -> Option<Value>
fn emit_by_name_with_details_and_values(
&self,
signal_name: &str,
details: Quark,
args: &[Value]
) -> Option<Value>
sourcefn emit_with_details<R>(
&self,
signal_id: SignalId,
details: Quark,
args: &[&dyn ToValue]
) -> Rwhere
R: TryFromClosureReturnValue,
fn emit_with_details<R>(
&self,
signal_id: SignalId,
details: Quark,
args: &[&dyn ToValue]
) -> Rwhere
R: TryFromClosureReturnValue,
sourcefn emit_with_details_and_values(
&self,
signal_id: SignalId,
details: Quark,
args: &[Value]
) -> Option<Value>
fn emit_with_details_and_values(
&self,
signal_id: SignalId,
details: Quark,
args: &[Value]
) -> Option<Value>
sourcefn disconnect(&self, handler_id: SignalHandlerId)
fn disconnect(&self, handler_id: SignalHandlerId)
sourcefn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&T, &ParamSpec) + Send + Sync,
fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&T, &ParamSpec) + Send + Sync,
notify
signal of the object. Read moresourcefn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&T, &ParamSpec),
fn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
F: 'static + Fn(&T, &ParamSpec),
notify
signal of the object. Read moresourceunsafe fn connect_notify_unsafe<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerIdwhere
F: Fn(&T, &ParamSpec),
unsafe fn connect_notify_unsafe<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerIdwhere
F: Fn(&T, &ParamSpec),
notify
signal of the object. Read more