Cost of checking flagsets in `gst_value_intersect()`
In gst_value_intersect()
and gst_value_can_intersect()
, if all previous intersect/checks failed we will try to see if a "flagset" comparision is needed.
The problem is that since GST_TYPE_FLAG_SET
is not a fundamental type, we can't use the fast-path and therefore end up doing the "expensive" G_TYPE_CHECK_VALUE_TYPE
.
In the capsnego benchmark, in terms of instruction calls, this amounts to ~20% of gst_value_intersect()
and ~11% of the overall capsnego cost.
It might make sense to have a small internal array of registered flag set types to do a much faster type check.