[tizencamerasrc] Set capture count and interval to HAL 35/250535/3 accepted/tizen/unified/20210105.125822 submit/tizen/20210105.053027
authorJeongmo Yang <jm80.yang@samsung.com>
Tue, 29 Dec 2020 06:30:38 +0000 (15:30 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Wed, 30 Dec 2020 00:48:21 +0000 (09:48 +0900)
[Version] 1.16.2-18
[Issue Type] Update

Change-Id: I49683f24f33ad59f205a2bfd486559aad2031593
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
packaging/gst-plugins-tizen.spec
tizencamerasrc/src/gsttizencamerasrc.c

index 4032719..06d2f5f 100644 (file)
@@ -5,7 +5,7 @@
 Name:       gst-plugins-tizen
 Version:    1.16.2
 Summary:    GStreamer tizen plugins (common)
-Release:    17
+Release:    18
 Group:      Multimedia/Framework
 Url:        http://gstreamer.freedesktop.org/
 License:    LGPL-2.1+
index c5e9e08..2cff9cc 100644 (file)
@@ -1333,46 +1333,37 @@ static gboolean gst_tizencamerasrc_capture_start(GstTizenCameraSrc *camerasrc)
 
   GST_INFO_OBJECT(camerasrc, "ENTERED - mode %d", camerasrc->mode);
 
-  if (camerasrc->mode == VIDEO_IN_MODE_PREVIEW) {
-    /* set preview buffer running flag to FALSE to release preview buffer immediately */
-    g_mutex_lock(&camerasrc->preview_buffer_lock);
-
-    if (camerasrc->preview_buffer_running) {
-      camerasrc->preview_buffer_running = FALSE;
-    } else {
-      GST_ERROR_OBJECT(camerasrc, "buffer NOT running");
-      g_mutex_unlock(&camerasrc->preview_buffer_lock);
-      return FALSE;
-    }
-
-    g_mutex_unlock(&camerasrc->preview_buffer_lock);
-
-    GST_INFO_OBJECT(camerasrc, "start capture");
-
-    ret = camera_hal_interface_start_capture(camerasrc->hal_intf_handle, _camera_capture_cb, camerasrc);
-    if (ret != CAMERA_ERROR_NONE) {
-      GST_ERROR_OBJECT(camerasrc, "camera_hal_interface_start_capture failed 0x%x", ret);
-      camerasrc->preview_buffer_running = TRUE;
-      return FALSE;
-    }
+  if (camerasrc->mode != VIDEO_IN_MODE_PREVIEW) {
+    GST_WARNING_OBJECT(camerasrc, "Wrong state[%d]!", camerasrc->mode);
+    return FALSE;
+  }
 
-    camerasrc->mode = VIDEO_IN_MODE_CAPTURE;
+  GST_INFO_OBJECT(camerasrc, "start capture - count %d, interval %d",
+    camerasrc->cap_count, camerasrc->cap_interval);
 
-    g_mutex_lock(&camerasrc->preview_buffer_lock);
+  ret = camera_hal_interface_set_command(camerasrc->hal_intf_handle,
+    CAMERA_COMMAND_CAPTURE_COUNT, (void *)&camerasrc->cap_count);
+  if (ret != CAMERA_ERROR_NONE)
+    GST_WARNING_OBJECT(camerasrc, "set capture count failed 0x%x", ret);
 
-    camerasrc->preview_buffer_running = TRUE;
+  if (camerasrc->cap_count > 1) {
+    ret = camera_hal_interface_set_command(camerasrc->hal_intf_handle,
+      CAMERA_COMMAND_CAPTURE_INTERVAL, (void *)&camerasrc->cap_interval);
+    if (ret != CAMERA_ERROR_NONE)
+      GST_WARNING_OBJECT(camerasrc, "set capture interval failed 0x%x", ret);
+  }
 
-    g_cond_signal(&camerasrc->preview_buffer_cond);
+  ret = camera_hal_interface_start_capture(camerasrc->hal_intf_handle, _camera_capture_cb, camerasrc);
+  if (ret != CAMERA_ERROR_NONE) {
+    GST_ERROR_OBJECT(camerasrc, "start capture failed 0x%x", ret);
+    return FALSE;
+  }
 
-    g_mutex_unlock(&camerasrc->preview_buffer_lock);
+  camerasrc->mode = VIDEO_IN_MODE_CAPTURE;
 
-    GST_INFO_OBJECT(camerasrc, "CAPTURE STARTED!");
+  GST_INFO_OBJECT(camerasrc, "CAPTURE STARTED!");
 
-    return TRUE;
-  } else {
-    GST_WARNING_OBJECT(camerasrc, "Wrong state[%d]!", camerasrc->mode);
-    return FALSE;
-  }
+  return TRUE;
 }
 
 
@@ -1390,12 +1381,8 @@ static gboolean gst_tizencamerasrc_capture_stop(GstTizenCameraSrc *camerasrc)
     }
 
     g_mutex_lock(&camerasrc->preview_buffer_lock);
-
-    camerasrc->preview_buffer_running = TRUE;
     camerasrc->mode = VIDEO_IN_MODE_PREVIEW;
-
     g_cond_signal(&camerasrc->preview_buffer_cond);
-
     g_mutex_unlock(&camerasrc->preview_buffer_lock);
 
     GST_INFO_OBJECT(camerasrc, "CAPTURE STOPPED!");
@@ -2707,8 +2694,6 @@ static void gst_tizencamerasrc_class_init(GstTizenCameraSrcClass *klass)
 
 static void gst_tizencamerasrc_init(GstTizenCameraSrc *camerasrc)
 {
-  int ret = 0;
-
   GST_INFO_OBJECT(camerasrc, "ENTERED");
 
   camerasrc->hal_intf_handle = NULL;