Skip to main content

o_sfu_core/engine/
mod.rs

1//! Private media engine implementation tree.
2//!
3//! This tree owns the room engine, media transport facade, RTC worker implementation,
4//! recording hooks, diagnostics projections, metrics bridge and source policy
5//! machinery used below the public `o-sfu-core` front door.
6//!
7//! The media engine has to coordinate state that is too concrete for the pure
8//! router and too low level for the server shell: room membership, publish or
9//! subscribe transactions, transport cleanup, packet sinks, relay setup, packet-
10//! loop observations and room media policy. Keeping those pieces together
11//! lets them share media-engine state without making the server crate import
12//! RTC workers or room-state internals.
13
14pub mod media_transport;
15mod observability;
16pub mod packet_sink_registry;
17pub mod recording;
18pub mod room;
19pub mod source_model;
20pub mod sync;
21
22pub mod metrics {
23    pub use super::observability::metrics::*;
24    pub(crate) use super::observability::{source_selection_kind, transport_health_state};
25}
26
27pub use o_sfu_model::{
28    AvailableFeatures, JsonPayload, PeerSnapshot, RecordingOptions, RecordingState,
29    RecordingStateUpdate, StopCode, UserId, UserInfo, UserPermissions, VideoLayoutIntent,
30    WebSocketCloseCode,
31};
32#[cfg(any(test, feature = "testing-transport"))]
33pub use source_model::test_support::TestSourceKind;
34
35pub use crate::{ConnectionId, MediaWorkerId, RoomInstanceId};