videolevels: notify prop level change using pspec
This commit is contained in:
parent
433cb84a2a
commit
1f11672a69
@ -58,9 +58,12 @@ enum
|
|||||||
PROP_LOWOUT,
|
PROP_LOWOUT,
|
||||||
PROP_HIGHOUT,
|
PROP_HIGHOUT,
|
||||||
PROP_AUTO,
|
PROP_AUTO,
|
||||||
PROP_INTERVAL
|
PROP_INTERVAL,
|
||||||
|
PROP_LAST
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static GParamSpec *properties[PROP_LAST];
|
||||||
|
|
||||||
#define DEFAULT_PROP_LOWIN 0.0
|
#define DEFAULT_PROP_LOWIN 0.0
|
||||||
#define DEFAULT_PROP_HIGHIN 1.0
|
#define DEFAULT_PROP_HIGHIN 1.0
|
||||||
#define DEFAULT_PROP_LOWOUT 0.0
|
#define DEFAULT_PROP_LOWOUT 0.0
|
||||||
@ -210,22 +213,30 @@ gst_videolevels_class_init (GstVideoLevelsClass * object)
|
|||||||
obj_class->get_property = GST_DEBUG_FUNCPTR (gst_videolevels_get_property);
|
obj_class->get_property = GST_DEBUG_FUNCPTR (gst_videolevels_get_property);
|
||||||
|
|
||||||
/* Install GObject properties */
|
/* Install GObject properties */
|
||||||
g_object_class_install_property (obj_class, PROP_LOWIN,
|
properties[PROP_LOWIN] =
|
||||||
g_param_spec_double ("lower-input-level", "Lower Input Level",
|
g_param_spec_double ("lower-input-level", "Lower Input Level",
|
||||||
"Lower Input Level", 0.0, 1.0, DEFAULT_PROP_LOWIN,
|
"Lower Input Level", 0.0, 1.0, DEFAULT_PROP_LOWIN,
|
||||||
G_PARAM_READWRITE));
|
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
|
||||||
g_object_class_install_property (obj_class, PROP_HIGHIN,
|
properties[PROP_HIGHIN] =
|
||||||
g_param_spec_double ("upper-input-level", "Upper Input Level",
|
g_param_spec_double ("upper-input-level", "Upper Input Level",
|
||||||
"Upper Input Level", 0.0, 1.0, DEFAULT_PROP_HIGHIN,
|
"Upper Input Level", 0.0, 1.0, DEFAULT_PROP_HIGHIN,
|
||||||
G_PARAM_READWRITE));
|
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
|
||||||
g_object_class_install_property (obj_class, PROP_LOWOUT,
|
properties[PROP_LOWOUT] =
|
||||||
g_param_spec_double ("lower-output-level", "Lower Output Level",
|
g_param_spec_double ("lower-output-level", "Lower Output Level",
|
||||||
"Lower Output Level", 0.0, 1.0, DEFAULT_PROP_LOWOUT,
|
"Lower Output Level", 0.0, 1.0, DEFAULT_PROP_LOWOUT,
|
||||||
G_PARAM_READWRITE));
|
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
|
||||||
g_object_class_install_property (obj_class, PROP_HIGHOUT,
|
properties[PROP_HIGHOUT] =
|
||||||
g_param_spec_double ("upper-output-level", "Upper Output Level",
|
g_param_spec_double ("upper-output-level", "Upper Output Level",
|
||||||
"Upper Output Level", 0.0, 1.0, DEFAULT_PROP_HIGHOUT,
|
"Upper Output Level", 0.0, 1.0, DEFAULT_PROP_HIGHOUT,
|
||||||
G_PARAM_READWRITE));
|
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
|
||||||
|
g_object_class_install_property (obj_class, PROP_LOWIN,
|
||||||
|
properties[PROP_LOWIN]);
|
||||||
|
g_object_class_install_property (obj_class, PROP_HIGHIN,
|
||||||
|
properties[PROP_HIGHIN]);
|
||||||
|
g_object_class_install_property (obj_class, PROP_LOWOUT,
|
||||||
|
properties[PROP_LOWOUT]);
|
||||||
|
g_object_class_install_property (obj_class, PROP_HIGHOUT,
|
||||||
|
properties[PROP_HIGHOUT]);
|
||||||
g_object_class_install_property (obj_class, PROP_AUTO,
|
g_object_class_install_property (obj_class, PROP_AUTO,
|
||||||
g_param_spec_enum ("auto", "Auto Adjust", "Auto adjust contrast",
|
g_param_spec_enum ("auto", "Auto Adjust", "Auto adjust contrast",
|
||||||
GST_TYPE_VIDEOLEVELS_AUTO, DEFAULT_PROP_AUTO, G_PARAM_READWRITE));
|
GST_TYPE_VIDEOLEVELS_AUTO, DEFAULT_PROP_AUTO, G_PARAM_READWRITE));
|
||||||
@ -800,11 +811,11 @@ gst_videolevels_auto_adjust (GstVideoLevels * videolevels, guint16 * data)
|
|||||||
|
|
||||||
gst_videolevels_calculate_lut (videolevels);
|
gst_videolevels_calculate_lut (videolevels);
|
||||||
|
|
||||||
GST_DEBUG ("Contrast stretch with npixsat=%d, (%.6f, %.6f)", npixsat,
|
GST_LOG_OBJECT (videolevels, "Contrast stretch with npixsat=%d, (%.6f, %.6f)",
|
||||||
videolevels->lower_input, videolevels->upper_input);
|
npixsat, videolevels->lower_input, videolevels->upper_input);
|
||||||
|
|
||||||
g_object_notify (G_OBJECT (videolevels), "lower-input-level");
|
g_object_notify_by_pspec (G_OBJECT (videolevels), properties[PROP_LOWIN]);
|
||||||
g_object_notify (G_OBJECT (videolevels), "upper-input-level");
|
g_object_notify_by_pspec (G_OBJECT (videolevels), properties[PROP_HIGHIN]);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user