GNOME Bugzilla – Bug 530737
[GstBaseTransform] does not preserve caps order in _getcaps function
Last modified: 2009-04-15 23:50:13 UTC
When being asked the caps for a pad basetransform will obtain the peer caps, filter them against corresponding template, transform them, filter them again with the corresponding template. This last filtering operation is not preserving caps order in a reliable way. So say you have peer caps supporting only YUY2, once filtered it's still YUY2, transform gets YUY2 first plus everything we can transform to, when filtering against template it's pure lottery YUY2 can stay first but can go also go last. A potential way to fix this problem would be to introduce a caps intersection function which preserves the order of the first caps and we could use that function when filtering against templates so that template order is considered unimportant.
The comments of gst_caps_intersect() say, that it already tries to preserve caps order as good as possible to we should probably fix it there already. Not sure how, though :)
Can we have an example app here that fails to do what you expect?
Julien: ping
No response in almost a year, closing.