decodebin3: check and send selected stream message even if no decoder is selected

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7579>
This commit is contained in:
Elliot Chen 2024-09-27 19:45:06 +09:00 committed by GStreamer Marge Bot
parent 50a27da3ad
commit 6c830c5bd3

View file

@ -3172,20 +3172,23 @@ mq_slot_check_reconfiguration (MultiQueueSlot * slot)
SELECTION_UNLOCK (dbin); SELECTION_UNLOCK (dbin);
if (msg) if (msg)
gst_element_post_message ((GstElement *) slot->dbin, msg); gst_element_post_message ((GstElement *) slot->dbin, msg);
if (no_more_streams) if (no_more_streams) {
GST_ELEMENT_ERROR (slot->dbin, CORE, MISSING_PLUGIN, (NULL), GST_ELEMENT_ERROR (slot->dbin, CORE, MISSING_PLUGIN, (NULL),
("No suitable plugins found")); ("No suitable plugins found"));
else return;
}
GST_ELEMENT_WARNING (slot->dbin, CORE, MISSING_PLUGIN, (NULL), GST_ELEMENT_WARNING (slot->dbin, CORE, MISSING_PLUGIN, (NULL),
("Some plugins were missing")); ("Some plugins were missing"));
} else { SELECTION_LOCK (dbin);
}
GstMessage *selection_msg = is_selection_done (dbin); GstMessage *selection_msg = is_selection_done (dbin);
/* All good, we reconfigured the associated output. Check if we're done with /* We reconfigured the associated output. Check if we're done with
* the current selection */ * the current selection */
SELECTION_UNLOCK (dbin); SELECTION_UNLOCK (dbin);
if (selection_msg) if (selection_msg)
gst_element_post_message ((GstElement *) slot->dbin, selection_msg); gst_element_post_message ((GstElement *) slot->dbin, selection_msg);
}
} }
static void static void