Skip to content
  • Edward Hervey's avatar
    bin: iterate_sorted: Ensure sources are always returned last · a4838770
    Edward Hervey authored and Edward Hervey's avatar Edward Hervey committed
    For linked elements, the resulting gst_bin_iterate_sorted() will
    properly return elements from sink to sources.
    
    If we have some elements that are not linked, we *still* want to
    ensure that we return:
    * In priority any sinks
    * Last of all any sources
    * And in between any element which is neither source nor sink
    
    For this to work, when looking for the next candidate element,
    not only check the degree order, but if there are two candidates
    with the same degree order, prefer the non-source one.
    
    Amongst other things, this fixes the case where we activating a
    bin containing unlinked sources and other elements. Without this
    we could end up activating sources (which might start adding pads
    to be linked) before other (to which those new source element pads
    might be linked) are not activated
    
    https://bugzilla.gnome.org/show_bug.cgi?id=788434
    a4838770