summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>2021-08-12 14:08:19 +0200
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>2021-08-18 14:51:01 +0200
commit5c5083586d088605964c06f5b5509d5fa1c7c087 (patch)
tree77170f9ccd650d29eb69f98cf4ac40948206dea4 /tests
parentdc825d6a52f674554d6ae5d6595eaaa1e7774ec5 (diff)
downloadgstreamer-plugins-bad-5c5083586d088605964c06f5b5509d5fa1c7c087.tar.gz
example: va: Add skin tone enhancement.
If camera is used as input stream and skin tone parameter is available in vapostproc, and no random changes are enabled, the skin tone will be enabled. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2470>
Diffstat (limited to 'tests')
-rw-r--r--tests/examples/va/multiple-vpp.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/tests/examples/va/multiple-vpp.c b/tests/examples/va/multiple-vpp.c
index b066e2950..05d680e5c 100644
--- a/tests/examples/va/multiple-vpp.c
+++ b/tests/examples/va/multiple-vpp.c
@@ -158,23 +158,34 @@ message_handler (GstBus * bus, GstMessage * msg, gpointer data)
}
static void
-config_vpp (GstElement * vpp)
+config_simple (struct _app *app)
{
GParamSpec *pspec;
- GObjectClass *g_class = G_OBJECT_GET_CLASS (vpp);
+ GObjectClass *g_class = G_OBJECT_GET_CLASS (app->vpp);
const static gchar *props[] = { "brightness", "hue", "saturation",
"contrast"
};
gfloat max;
guint i;
+ if (camera && (pspec = g_object_class_find_property (g_class, "skin-tone"))) {
+ if (G_PARAM_SPEC_TYPE (pspec) == G_TYPE_BOOLEAN) {
+ g_object_set (app->vpp, "skin-tone", TRUE, NULL);
+ } else {
+ max = ((GParamSpecFloat *) pspec)->maximum;
+ g_object_set (app->vpp, "skin-tone", max, NULL);
+ }
+
+ return;
+ }
+
for (i = 0; i < G_N_ELEMENTS (props); i++) {
pspec = g_object_class_find_property (g_class, props[i]);
if (!pspec)
continue;
max = ((GParamSpecFloat *) pspec)->maximum;
- g_object_set (vpp, props[i], max, NULL);
+ g_object_set (app->vpp, props[i], max, NULL);
}
}
@@ -208,7 +219,7 @@ build_pipeline (struct _app *app)
app->vpp = gst_bin_get_by_name (GST_BIN (app->pipeline), "vpp");
if (!randomcb && !randomdir && !randomsharpen && !randomcrop)
- config_vpp (app->vpp);
+ config_simple (app);
app->crop = gst_bin_get_by_name (GST_BIN (app->pipeline), "crop");