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

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.

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

ListenForWatchers

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.

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

RemoveRegistration

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

Requests the specified registration should be removed

Trait Implementations

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

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. Read more

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

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

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

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

Returns the argument unchanged.

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

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

Calls U::from(self).

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

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

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

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