gstvalue: Add GstFlagSet type
authorJan Schmidt <jan@centricular.com>
Mon, 25 May 2015 06:23:33 +0000 (16:23 +1000)
committerJan Schmidt <jan@centricular.com>
Mon, 25 May 2015 06:23:33 +0000 (16:23 +1000)
commitf9e5178dd16c46029e645561dc7d519c3496bfd3
tree63a22a248da54bb2a12536b20c4348421bd3d2a4
parent99d3179634433a2b680c6e9cc8de3231146a648a
gstvalue: Add GstFlagSet type

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
docs/gst/gstreamer-sections.txt
gst/gststructure.c
gst/gststructure.h
gst/gstvalue.c
gst/gstvalue.h
tests/check/gst/capslist.h
tests/check/gst/gstcaps.c
tests/check/gst/gststructure.c
tests/check/gst/gstvalue.c
win32/common/libgstreamer.def