atm0s_media_server_transport/
event.rs1use 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}