[v4l2src] Add new property for TBM output buffer 02/253602/1
authorJeongmo Yang <jm80.yang@samsung.com>
Tue, 16 Feb 2021 03:27:07 +0000 (12:27 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Tue, 16 Feb 2021 03:27:37 +0000 (12:27 +0900)
[Version] 1.16.2-21
[Issue Type] Update

Change-Id: I09744dbaa07de04ae56e95cac234729dce3d2978
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
packaging/gst-plugins-good.spec
sys/v4l2/gstv4l2src.c

index 49236fa..72ab367 100644 (file)
@@ -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/
index 36a7fa0..66d4a99 100644 (file)
@@ -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;