From 91c9133a0b426248214032d9b5762626d2b3ebd5 Mon Sep 17 00:00:00 2001 From: Jeongmo Yang Date: Tue, 16 Feb 2021 12:27:07 +0900 Subject: [PATCH] [v4l2src] Add new property for TBM output buffer [Version] 1.16.2-21 [Issue Type] Update Change-Id: I09744dbaa07de04ae56e95cac234729dce3d2978 Signed-off-by: Jeongmo Yang --- packaging/gst-plugins-good.spec | 2 +- sys/v4l2/gstv4l2src.c | 25 ++++++++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/packaging/gst-plugins-good.spec b/packaging/gst-plugins-good.spec index 49236fa..72ab367 100644 --- a/packaging/gst-plugins-good.spec +++ b/packaging/gst-plugins-good.spec @@ -3,7 +3,7 @@ Name: gst-plugins-good Version: 1.16.2 -Release: 20 +Release: 21 License: LGPL-2.1+ Summary: GStreamer Streaming-Media Framework Plug-Ins Url: http://gstreamer.freedesktop.org/ diff --git a/sys/v4l2/gstv4l2src.c b/sys/v4l2/gstv4l2src.c index 36a7fa0..66d4a99 100644 --- a/sys/v4l2/gstv4l2src.c +++ b/sys/v4l2/gstv4l2src.c @@ -78,6 +78,9 @@ enum #ifdef TIZEN_FEATURE_V4L2SRC_AUTO_SCAN_DEVICE_NODE PROP_AUTO_SCAN_DEVICE, #endif /* TIZEN_FEATURE_V4L2SRC_AUTO_SCAN_DEVICE_NODE */ +#ifdef TIZEN_FEATURE_V4L2_TBM_SUPPORT + PROP_TBM_OUTPUT, +#endif /* TIZEN_FEATURE_V4L2_TBM_SUPPORT */ PROP_LAST }; @@ -165,7 +168,6 @@ gst_v4l2src_class_init (GstV4l2SrcClass * klass) "Camera ID for device node", 0, G_MAXUINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); #endif /* TIZEN_FEATURE_V4L2SRC_SUPPORT_CAMERA_ID */ - #ifdef TIZEN_FEATURE_V4L2SRC_AUTO_SCAN_DEVICE_NODE /** * GstV4l2Src:auto-scan-device: @@ -175,6 +177,15 @@ gst_v4l2src_class_init (GstV4l2SrcClass * klass) "Scan all device nodes automatically until device open success.", TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); #endif /* TIZEN_FEATURE_V4L2SRC_AUTO_SCAN_DEVICE_NODE */ +#ifdef TIZEN_FEATURE_V4L2_TBM_SUPPORT + /** + * GstV4l2Src:tbm-output + */ + g_object_class_install_property (gobject_class, PROP_TBM_OUTPUT, + g_param_spec_boolean ("tbm-output", "Enable TBM for output buffer", + "It works for only DMABUF mode.", + FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +#endif /* TIZEN_FEATURE_V4L2_TBM_SUPPORT */ /** * GstV4l2Src::prepare-format: @@ -274,6 +285,12 @@ gst_v4l2src_set_property (GObject * object, GST_INFO_OBJECT (v4l2src, "auto scan device [%d]", v4l2src->v4l2object->auto_scan_device); break; #endif /* TIZEN_FEATURE_V4L2SRC_AUTO_SCAN_DEVICE_NODE */ +#ifdef TIZEN_FEATURE_V4L2_TBM_SUPPORT + case PROP_TBM_OUTPUT: + v4l2src->v4l2object->tbm_output = g_value_get_boolean (value); + GST_INFO_OBJECT (v4l2src, "tbm output [%d]", v4l2src->v4l2object->tbm_output); + break; +#endif /* TIZEN_FEATURE_V4L2_TBM_SUPPORT */ default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -301,6 +318,12 @@ gst_v4l2src_get_property (GObject * object, g_value_set_boolean (value, v4l2src->v4l2object->auto_scan_device); break; #endif /* TIZEN_FEATURE_V4L2SRC_AUTO_SCAN_DEVICE_NODE */ +#ifdef TIZEN_FEATURE_V4L2_TBM_SUPPORT + case PROP_TBM_OUTPUT: + GST_INFO_OBJECT (v4l2src, "tbm output [%d]", v4l2src->v4l2object->tbm_output); + g_value_set_boolean (value, v4l2src->v4l2object->tbm_output); + break; +#endif /* TIZEN_FEATURE_V4L2_TBM_SUPPORT */ default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; -- 2.7.4