Skip to content
  • Jan Schmidt's avatar
    gstvalue: Add GstFlagSet type · f9e5178d
    Jan Schmidt authored
    GstFlagSet is a new type designed for negotiating sets
    of boolean capabilities flags, consisting of a 32-bit
    flags bitfield and 32-bit mask field. The mask field
    indicates which of the flags bits an element needs to have
    as specific values, and which it doesn't care about.
    
    This allows efficient negotiation of arrays of boolean
    capabilities.
    
    The standard serialisation format is FLAGS:MASK, with
    flags and mask fields expressed in hexadecimal, however
    GstFlagSet has a gst_register_flagset() function, which
    associates a new GstFlagSet derived type with an existing
    GFlags gtype. When serializing a GstFlagSet with an
    associated set of GFlags, it also serializes a human-readable
    form of the flags for easier debugging.
    
    It is possible to parse a GFlags style serialisation of a
    flagset, without the hex portion on the front. ie,
    +flag1/flag2/flag3+flag4, to indicate that
    flag1 & flag4 must be set, and flag2/flag3 must be unset,
    and any other flags are don't-care.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=746373
    f9e5178d