Skip to main content

DynMultiInputElement

Trait DynMultiInputElement 

Source
pub trait DynMultiInputElement: ElementBound {
Show 23 methods // Required methods fn input_count(&self) -> usize; fn input_pts_ordered(&self) -> bool; fn output_follows_input(&self) -> Option<usize>; fn input_pad_index(&self, req: &PadRequest, ordinal: usize) -> Option<usize>; fn caps_constraint_as_input(&self, input: usize) -> CapsConstraint<'_>; fn caps_constraint_for_output(&self) -> Result<CapsConstraint<'_>, G2gError>; fn propose_allocation_for_input( &self, input: usize, caps: &Caps, ) -> Option<AllocationParams>; fn propose_allocation_for_output( &self, caps: &Caps, ) -> Option<AllocationParams>; fn configure_allocation_for_output(&mut self, params: &AllocationParams); fn output_caps(&self) -> Result<Caps, G2gError>; fn configure_pipeline( &mut self, input: usize, absolute_caps: &Caps, ) -> Result<ConfigureOutcome, G2gError>; fn process<'a>( &'a mut self, input: usize, packet: PipelinePacket, out: &'a mut dyn OutputSink, ) -> BoxFuture<'a, Result<(), G2gError>>; fn properties(&self) -> &'static [PropertySpec]; fn set_property( &mut self, name: &str, value: PropValue, ) -> Result<(), PropError>; fn get_property(&self, name: &str) -> Option<PropValue>; fn metadata(&self) -> ElementMetadata; // Provided methods fn tick_interval_ns(&self) -> Option<u64> { ... } fn input_domains(&self) -> DomainSet { ... } fn reverse_channel(&self, _input: usize) -> Option<ReverseChannel> { ... } fn is_terminal(&self) -> bool { ... } fn accepts_runtime_input(&self, _pad: usize, _caps: &Caps) -> bool { ... } fn set_instance_name(&mut self, _name: String) { ... } fn set_log_category(&mut self, _category: String) { ... }
}
Expand description

Dyn-safe mirror of MultiInputElement for a fan-in muxer node in the DAG runner (run_graph). Boxes process’s future and forwards the Self: Sized constraint methods, the same shape as DynSourceLoop / DynAsyncElement. Only the methods the runner uses are mirrored (the per-input intercept_caps / output_caps legacy paths stay on the concrete trait).

Required Methods§

Source

fn input_count(&self) -> usize

Source

fn input_pts_ordered(&self) -> bool

Dyn-safe mirror of MultiInputElement::input_pts_ordered: whether the runner delivers inputs in global PTS order rather than arrival order.

Source

fn output_follows_input(&self) -> Option<usize>

Dyn-safe mirror of MultiInputElement::output_follows_input: the input pad whose caps the merged output follows (identity-passthrough mux), if any.

Source

fn input_pad_index(&self, req: &PadRequest, ordinal: usize) -> Option<usize>

Dyn-safe mirror of MultiInputElement::input_pad_index (M481): map a named request pad to the concrete input index, for the launch parser.

Source

fn caps_constraint_as_input(&self, input: usize) -> CapsConstraint<'_>

Source

fn caps_constraint_for_output(&self) -> Result<CapsConstraint<'_>, G2gError>

Source

fn propose_allocation_for_input( &self, input: usize, caps: &Caps, ) -> Option<AllocationParams>

Source

fn propose_allocation_for_output(&self, caps: &Caps) -> Option<AllocationParams>

Source

fn configure_allocation_for_output(&mut self, params: &AllocationParams)

Source

fn output_caps(&self) -> Result<Caps, G2gError>

Dyn-safe mirror of MultiInputElement::output_caps.

Source

fn configure_pipeline( &mut self, input: usize, absolute_caps: &Caps, ) -> Result<ConfigureOutcome, G2gError>

Source

fn process<'a>( &'a mut self, input: usize, packet: PipelinePacket, out: &'a mut dyn OutputSink, ) -> BoxFuture<'a, Result<(), G2gError>>

Source

fn properties(&self) -> &'static [PropertySpec]

Source

fn set_property( &mut self, name: &str, value: PropValue, ) -> Result<(), PropError>

Source

fn get_property(&self, name: &str) -> Option<PropValue>

Source

fn metadata(&self) -> ElementMetadata

Dyn-safe mirror of MultiInputElement::metadata, for the gst-inspect “Factory Details” of an erased fan-in muxer.

Provided Methods§

Source

fn tick_interval_ns(&self) -> Option<u64>

Dyn-safe mirror of MultiInputElement::tick_interval_ns: the deadline tick period this element wants, if any.

Source

fn input_domains(&self) -> DomainSet

Dyn-safe mirror of MultiInputElement::input_domains. Default DomainSet::ALL.

Source

fn reverse_channel(&self, _input: usize) -> Option<ReverseChannel>

