+ if (is_child_proxy) {
+ guint c, n_children;
+ GObject *child;
+
+ n_children = gst_child_proxy_get_children_count ((GstChildProxy *) preset);
+ for (c = 0; c < n_children; c++) {
+ child = gst_child_proxy_get_child_by_index ((GstChildProxy *) preset, c);
+ gclass = G_OBJECT_CLASS (GST_ELEMENT_GET_CLASS (child));
+
+ props = g_object_class_list_properties (gclass, &n_props);
+ if (props) {
+ /* resize property name array */
+ result = g_renew (gchar *, result, j + n_props + 1);
+
+ /* now filter out the properties that we can use for presets */
+ GST_DEBUG_OBJECT (preset, " filtering properties: %u", n_props);
+ for (i = 0; i < n_props; i++) {
+ if (preset_skip_property (props[i]))
+ continue;
+ GST_DEBUG_OBJECT (preset, " using: %s::%s",
+ GST_OBJECT_NAME (child), props[i]->name);
+ result[j++] = g_strdup_printf ("%s::%s", GST_OBJECT_NAME (child),
+ props[i]->name);
+ }
+ g_free (props);
+ }