/* This is implemented as a huge macro because we cannot pass
* va_list variables by reference on some architectures.
*/
-#define GST_PROPS_ENTRY_FILL(entry, var_args) \
+#define GST_PROPS_ENTRY_FILL(entry, var_args) \
G_STMT_START { \
entry->propstype = va_arg (var_args, GstPropsType); \
\
case GST_PROPS_STRING_TYPE: \
entry->data.string_data.string = g_strdup (va_arg (var_args, gchar*)); \
break; \
- case GST_PROPS_LIST_TYPE: \
+ case GST_PROPS_GLIST_TYPE: \
+ entry->propstype = GST_PROPS_LIST_TYPE; \
entry->data.list_data.entries = g_list_copy (va_arg (var_args, GList*)); \
break; \
default: \
entry = gst_props_alloc_entry ();
entry->propid = g_quark_from_string (name);
GST_PROPS_ENTRY_FILL (entry, var_args);
-
+
return entry;
}
GST_PROPS_VAR_TYPE, /* after this marker start the variable properties */
GST_PROPS_LIST_TYPE,
+ GST_PROPS_GLIST_TYPE,
GST_PROPS_FLOAT_RANGE_TYPE,
GST_PROPS_INT_RANGE_TYPE,
#define GST_STR_FOURCC(f) (guint32)(((f)[0])|((f)[1]<<8)|((f)[2]<<16)|((f)[3]<<24))
#define GST_PROPS_LIST(a...) GST_PROPS_LIST_TYPE,##a,NULL
+#define GST_PROPS_GLIST(a) GST_PROPS_GLIST_TYPE,(a)
#define GST_PROPS_INT(a) GST_PROPS_INT_TYPE,(a)
#define GST_PROPS_INT_RANGE(a,b) GST_PROPS_INT_RANGE_TYPE,(a),(b)
#define GST_PROPS_FLOAT(a) GST_PROPS_FLOAT_TYPE,(a)