Dyn-safe mirror of MultiInputElement::reverse_channel, so a terminal fan-in node’s arm can route a per-input reverse signal (WebRTC PLI / BWE) back to the upstream feeding that pad. Default None.

Source

fn is_terminal(&self) -> bool

Dyn-safe mirror of MultiInputElement::is_terminal.

Source

fn accepts_runtime_input(&self, _pad: usize, _caps: &Caps) -> bool

Dyn-safe mirror of MultiInputElement::accepts_runtime_input: whether this element takes an input added at runtime on pad with caps.

Source

fn set_instance_name(&mut self, _name: String)

Dyn-safe mirror of MultiInputElement::set_instance_name, so the runner can name an erased muxer instance for logging.

Source

fn set_log_category(&mut self, _category: String)

Trait Implementations§

Source§

impl ControlTarget for dyn DynMultiInputElement + '_

Available on crate feature std only.
Source§

fn set_control(&mut self, name: &str, value: PropValue) -> Result<(), PropError>

Source§

impl<'b> DynMultiInputElement for &'b mut (dyn DynMultiInputElement + 'b)

Forwarding impl so a borrowed &mut dyn DynMultiInputElement can be boxed into a Box<dyn DynMultiInputElement + 'a> graph node (the muxer wrapper builds a borrowing Graph over its &mut muxer reference). Disjoint from the MultiInputElement blanket above.

Source§

fn input_count(&self) -> usize

Source§

fn input_pts_ordered(&self) -> bool

Dyn-safe mirror of MultiInputElement::input_pts_ordered: whether the runner delivers inputs in global PTS order rather than arrival order.
Source§

fn output_follows_input(&self) -> Option<usize>

Dyn-safe mirror of MultiInputElement::output_follows_input: the input pad whose caps the merged output follows (identity-passthrough mux), if any.
Source§

fn tick_interval_ns(&self) -> Option<u64>

Dyn-safe mirror of MultiInputElement::tick_interval_ns: the deadline tick period this element wants, if any.
Source§

fn input_pad_index(&self, req: &PadRequest, ordinal: usize) -> Option<usize>

Dyn-safe mirror of MultiInputElement::input_pad_index (M481): map a named request pad to the concrete input index, for the launch parser.
Source§

fn caps_constraint_as_input(&self, input: usize) -> CapsConstraint<'_>

Source§

fn caps_constraint_for_output(&self) -> Result<CapsConstraint<'_>, G2gError>

Source§

fn input_domains(&self) -> DomainSet

Source§

fn propose_allocation_for_input( &self, input: usize, caps: &Caps, ) -> Option<AllocationParams>

Source§

fn propose_allocation_for_output(&self, caps: &Caps) -> Option<AllocationParams>

Source§

fn configure_allocation_for_output(&mut self, params: &AllocationParams)

Source§

fn output_caps(&self) -> Result<Caps, G2gError>

Dyn-safe mirror of MultiInputElement::output_caps.
Source§

fn configure_pipeline( &mut self, input: usize, absolute_caps: &Caps, ) -> Result<ConfigureOutcome, G2gError>

Source§

fn process<'a>( &'a mut self, input: usize, packet: PipelinePacket, out: &'a mut dyn OutputSink, ) -> BoxFuture<'a, Result<(), G2gError>>

Source§

fn properties(&self) -> &'static [PropertySpec]

Source§

fn set_property( &mut self, name: &str, value: PropValue, ) -> Result<(), PropError>

Source§

fn get_property(&self, name: &str) -> Option<PropValue>

Source§

fn metadata(&self) -> ElementMetadata

Dyn-safe mirror of MultiInputElement::metadata, for the gst-inspect “Factory Details” of an erased fan-in muxer.
Source§

fn reverse_channel(&self, input: usize) -> Option<ReverseChannel>

Dyn-safe mirror of MultiInputElement::reverse_channel, so a terminal fan-in node’s arm can route a per-input reverse signal (WebRTC PLI / BWE) back to the upstream feeding that pad. Default None.
Source§

fn is_terminal(&self) -> bool

Dyn-safe mirror of MultiInputElement::is_terminal.
Source§

fn accepts_runtime_input(&self, pad: usize, caps: &Caps) -> bool

Dyn-safe mirror of MultiInputElement::accepts_runtime_input: whether this element takes an input added at runtime on pad with caps.
Source§

fn set_instance_name(&mut self, name: String)

Dyn-safe mirror of MultiInputElement::set_instance_name, so the runner can name an erased muxer instance for logging.
Source§

fn set_log_category(&mut self, category: String)

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<'b> DynMultiInputElement for &'b mut (dyn DynMultiInputElement + 'b)

Forwarding impl so a borrowed &mut dyn DynMultiInputElement can be boxed into a Box<dyn DynMultiInputElement + 'a> graph node (the muxer wrapper builds a borrowing Graph over its &mut muxer reference). Disjoint from the MultiInputElement blanket above.

Source§

impl<T: MultiInputElement> DynMultiInputElement for T