ges: smart-mixer: Avoid video freeze on NLE stack changes

Since we support "nested compositors"[0] we were not finalizing the pads_infos
and thus not releasing the mixer pad on stack change, meaning that
the following stacks were never prerolling.

[0] https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2094

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3738>
This commit is contained in:
Thibault Saunier 2023-01-12 11:52:21 -03:00 committed by GStreamer Marge Bot
parent 3065608730
commit 18f313d317

View file

@ -341,6 +341,8 @@ _release_pad (GstElement * element, GstPad * pad)
LOCK (element); LOCK (element);
g_hash_table_remove (GES_SMART_MIXER (element)->pads_infos, pad); g_hash_table_remove (GES_SMART_MIXER (element)->pads_infos, pad);
g_hash_table_remove (GES_SMART_MIXER (element)->pads_infos, info->mixer_pad); g_hash_table_remove (GES_SMART_MIXER (element)->pads_infos, info->mixer_pad);
g_hash_table_remove (GES_SMART_MIXER (element)->pads_infos,
info->real_mixer_pad);
peer = gst_pad_get_peer (pad); peer = gst_pad_get_peer (pad);
if (peer) { if (peer) {
gst_pad_unlink (peer, pad); gst_pad_unlink (peer, pad);