From 876239578de23bfd729c40cd16faafaefa4a3197 Mon Sep 17 00:00:00 2001 From: jinfeng Date: Mon, 4 Aug 2025 15:14:07 +0800 Subject: [PATCH] Fix: do not dispose sourceImpl when multi receivers connected --- .../Runtime/Scripts/AudioStreamSender.cs | 7 +++++-- .../Runtime/Scripts/VideoStreamSender.cs | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/com.unity.renderstreaming/Runtime/Scripts/AudioStreamSender.cs b/com.unity.renderstreaming/Runtime/Scripts/AudioStreamSender.cs index 59882ab84..ddd78fa40 100644 --- a/com.unity.renderstreaming/Runtime/Scripts/AudioStreamSender.cs +++ b/com.unity.renderstreaming/Runtime/Scripts/AudioStreamSender.cs @@ -311,8 +311,11 @@ void _OnStartedStream(string connectionId) void _OnStoppedStream(string connectionId) { - m_sourceImpl?.Dispose(); - m_sourceImpl = null; + if (Transceivers.Count <= 0) + { + m_sourceImpl?.Dispose(); + m_sourceImpl = null; + } } internal override WaitForCreateTrack CreateTrack() diff --git a/com.unity.renderstreaming/Runtime/Scripts/VideoStreamSender.cs b/com.unity.renderstreaming/Runtime/Scripts/VideoStreamSender.cs index 9237cdd76..08006b6df 100644 --- a/com.unity.renderstreaming/Runtime/Scripts/VideoStreamSender.cs +++ b/com.unity.renderstreaming/Runtime/Scripts/VideoStreamSender.cs @@ -496,8 +496,11 @@ private protected override void OnDestroy() void _OnStoppedStream(string connectionId) { - m_sourceImpl?.Dispose(); - m_sourceImpl = null; + if (Transceivers.Count <= 0) + { + m_sourceImpl?.Dispose(); + m_sourceImpl = null; + } } internal override WaitForCreateTrack CreateTrack()