webrtc: sink: avoid recursive locking of the session

Drop the session lock before calling end_session and finalize session
if the consumer refuses the media or the provided payload in not valid

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2322>
This commit is contained in:
Taruntej Kanakamalla 2025-06-26 23:44:06 +05:30 committed by GStreamer Marge Bot
parent 77e45a6f00
commit ab50ef2fb7

View file

@ -3835,6 +3835,8 @@ impl BaseWebRTCSink {
media_idx,
media_str
);
drop(session);
if let Some(_session) = state.end_session(&self.obj(), session_id) {
drop(state);
let settings = self.settings.lock().unwrap();
@ -3862,6 +3864,7 @@ impl BaseWebRTCSink {
session_id,
);
drop(session);
if let Some(_session) = state.end_session(&self.obj(), session_id) {
drop(state);
let settings = self.settings.lock().unwrap();