Enum RtmpEndpointRequest

Source
pub enum RtmpEndpointRequest {
    ListenForPublishers {
        port: u16,
        rtmp_app: String,
        rtmp_stream_key: StreamKeyRegistration,
        message_channel: UnboundedSender<RtmpEndpointPublisherMessage>,
        stream_id: Option<StreamId>,
        ip_restrictions: IpRestriction,
        use_tls: bool,
        requires_registrant_approval: bool,
    },
    ListenForWatchers {
        port: u16,
        rtmp_app: String,
        rtmp_stream_key: StreamKeyRegistration,
        notification_channel: UnboundedSender<RtmpEndpointWatcherNotification>,
        media_channel: UnboundedReceiver<RtmpEndpointMediaMessage>,
        ip_restrictions: IpRestriction,
        use_tls: bool,
        requires_registrant_approval: bool,
    },
    RemoveRegistration {
        registration_type: RegistrationType,
        port: u16,
        rtmp_app: String,
        rtmp_stream_key: StreamKeyRegistration,
    },
}
Expand description

Operations the rtmp server endpoint is being requested to make

Variants§

§

ListenForPublishers

Requests the RTMP server to allow publishers on the given port, app, and stream key combinations.

Fields

§port: u16

Port to listen for RTMP publisher connections on

§rtmp_app: String

Name of the RTMP application publishers will connect to

§rtmp_stream_key: StreamKeyRegistration

What stream key publishers should be using

§message_channel: UnboundedSender<RtmpEndpointPublisherMessage>

Channel that the rtmp server endpoint should respond with

§stream_id: Option<StreamId>

If specified, new media streams being published from this registration will be given the stream id specified. If no id is given than one will be generated. This is useful to correlate media streams that may have been pulled, processed externally, then brought back in for later workflow steps (e.g. an external transcoding workflow).

§ip_restrictions: IpRestriction

What IP restriction rules should be in place for this registration

§use_tls: bool

If true, this port should be on a TLS socket (i.e. RTMPS)

§requires_registrant_approval: bool

If true, then publishers will not be automatically accepted even if they connect to the correct app/stream key combination and pass ip restrictions. Instead the registrant should be asked for final verification if the publisher should be allowed or not.

§

ListenForWatchers

Requests the RTMP server to allow clients to receive video on the given port, app, and stream key combinations

Fields

§port: u16

Port to listen on

§rtmp_app: String

Name of the RTMP application playback clients will connect to

§rtmp_stream_key: StreamKeyRegistration

Stream keys clients can receive video on

§notification_channel: UnboundedSender<RtmpEndpointWatcherNotification>

The channel that the rtmp server endpoint will send notifications to

§media_channel: UnboundedReceiver<RtmpEndpointMediaMessage>

The channel that the registrant will send updated media data to the rtmp endpoint on

§ip_restrictions: IpRestriction

What IP restriction rules should be in place for this registration

§use_tls: bool

If true, this port should be on a TLS socket (i.e. RTMPS)

§requires_registrant_approval: bool

If true, then watchers will not be automatically accepted even if they connect to the correct app/stream key combination and pass ip restrictions. Instead the registrant should be asked for final verification if the watcher should be allowed or not.

§

RemoveRegistration

Requests the specified registration should be removed

Fields

§registration_type: RegistrationType

The type of registration that is being removed

§port: u16

Port the removed registrant was listening on

§rtmp_app: String

The RTMP application name that the registrant was listening on

§rtmp_stream_key: StreamKeyRegistration

The stream key the registrant had registered for

Trait Implementations§

Source§

impl Debug for RtmpEndpointRequest

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more