Only copy the properties that can be both read and written, and are not
construct only. Similarly for child properties when a track-element is
deep copied.
if (g_strcmp0 (specs[n]->name, "parent") &&
g_strcmp0 (specs[n]->name, "timeline") &&
g_strcmp0 (specs[n]->name, "name") &&
- (specs[n]->flags & G_PARAM_READWRITE) == G_PARAM_READWRITE) {
+ (specs[n]->flags & G_PARAM_READWRITE) == G_PARAM_READWRITE &&
+ (specs[n]->flags & G_PARAM_CONSTRUCT_ONLY) == 0) {
GValue v = G_VALUE_INIT;
g_value_init (&v, specs[n]->value_type);
g_object_get_property (G_OBJECT (self), specs[n]->name, &v);
ges_track_element_list_children_properties (GES_TRACK_ELEMENT (element),
&n_specs);
for (n = 0; n < n_specs; ++n) {
- if (!(specs[n]->flags & G_PARAM_WRITABLE))
+ if ((specs[n]->flags & G_PARAM_READWRITE) != G_PARAM_READWRITE)
+ continue;
+ if (specs[n]->flags & G_PARAM_CONSTRUCT_ONLY)
continue;
g_value_init (&val, specs[n]->value_type);
ges_track_element_get_child_property_by_pspec (GES_TRACK_ELEMENT (element),