diff --git a/gstreamer/src/clock.rs b/gstreamer/src/clock.rs index 9182ba202..9caa12d3a 100644 --- a/gstreamer/src/clock.rs +++ b/gstreamer/src/clock.rs @@ -117,7 +117,10 @@ impl ClockId { let (sender, receiver) = mpsc::unbounded(); self.wait_async(move |_clock, jitter, id| { - let _ = sender.unbounded_send((jitter, id.clone())); + if sender.unbounded_send((jitter, id.clone())).is_err() { + // Unschedule any future calls if the receiver end is disconnected + id.unschedule(); + } })?; Ok(Box::pin(receiver))