Skip to main content

o_sfu_core/engine/source_model/
diagnostics.rs

1use crate::Bitrate;
2
3/// Latest receiver-level budget facts attached to a source selection.
4#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
5pub struct ReceiverVideoBudgetDiagnostics {
6    latest_receiver_bandwidth: Option<Bitrate>,
7    selected_video_budget: Option<Bitrate>,
8    active_video_route_count: usize,
9    selected_video_bitrate: Bitrate,
10}
11
12impl ReceiverVideoBudgetDiagnostics {
13    #[must_use]
14    pub const fn new(
15        latest_receiver_bandwidth: Option<Bitrate>,
16        selected_video_budget: Option<Bitrate>,
17        active_video_route_count: usize,
18        selected_video_bitrate: Bitrate,
19    ) -> Self {
20        Self {
21            latest_receiver_bandwidth,
22            selected_video_budget,
23            active_video_route_count,
24            selected_video_bitrate,
25        }
26    }
27
28    #[must_use]
29    pub const fn latest_receiver_bandwidth(self) -> Option<Bitrate> {
30        self.latest_receiver_bandwidth
31    }
32
33    #[must_use]
34    pub const fn selected_video_budget(self) -> Option<Bitrate> {
35        self.selected_video_budget
36    }
37
38    #[must_use]
39    pub const fn active_video_route_count(self) -> usize {
40        self.active_video_route_count
41    }
42
43    #[must_use]
44    pub const fn selected_video_bitrate(self) -> Bitrate {
45        self.selected_video_bitrate
46    }
47}