|
|
|
@ -46,6 +46,7 @@ enum {
@@ -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 {
@@ -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
@@ -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
@@ -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)
@@ -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", |
|
|
|
|