webrtcsink: fix locking order

settings is always to be locked before state

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2215>
This commit is contained in:
Mathieu Duponchelle 2025-04-24 20:41:11 +02:00
parent 7cf2736a15
commit 30a0b155fc

View file

@ -4268,13 +4268,14 @@ impl BaseWebRTCSink {
let codecs = if !state.codecs.is_empty() {
Codecs::from_map(&state.codecs)
} else {
drop(state);
let settings = self.settings.lock().unwrap();
let codecs = Codecs::list_encoders(
settings.video_caps.iter().chain(settings.audio_caps.iter()),
);
state = self.state.lock().unwrap();
state.codecs = codecs.to_map();
codecs
};