webrtc_streaming_actix/
messages.rs1use bytes::BytesMut;
2use retty::transport::TransportContext;
3use std::time::Instant;
4use sctp::ReliabilityType;
5
6#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7pub(crate) enum DataChannelMessageType {
8 None,
9 Control,
10 Binary,
11 Text,
12}
13
14#[derive(Debug)]
15pub(crate) struct DataChannelMessageParams {
16 pub(crate) unordered: bool,
17 pub(crate) reliability_type: ReliabilityType,
18 pub(crate) reliability_parameter: u32,
19}
20
21#[derive(Debug, Clone, Eq, PartialEq)]
22pub(crate) enum DataChannelEvent {
23 Open,
24 Message(BytesMut),
25 Close,
26}
27
28#[derive(Debug)]
29pub struct DataChannelMessage {
30 pub(crate) association_handle: usize,
31 pub(crate) stream_id: u16,
32 pub(crate) data_message_type: DataChannelMessageType,
33 pub(crate) params: Option<DataChannelMessageParams>,
34 pub(crate) payload: BytesMut,
35}
36
37#[derive(Debug)]
38pub struct ApplicationMessage {
39 pub(crate) association_handle: usize,
40 pub(crate) stream_id: u16,
41 pub(crate) data_channel_event: DataChannelEvent,
42}
43
44#[derive(Debug)]
45pub enum STUNMessageEvent {
46 Raw(BytesMut),
47 Stun(stun::message::Message),
48}
49
50#[derive(Debug)]
51pub enum DTLSMessageEvent {
52 Raw(BytesMut),
53 Sctp(DataChannelMessage),
54 DataChannel(ApplicationMessage),
55}
56
57#[derive(Debug)]
58pub enum RTPMessageEvent {
59 Raw(BytesMut),
60 Rtp(rtp::packet::Packet),
61 Rtcp(Vec<Box<dyn rtcp::packet::Packet>>),
62}
63
64#[derive(Debug)]
65pub enum MessageEvent {
66 Stun(STUNMessageEvent),
67 Dtls(DTLSMessageEvent),
68 Rtp(RTPMessageEvent),
69}
70
71pub struct TaggedMessageEvent {
72 pub now: Instant,
73 pub transport: TransportContext,
74 pub message: MessageEvent,
75}