char/live.umm.gay

git clone https://git.t4t.associates/char/live.umm.gay

videogame hacker[wish-server-rs] Add endpoint to see view count11496ff

main
2.0 KiB69 linesraw
1use miette::{Context, IntoDiagnostic, Result};
2
3use webrtc::{
4    api::{
5        interceptor_registry::register_default_interceptors, media_engine::MediaEngine,
6        setting_engine::SettingEngine, APIBuilder, API as WebRTC,
7    },
8    ice::network_type::NetworkType,
9    ice_transport::ice_server::RTCIceServer,
10    interceptor::registry::Registry as InterceptorRegistry,
11    peer_connection::configuration::RTCConfiguration,
12};
13
14pub mod channel_info;
15pub mod whep;
16pub mod whip;
17
18fn setup_ice(setting_engine: &mut SettingEngine) -> Result<()> {
19    setting_engine.set_network_types(vec![
20        NetworkType::Tcp4,
21        NetworkType::Tcp6,
22        NetworkType::Udp4,
23        NetworkType::Udp6,
24    ]);
25
26    // TODO: Set up UDP muxing?
27    Ok(())
28}
29
30pub fn setup_webrtc() -> Result<WebRTC> {
31    let mut media_engine = MediaEngine::default();
32    media_engine
33        .register_default_codecs()
34        .into_diagnostic()
35        .wrap_err("Failed to register default media engine codecs.")?;
36
37    let interceptor_registry = InterceptorRegistry::new();
38    let interceptor_registry =
39        register_default_interceptors(interceptor_registry, &mut media_engine)
40            .into_diagnostic()
41            .wrap_err("Failed to register default interceptors.")?;
42
43    let mut setting_engine = SettingEngine::default();
44    setup_ice(&mut setting_engine)?;
45
46    let api = APIBuilder::new()
47        .with_media_engine(media_engine)
48        .with_interceptor_registry(interceptor_registry)
49        .with_setting_engine(setting_engine)
50        .build();
51
52    Ok(api)
53}
54
55pub fn create_rtc_config() -> RTCConfiguration {
56    RTCConfiguration {
57        ice_servers: vec![
58            RTCIceServer {
59                urls: vec!["stun:stun.cloudflare.com:3478".into()],
60                ..Default::default()
61            },
62            RTCIceServer {
63                urls: vec!["stun:stun.l.google.com:19302".into()],
64                ..Default::default()
65            },
66        ],
67        ..Default::default()
68    }
69}