atm0s_media_server_transport/
event.rs

1use crate::{packet::MediaPacket, TrackId, TrackMeta, TrackName, TransportStats};
2
3#[derive(PartialEq, Eq, Debug)]
4pub enum RemoteTrackIncomingEvent<RR> {
5    MediaPacket(MediaPacket),
6    Rpc(RR),
7}
8
9#[derive(PartialEq, Eq, Debug, Clone)]
10pub enum RequestKeyframeKind {
11    Pli,
12    Fir,
13}
14
15#[derive(PartialEq, Eq, Debug)]
16pub enum LocalTrackIncomingEvent<RL> {
17    RequestKeyFrame(RequestKeyframeKind),
18    Rpc(RL),
19}
20
21#[derive(PartialEq, Eq, Debug)]
22pub enum TransportStateEvent {
23    Connected,
24    Reconnecting,
25    Reconnected,
26    Disconnected,
27}
28
29#[derive(PartialEq, Eq, Debug)]
30pub enum TransportIncomingEvent<RE, RR, RL> {
31    State(TransportStateEvent),
32    Continue,
33    RemoteTrackAdded(TrackName, TrackId, TrackMeta),
34    RemoteTrackEvent(TrackId, RemoteTrackIncomingEvent<RR>),
35    RemoteTrackRemoved(TrackName, TrackId),
36    LocalTrackAdded(TrackName, TrackId, TrackMeta),
37    LocalTrackEvent(TrackId, LocalTrackIncomingEvent<RL>),
38    LocalTrackRemoved(TrackName, TrackId),
39    Rpc(RE),
40    Stats(TransportStats),
41    EgressBitrateEstimate(u64),
42}
43
44#[derive(PartialEq, Eq, Debug)]
45pub enum RemoteTrackOutgoingEvent<RR> {
46    RequestKeyFrame(RequestKeyframeKind),
47    Rpc(RR),
48}
49
50#[derive(PartialEq, Eq, Debug)]
51pub enum LocalTrackOutgoingEvent<RL> {
52    MediaPacket(MediaPacket),
53    Rpc(RL),
54}
55
56#[derive(PartialEq, Eq, Debug)]
57pub enum TransportOutgoingEvent<RE, RR, RL> {
58    RemoteTrackEvent(TrackId, RemoteTrackOutgoingEvent<RR>),
59    LocalTrackEvent(TrackId, LocalTrackOutgoingEvent<RL>),
60    ConfigEgressBitrate { current: u32, desired: u32 },
61    LimitIngressBitrate(u32),
62    Rpc(RE),
63}