pub trait Element: Send {
// Required methods
fn name(&self) -> Arc<str> ⓘ;
fn element_type(&self) -> ElementType;
fn pp_log(&self) -> &PpLog;
fn pp_log_mut(&mut self) -> &mut PpLog;
// Provided method
fn graph_id(&self) -> Option<ElementId> { ... }
}Expand description
A node in the pipeline graph with a name. Plain identity only — says nothing about whether the node has an input, an output, both, or neither.
Required Methods§
Sourcefn name(&self) -> Arc<str> ⓘ
fn name(&self) -> Arc<str> ⓘ
Returns a cheap clone (refcount bump, not a deep copy) of this
element’s name — crate::bus::BusEvent stores names as
Arc<str> for exactly this reason: a hot path like
crate::queue::Queue posting BusEvent::Dropped once per
overflowed buffer shouldn’t pay for a fresh heap allocation every
time it wants to report which element it is.
Sourcefn element_type(&self) -> ElementType
fn element_type(&self) -> ElementType
See ElementType.
Sourcefn pp_log(&self) -> &PpLog
fn pp_log(&self) -> &PpLog
This element’s identity for crate::bus::Bus::post — same
id/name as Element::name, just already wrapped as the
crate::pp_log::PpLog its pp_info!/pp_warn!/pp_error! macros need. A
stored private field, not built fresh per call, for the same reason
name() returns a cheap Arc<str> clone instead of a fresh String
— see its own docs.
Sourcefn pp_log_mut(&mut self) -> &mut PpLog
fn pp_log_mut(&mut self) -> &mut PpLog
Mutable access to the same field Element::pp_log reads — used by
crate::pipeline::ChainBuilder to stamp the owning
crate::pipeline::Pipeline’s id onto every element that
passes through it, via element_pp_log. Not meant to be called
from anywhere else.
Provided Methods§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementors§
impl Element for AppSource
impl Element for AudioMixer
impl Element for AudioResampler
impl Element for AudioVolume
impl Element for FileDemuxer
impl Element for FrameCounter
impl Element for HlsMuxerStreamSink
impl Element for MixerInputSink
impl Element for Mp4MuxerStreamSink
impl Element for Pacer
impl Element for PacketCounter
impl Element for Queue
impl Element for RtspSink
impl Element for RtspSource
impl Element for Scaler
impl Element for SwAudioEncoder
impl Element for SwDecoder
impl Element for SwEncoder
impl Element for Tee
impl Element for TestAudioSource
impl Element for TestVideoSource
impl Element for VideoCompositor
impl Element for VideoCompositorInputSink
impl Element for VideoSynchronizer
impl Element for WebRtcPeer
webrtc only.impl Element for WebRtcTrackSink
webrtc only.impl Element for WebRtcTrackSource
webrtc only.impl<F, C> Element for AppSink<F, C>where
F: FnMut(MediaBuffer) -> Result<()> + Send + 'static,
C: FnMut(ControlMsg) -> Result<()> + Send + 'static,
impl<F> Element for OrtDetector<F>
ort only.