diff --git a/gst/gstprops.c b/gst/gstprops.c index 4902acb74c..db36867b43 100644 --- a/gst/gstprops.c +++ b/gst/gstprops.c @@ -187,7 +187,7 @@ props_find_func (gconstpointer a, /* 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); \ \ @@ -215,7 +215,8 @@ G_STMT_START { \ 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: \ @@ -511,7 +512,7 @@ gst_props_entry_newv (const gchar *name, va_list var_args) entry = gst_props_alloc_entry (); entry->propid = g_quark_from_string (name); GST_PROPS_ENTRY_FILL (entry, var_args); - + return entry; } diff --git a/gst/gstprops.h b/gst/gstprops.h index ec4ae23f2f..29d52015cc 100644 --- a/gst/gstprops.h +++ b/gst/gstprops.h @@ -49,6 +49,7 @@ typedef enum { 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, @@ -59,6 +60,7 @@ typedef enum { #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)