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 D3d11Decoder
d3d11 and (crate features d3d11 or d3d12) only.impl Element for D3d11Download
d3d11 only.impl Element for D3d11NvencEncoder
d3d11 only.impl Element for D3d11Renderer
d3d11 and (crate features d3d11 or d3d12 or wasapi-renderer) only.impl Element for D3d11Upload
d3d11 and (crate features d3d11 or d3d12) only.impl Element for D3d11VideoCompositor
d3d11 only.impl Element for D3d11VideoCompositorInputSink
d3d11 only.impl Element for D3d12Renderer
d3d12 and (crate features d3d11 or d3d12 or wasapi-renderer) only.impl Element for D3d12Upload
d3d12 and (crate features d3d11 or d3d12) only.impl Element for D3d12vaDecoder
d3d12 and (crate features d3d11 or d3d12) only.impl Element for DxgiCaptureSource
dxgi-capture and (crate features dxgi-capture or wasapi-capture) only.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 WasapiCaptureSource
wasapi-capture and (crate features dxgi-capture or wasapi-capture) only.impl Element for WasapiRenderer
wasapi-renderer and (crate features d3d11 or d3d12 or wasapi-renderer) only.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.