From 1edf777e67d36ada253753135cd670de6230961e Mon Sep 17 00:00:00 2001 From: Lukas Volf Date: Tue, 30 Dec 2025 17:41:09 +0100 Subject: [PATCH 1/2] B Fixed stream locking #150 --- RTSP/RTSPListener.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/RTSP/RTSPListener.cs b/RTSP/RTSPListener.cs index 6de44f7..5e2626c 100644 --- a/RTSP/RTSPListener.cs +++ b/RTSP/RTSPListener.cs @@ -252,7 +252,17 @@ public bool SendMessage(RtspMessage message) } _logger.LogDebug("Send Message\n {message}", message); - message.SendTo(_stream); + + writeSemaphoreSlim.Wait(); + try + { + message.SendTo(_stream); + } + finally + { + writeSemaphoreSlim.Release(); + } + return true; } From 4ccb8e8990d1793a5403729e07a0d7723dcd6759 Mon Sep 17 00:00:00 2001 From: Lukas Volf Date: Thu, 1 Jan 2026 17:48:51 +0100 Subject: [PATCH 2/2] F Added RTP type parsing from SDP --- RTSP/Sdp/Media.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/RTSP/Sdp/Media.cs b/RTSP/Sdp/Media.cs index 6253056..dbd11df 100644 --- a/RTSP/Sdp/Media.cs +++ b/RTSP/Sdp/Media.cs @@ -23,6 +23,15 @@ public Media(string mediaString) }; } + if(parts.Length >= 3) + { + RtpType = parts[2]; + } + else + { + RtpType = "RTP/AVP"; + } + if (parts.Length >= 4) { if (int.TryParse(parts[3], NumberStyles.Integer, CultureInfo.InvariantCulture, out int pt)) @@ -47,6 +56,8 @@ public enum MediaTypes { video, audio, text, application, message, unknown }; public int PayloadType { get; set; } + public string RtpType { get; set; } + public IList Attributs { get; } = []; } }