diff --git a/src/VideoStreaming/gstqgcvideosinkbin.c b/src/VideoStreaming/gstqgcvideosinkbin.c index 943e66821d5bd595d0c55f052783d70519a29757..f3eeb8e6b84b233ca18fda7b05c956d232f04e71 100644 --- a/src/VideoStreaming/gstqgcvideosinkbin.c +++ b/src/VideoStreaming/gstqgcvideosinkbin.c @@ -46,6 +46,7 @@ enum { PROP_WIDGET, PROP_FORCE_ASPECT_RATIO, PROP_PIXEL_ASPECT_RATIO, + PROP_SYNC, }; #define PROP_ENABLE_LAST_SAMPLE_NAME "enable-last-sample" @@ -53,11 +54,13 @@ enum { #define PROP_WIDGET_NAME "widget" #define PROP_FORCE_ASPECT_RATIO_NAME "force-aspect-ratio" #define PROP_PIXEL_ASPECT_RATIO_NAME "pixel-aspect-ratio" +#define PROP_SYNC_NAME "sync" #define DEFAULT_ENABLE_LAST_SAMPLE TRUE #define DEFAULT_FORCE_ASPECT_RATIO TRUE #define DEFAULT_PAR_N 0 #define DEFAULT_PAR_D 1 +#define DEFAULT_SYNC TRUE static GstBinClass *parent_class; @@ -259,6 +262,13 @@ _vsb_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *psp gst_value_set_fraction(value, num, den); } while(0); break; + case PROP_SYNC: + do { + gboolean enable = FALSE; + g_object_get(G_OBJECT(vsb->qmlglsink), PROP_SYNC_NAME, &enable, NULL); + g_value_set_boolean(value, enable); + } while(0); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; @@ -285,6 +295,9 @@ _vsb_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpe case PROP_PIXEL_ASPECT_RATIO: g_object_set(G_OBJECT(vsb->qmlglsink), PROP_PIXEL_ASPECT_RATIO_NAME, gst_value_get_fraction_numerator(value), gst_value_get_fraction_denominator(value), NULL); break; + case PROP_SYNC: + g_object_set(G_OBJECT(vsb->qmlglsink), PROP_SYNC_NAME, g_value_get_boolean(value), NULL); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; @@ -357,6 +370,11 @@ _vsb_class_init(GstQgcVideoSinkBinClass *klass) G_MAXINT, 1, 1, 1, (GParamFlags)(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property(gobject_klass, PROP_SYNC, + g_param_spec_boolean(PROP_SYNC_NAME, "Sync", + "Sync on the clock", DEFAULT_SYNC, + (GParamFlags)(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + gst_element_class_set_static_metadata(gstelement_klass, "QGC Video Sink Bin", "Sink/Video/Bin", "Video rendering for QGC",