mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-03-28 20:05:38 +00:00
bin: relax the source element check
When there is a sink inside a bin, the SINK flag is set on the bin. When we are trying to iterate the source elements, also include the bins with the SINK flag because they could also contain source elements, in which case they are also a source. This solves the case where sending an EOS to a pipeline didn't get dispatched to all source elements. See #625597
This commit is contained in:
parent
9f87f57a82
commit
57cc780c45
1 changed files with 4 additions and 3 deletions
|
@ -1641,10 +1641,11 @@ bin_element_is_src (GstElement * child, GstBin * bin)
|
|||
gboolean is_src = FALSE;
|
||||
|
||||
/* we lock the child here for the remainder of the function to
|
||||
* get its name and flag safely. */
|
||||
* get its name and other info safely. */
|
||||
GST_OBJECT_LOCK (child);
|
||||
if (!GST_OBJECT_FLAG_IS_SET (child, GST_ELEMENT_IS_SINK) &&
|
||||
!child->numsinkpads) {
|
||||
if (child->numsinkpads == 0) {
|
||||
/* rough check.. We could improve this by checking if there are no sinkpad
|
||||
* templates available. */
|
||||
is_src = TRUE;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue