diff options
| author | Marvin W <git@larma.de> | 2025-04-09 20:02:55 +0200 |
|---|---|---|
| committer | Marvin W <git@larma.de> | 2025-04-09 20:05:13 +0200 |
| commit | 50eeb2f16dfa4342d50086404da068f5426cbe3c (patch) | |
| tree | 3738913a2661af3d738fc5ce14d76497c6a29b5e /plugins/rtp/src/stream.vala | |
| parent | 75b5aa91716e962ff38a35f7bb21aab384e35232 (diff) | |
RTP: Tear down most of GStreamer while not in a call.
This includes #1679 and works around an upstream bug in pipewire causing #1685
Diffstat (limited to 'plugins/rtp/src/stream.vala')
| -rw-r--r-- | plugins/rtp/src/stream.vala | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/plugins/rtp/src/stream.vala b/plugins/rtp/src/stream.vala index 94549856..aa2b080d 100644 --- a/plugins/rtp/src/stream.vala +++ b/plugins/rtp/src/stream.vala @@ -454,7 +454,8 @@ public class Dino.Plugins.Rtp.Stream : Xmpp.Xep.JingleRtp.Stream { } send_rtp.set_locked_state(true); send_rtp.set_state(Gst.State.NULL); - pipe.remove(send_rtp); + // This happens async, so pipe might be gone by now. + if (pipe != null) pipe.remove(send_rtp); send_rtp = null; debug("Stopped sending RTP for %u", rtpid); } @@ -462,7 +463,8 @@ public class Dino.Plugins.Rtp.Stream : Xmpp.Xep.JingleRtp.Stream { private void on_send_rtcp_eos() { send_rtcp.set_locked_state(true); send_rtcp.set_state(Gst.State.NULL); - pipe.remove(send_rtcp); + // This happens async, so pipe might be gone by now. + if (pipe != null) pipe.remove(send_rtcp); send_rtcp = null; debug("Stopped sending RTCP for %u", rtpid); } |
