diff --git a/net/webrtc/src/signaller/imp.rs b/net/webrtc/src/signaller/imp.rs index 924c067ae..b44552008 100644 --- a/net/webrtc/src/signaller/imp.rs +++ b/net/webrtc/src/signaller/imp.rs @@ -1,8 +1,7 @@ // SPDX-License-Identifier: MPL-2.0 -use crate::webrtcsink::WebRTCSink; +use crate::webrtcsink::{RUNTIME, WebRTCSink}; use anyhow::{anyhow, Error}; -use tokio::runtime; use tokio::task; use async_tungstenite::tungstenite::Message as WsMessage; use futures::channel::mpsc; @@ -25,14 +24,6 @@ static CAT: Lazy = Lazy::new(|| { ) }); -static RUNTIME: Lazy = Lazy::new(|| { - runtime::Builder::new_multi_thread() - .enable_all() - .worker_threads(1) - .build() - .unwrap() -}); - #[derive(Default)] struct State { /// Sender for the websocket messages diff --git a/net/webrtc/src/webrtcsink/imp.rs b/net/webrtc/src/webrtcsink/imp.rs index 22ba814a1..071d68a2d 100644 --- a/net/webrtc/src/webrtcsink/imp.rs +++ b/net/webrtc/src/webrtcsink/imp.rs @@ -9,7 +9,6 @@ use gst_utils::StreamProducer; use gst_video::subclass::prelude::*; use gst_webrtc::WebRTCDataChannel; -use tokio::runtime; use futures::prelude::*; use anyhow::{anyhow, Error}; @@ -20,6 +19,7 @@ use std::sync::Mutex; use super::homegrown_cc::CongestionController; use super::{WebRTCSinkCongestionControl, WebRTCSinkError, WebRTCSinkMitigationMode}; +use crate::webrtcsink::RUNTIME; use crate::signaller::Signaller; use std::collections::BTreeMap; @@ -31,14 +31,6 @@ static CAT: Lazy = Lazy::new(|| { ) }); -static RUNTIME: Lazy = Lazy::new(|| { - runtime::Builder::new_multi_thread() - .enable_all() - .worker_threads(1) - .build() - .unwrap() -}); - const CUDA_MEMORY_FEATURE: &str = "memory:CUDAMemory"; const GL_MEMORY_FEATURE: &str = "memory:GLMemory"; const NVMM_MEMORY_FEATURE: &str = "memory:NVMM"; diff --git a/net/webrtc/src/webrtcsink/mod.rs b/net/webrtc/src/webrtcsink/mod.rs index b0daccf4c..1446112f2 100644 --- a/net/webrtc/src/webrtcsink/mod.rs +++ b/net/webrtc/src/webrtcsink/mod.rs @@ -10,6 +10,8 @@ use gst::glib; use gst::prelude::*; use gst::subclass::prelude::*; use std::error::Error; +use tokio::runtime; +use once_cell::sync::Lazy; mod homegrown_cc; mod imp; @@ -165,3 +167,11 @@ pub fn register(plugin: &gst::Plugin) -> Result<(), glib::BoolError> { WebRTCSink::static_type(), ) } + +pub static RUNTIME: Lazy = Lazy::new(|| { + runtime::Builder::new_multi_thread() + .enable_all() + .worker_threads(1) + .build() + .unwrap() +});