summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client-native-lib/src/lib.rs3
-rw-r--r--client-native-lib/src/peer.rs28
2 files changed, 30 insertions, 1 deletions
diff --git a/client-native-lib/src/lib.rs b/client-native-lib/src/lib.rs
index 2e9aed4..1380688 100644
--- a/client-native-lib/src/lib.rs
+++ b/client-native-lib/src/lib.rs
@@ -35,6 +35,7 @@ pub struct Config {
pub(crate) fn build_api() -> webrtc::api::API {
let mut media_engine = MediaEngine::default();
media_engine.register_default_codecs().unwrap();
+
let mut registry = Registry::new();
registry = register_default_interceptors(registry, &mut media_engine).unwrap();
APIBuilder::new()
@@ -59,7 +60,7 @@ pub trait EventHandler: Send + Sync + 'static {
resource: &ProvideInfo,
channel: TransportChannel,
) -> DynFut<()>;
- fn on_relay(&self, peer: Arc<Peer>, message: &RelayMessage) -> DynFut<()> {
+ fn on_relay(&self, _peer: Arc<Peer>, _message: &RelayMessage) -> DynFut<()> {
Box::pin(async move {})
}
}
diff --git a/client-native-lib/src/peer.rs b/client-native-lib/src/peer.rs
index 82c7c94..b271318 100644
--- a/client-native-lib/src/peer.rs
+++ b/client-native-lib/src/peer.rs
@@ -102,6 +102,34 @@ impl Peer {
{
let weak = Arc::<Peer>::downgrade(&peer);
peer.peer_connection
+ .on_track(box move |track_remote, receiver| {
+ let receiver = receiver.unwrap();
+ let track_remote = track_remote.unwrap();
+ let peer = weak.upgrade().unwrap();
+ Box::pin(async move {
+ let id = &track_remote.stream_id().await;
+ if let Some(res) = peer.remote_provided.read().await.get(id) {
+ info!("track for ({:?}) '{:?}'", res.id, res.label);
+ peer.inst
+ .event_handler
+ .resource_connected(
+ peer.clone(),
+ res,
+ TransportChannel::Track(track_remote),
+ )
+ .await;
+ } else {
+ warn!("got unassociated track; stopping receiver");
+ receiver.stop().await.unwrap();
+ }
+ })
+ })
+ .await;
+ }
+
+ {
+ let weak = Arc::<Peer>::downgrade(&peer);
+ peer.peer_connection
.on_data_channel(box move |dc| {
let peer = weak.upgrade().unwrap();
Box::pin(async move {