GNOME Bugzilla – Bug 382223
[decodebin] more delayed linking
Last modified: 2006-12-07 11:39:37 UTC
Seems like the code is there to handle delayed linking in the case of unfixed caps.
Created attachment 77627 [details] [review] patch t handle more delayed caps cases This patch calls the code path that handles delayed pad linking in the case of ANY caps on a new pad. Also fixes some comments and debugging info.
I was going to say do you think "(gst_caps_get_size (caps) != 1)" should become !gst_caps_is_fixed ()", since it's possible we might just have a range, but then I realised that in that case it must be a raw-range anyway to have any chance of ever succeeding anyway, and then the pad will be published already in the other if branch... so commit away.
* gst/playback/gstdecodebin.c: (close_pad_link): Fix #382223, add more dynamic caps handling.
Created attachment 77657 [details] [review] don't register dynamic elements multiple times When a (broken) element both has dynamic pads and delayed caps, make sure we don't register the element as dynamic multiple times.
Created attachment 77673 [details] [review] Better patch When an element has both dynamic pads and delayed caps, add an entry for each, but differentiate them by only setting the element var in the GstDynamic entry on dynamic element entries, and the pad var on delayed-caps pads. Use a new method to determine whether an element has just become dynamic again in the unlinked handler.