char/live.umm.gay
git clone https://git.t4t.associates/char/live.umm.gay
11496ff
main
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! [ 20NetworkType :: Tcp4 , 21NetworkType :: Tcp6 , 22NetworkType :: Udp4 , 23NetworkType :: Udp6 , 24]); 25 26// TODO: Set up UDP muxing? 27Ok (()) 28} 29 30pub fn setup_webrtc () ->Result < WebRTC > { 31let 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 37let interceptor_registry =InterceptorRegistry :: new (); 38let interceptor_registry = 39register_default_interceptors ( interceptor_registry, & mut media_engine) 40. into_diagnostic () 41. wrap_err ( "Failed to register default interceptors." ) ?; 42 43let mut setting_engine =SettingEngine :: default (); 44setup_ice ( & mut setting_engine) ?; 45 46let api =APIBuilder :: new () 47. with_media_engine ( media_engine) 48. with_interceptor_registry ( interceptor_registry) 49. with_setting_engine ( setting_engine) 50. build (); 51 52Ok ( api) 53} 54 55pub fn create_rtc_config () ->RTCConfiguration { 56RTCConfiguration { 57ice_servers : vec! [ 58RTCIceServer { 59urls : vec! [ "stun:stun.cloudflare.com:3478" . into ()], 60 ..Default :: default () 61}, 62RTCIceServer { 63urls : vec! [ "stun:stun.l.google.com:19302" . into ()], 64 ..Default :: default () 65}, 66], 67 ..Default :: default () 68} 69}