o_sfu_core/engine/media_transport/rtc/
mod.rs1use std::{sync::Arc, time::Duration};
29
30use crate::{RtcTcpConfig, SessionBitrateLimits, VideoBitrateLimits};
31
32#[cfg(test)]
33#[expect(non_snake_case, reason = "test modules map to local TESTS directories")]
34mod TESTS;
35#[cfg(feature = "internal-benchmarks")]
36#[path = "TESTS/benchmark_support/mod.rs"]
37pub mod benchmark_support;
38mod bootstrap;
39mod codec;
40mod commands;
41mod consumer_egress;
42mod control;
43mod egress;
44#[cfg(any(test, fuzzing))]
45#[path = "TESTS/fuzz_support/mod.rs"]
46pub(crate) mod fuzz_support;
47mod packet_loop;
48mod recovery;
49mod state;
50mod tcp_acceptor;
51#[cfg(any(test, feature = "testing-transport", feature = "internal-benchmarks"))]
52#[path = "TESTS/test_support/mod.rs"]
53pub mod test_support;
54mod worker;
55
56pub(super) use codec::RtpProfile;
57#[cfg(any(test, fuzzing))]
58pub use codec::client_rtp_capabilities_from_answer;
59pub(super) use commands::{ParsedSessionAnswer, RtcSessionOffer};
60pub use commands::{
61 RtcWorkerCommand, RtcWorkerResponse, WorkerMediaControlBatch, WorkerMediaControlBatchOutcome,
62};
63pub(super) use tcp_acceptor::TcpAcceptor;
64pub use worker::{RtcWorker, WorkerAssignment};
65
66#[cfg(any(test, feature = "testing-transport"))]
67pub use self::packet_loop::forwarded_packet::ForwardedPacket;
68pub(super) use self::state::{route_control::PacketLayerGate, ufrag_worker_map::UfragWorkerMap};
69
70#[derive(Clone, Debug)]
71struct RtcWorkerConfig {
72 bitrate_limits: SessionBitrateLimits,
73 video_bitrate_limits: VideoBitrateLimits,
74 profile: Arc<RtpProfile>,
75 media_quality_interval: Option<Duration>,
76 media_id_base: u64,
77 rtc_tcp_config: Option<RtcTcpConfig>,
78}