GNOME Bugzilla – Bug 788434
bin: iterate_sorted: Ensure sources are always returned last
Last modified: 2017-10-03 06:10:10 UTC
See patch message
Created attachment 360789 [details] [review] bin: iterate_sorted: Ensure sources are always returned last 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
Nice one, good catch.
Comment on attachment 360789 [details] [review] bin: iterate_sorted: Ensure sources are always returned last commit ebad8c0094597c98447d8afb4ba73a757621359f (HEAD -> master, origin/master, origin/HEAD) Author: Edward Hervey <edward@centricular.com> Date: Mon Oct 2 17:59:17 2017 +0200 bin: iterate_sorted: Ensure sources are always returned last 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