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§
fn input_count(&self) -> usize
Sourcefn input_pts_ordered(&self) -> bool
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.
Sourcefn output_follows_input(&self) -> Option<usize>
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.
Sourcefn input_pad_index(&self, req: &PadRequest, ordinal: usize) -> Option<usize>
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.
fn caps_constraint_as_input(&self, input: usize) -> CapsConstraint<'_>
fn caps_constraint_for_output(&self) -> Result<CapsConstraint<'_>, G2gError>
Sourcefn propose_allocation_for_input(
&self,
input: usize,
caps: &Caps,
) -> Option<AllocationParams>
fn propose_allocation_for_input( &self, input: usize, caps: &Caps, ) -> Option<AllocationParams>
Dyn-safe mirror of MultiInputElement::propose_allocation_for_input.
Sourcefn propose_allocation_for_output(&self, caps: &Caps) -> Option<AllocationParams>
fn propose_allocation_for_output(&self, caps: &Caps) -> Option<AllocationParams>
Dyn-safe mirror of MultiInputElement::propose_allocation_for_output.
Sourcefn configure_allocation_for_output(&mut self, params: &AllocationParams)
fn configure_allocation_for_output(&mut self, params: &AllocationParams)
Dyn-safe mirror of MultiInputElement::configure_allocation_for_output.
Sourcefn output_caps(&self) -> Result<Caps, G2gError>
fn output_caps(&self) -> Result<Caps, G2gError>
Dyn-safe mirror of MultiInputElement::output_caps.
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>
Sourcefn metadata(&self) -> ElementMetadata
fn metadata(&self) -> ElementMetadata
Dyn-safe mirror of MultiInputElement::metadata, for the gst-inspect
“Factory Details” of an erased fan-in muxer.
Provided Methods§
Sourcefn tick_interval_ns(&self) -> Option<u64>
fn tick_interval_ns(&self) -> Option<u64>
Dyn-safe mirror of MultiInputElement::tick_interval_ns: the deadline
tick period this element wants, if any.
Sourcefn input_domains(&self) -> DomainSet
fn input_domains(&self) -> DomainSet
Dyn-safe mirror of MultiInputElement::input_domains. Default
DomainSet::ALL.
Sourcefn reverse_channel(&self, _input: usize) -> Option<ReverseChannel>
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.
Sourcefn is_terminal(&self) -> bool
fn is_terminal(&self) -> bool
Dyn-safe mirror of MultiInputElement::is_terminal.
Sourcefn accepts_runtime_input(&self, _pad: usize, _caps: &Caps) -> bool
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.
Sourcefn set_instance_name(&mut self, _name: String)
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.
Sourcefn set_log_category(&mut self, _category: String)
fn set_log_category(&mut self, _category: String)
Dyn-safe mirror of MultiInputElement::set_log_category.
Trait Implementations§
Source§impl ControlTarget for dyn DynMultiInputElement + '_
Available on crate feature std only.
impl ControlTarget for dyn DynMultiInputElement + '_
std only.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.
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.
fn input_count(&self) -> usize
Source§fn input_pts_ordered(&self) -> bool
fn input_pts_ordered(&self) -> bool
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>
fn output_follows_input(&self) -> Option<usize>
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>
fn tick_interval_ns(&self) -> Option<u64>
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>
fn input_pad_index(&self, req: &PadRequest, ordinal: usize) -> Option<usize>
MultiInputElement::input_pad_index (M481): map a
named request pad to the concrete input index, for the launch parser.fn caps_constraint_as_input(&self, input: usize) -> CapsConstraint<'_>
fn caps_constraint_for_output(&self) -> Result<CapsConstraint<'_>, G2gError>
Source§fn input_domains(&self) -> DomainSet
fn input_domains(&self) -> DomainSet
MultiInputElement::input_domains. Default
DomainSet::ALL.Source§fn propose_allocation_for_input(
&self,
input: usize,
caps: &Caps,
) -> Option<AllocationParams>
fn propose_allocation_for_input( &self, input: usize, caps: &Caps, ) -> Option<AllocationParams>
MultiInputElement::propose_allocation_for_input.Source§fn propose_allocation_for_output(&self, caps: &Caps) -> Option<AllocationParams>
fn propose_allocation_for_output(&self, caps: &Caps) -> Option<AllocationParams>
MultiInputElement::propose_allocation_for_output.Source§fn configure_allocation_for_output(&mut self, params: &AllocationParams)
fn configure_allocation_for_output(&mut self, params: &AllocationParams)
MultiInputElement::configure_allocation_for_output.Source§fn output_caps(&self) -> Result<Caps, G2gError>
fn output_caps(&self) -> Result<Caps, G2gError>
MultiInputElement::output_caps.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>
Source§fn metadata(&self) -> ElementMetadata
fn metadata(&self) -> ElementMetadata
MultiInputElement::metadata, for the gst-inspect
“Factory Details” of an erased fan-in muxer.Source§fn reverse_channel(&self, input: usize) -> Option<ReverseChannel>
fn reverse_channel(&self, input: usize) -> Option<ReverseChannel>
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
fn is_terminal(&self) -> bool
MultiInputElement::is_terminal.Source§fn accepts_runtime_input(&self, pad: usize, caps: &Caps) -> bool
fn accepts_runtime_input(&self, pad: usize, caps: &Caps) -> bool
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)
fn set_instance_name(&mut self, name: String)
MultiInputElement::set_instance_name, so the runner
can name an erased muxer instance for logging.Source§fn set_log_category(&mut self, category: String)
fn set_log_category(&mut self, category: String)
MultiInputElement::set_log_category.Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementors§
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.