pub enum RtmpEndpointPublisherMessage {
PublisherRegistrationFailed,
PublisherRegistrationSuccessful,
PublisherRequiringApproval {
connection_id: ConnectionId,
stream_key: String,
response_channel: Sender<ValidationResponse>,
},
NewPublisherConnected {
connection_id: ConnectionId,
stream_id: StreamId,
stream_key: String,
reactor_update_channel: Option<UnboundedReceiver<ReactorWorkflowUpdate>>,
},
PublishingStopped {
connection_id: ConnectionId,
},
StreamMetadataChanged {
publisher: ConnectionId,
metadata: StreamMetadata,
},
NewVideoData {
publisher: ConnectionId,
codec: VideoCodec,
is_keyframe: bool,
is_sequence_header: bool,
data: Bytes,
timestamp: RtmpTimestamp,
composition_time_offset: i32,
},
NewAudioData {
publisher: ConnectionId,
codec: AudioCodec,
is_sequence_header: bool,
data: Bytes,
timestamp: RtmpTimestamp,
},
}
Expand description
Messages the rtmp server endpoint will send to publisher registrants.
Variants§
PublisherRegistrationFailed
Notification that the publisher registration failed. No further messages will be sent if this is sent.
PublisherRegistrationSuccessful
Notification that the publisher registration succeeded.
PublisherRequiringApproval
Notification that a new RTMP connection has been made and they have requested to be a publisher on a stream key, but they require validation before being approved.
Fields
connection_id: ConnectionId
Unique identifier for the TCP connection that’s requesting to be a publisher
response_channel: Sender<ValidationResponse>
Channel to send the approval or rejection response to
NewPublisherConnected
Notification that a new RTMP connection has been made and is publishing media
Fields
connection_id: ConnectionId
Unique identifier for the TCP connection that’s publishing
stream_key: String
Actual stream key that this stream is coming in from. Mostly used if the registrant specified that Any stream key would be allowed.
reactor_update_channel: Option<UnboundedReceiver<ReactorWorkflowUpdate>>
If provided, this is a channel which will receive workflow updates from a reactor tied to this publisher
PublishingStopped
Notification that a publisher has stopped publishing. It may still be connected to the server, but it is no longer in a publisher state.
Fields
connection_id: ConnectionId
Unique identifier for the TCP connection that stopped publishing
StreamMetadataChanged
An RTMP publisher has sent in new stream metadata information
NewVideoData
An RTMP publisher has sent in new video data
NewAudioData
An RTMP publisher has sent in new audio data
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for RtmpEndpointPublisherMessage
impl !RefUnwindSafe for RtmpEndpointPublisherMessage
impl Send for RtmpEndpointPublisherMessage
impl Sync for RtmpEndpointPublisherMessage
impl Unpin for RtmpEndpointPublisherMessage
impl !UnwindSafe for RtmpEndpointPublisherMessage
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.