summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/gl/gstglsinkbin.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/ext/gl/gstglsinkbin.c b/ext/gl/gstglsinkbin.c
index 02511f56d..00164f284 100644
--- a/ext/gl/gstglsinkbin.c
+++ b/ext/gl/gstglsinkbin.c
@@ -343,6 +343,7 @@ gst_gl_sink_bin_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec)
{
GstGLSinkBin *self = GST_GL_SINK_BIN (object);
+ GParamSpec *sink_pspec;
switch (prop_id) {
case PROP_SINK:
@@ -356,8 +357,17 @@ gst_gl_sink_bin_set_property (GObject * object, guint prop_id,
g_object_set_property (G_OBJECT (self->balance), pspec->name, value);
break;
default:
- if (self->sink)
- g_object_set_property (G_OBJECT (self->sink), pspec->name, value);
+ if (self->sink) {
+ sink_pspec =
+ g_object_class_find_property (G_OBJECT_GET_CLASS (self->sink),
+ pspec->name);
+ if (sink_pspec
+ && G_PARAM_SPEC_TYPE (sink_pspec) == G_PARAM_SPEC_TYPE (pspec)) {
+ g_object_set_property (G_OBJECT (self->sink), pspec->name, value);
+ } else {
+ GST_INFO ("Failed to set unmatched property %s", pspec->name);
+ }
+ }
break;
}
}