Set strobe mode after start preview 35/114835/1
authorJeongmo Yang <jm80.yang@samsung.com>
Fri, 20 Jan 2017 03:03:09 +0000 (12:03 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Wed, 15 Feb 2017 08:07:41 +0000 (17:07 +0900)
Strobe mode is not needed to set before start preview

[Version] 0.10.103
[Profile] Common
[Issue Type] Update
[Dependency module] N/A

Change-Id: If04e9bc7db4e12202a00b2a6f0474dd465f3933c
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
packaging/libmm-camcorder.spec
src/include/mm_camcorder_attribute.h
src/mm_camcorder_attribute.c
src/mm_camcorder_internal.c

index 5870783..e66609f 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmm-camcorder
 Summary:    Camera and recorder library
-Version:    0.10.102
+Version:    0.10.103
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
index 4227e42..ee6420d 100644 (file)
@@ -397,6 +397,7 @@ bool _mmcamcorder_commit_tag(MMHandleType handle, int attr_idx, const mmf_value_
  * @return     bool            Success on TRUE or return FALSE
  */
 bool _mmcamcorder_set_attribute_to_camsensor(MMHandleType handle);
+bool _mmcamcorder_set_attribute_to_camsensor2(MMHandleType handle);
 
 /**
  * This function removes writable flag from pre-defined attributes.
index 2120f1f..19c06b3 100644 (file)
@@ -4766,7 +4766,6 @@ bool _mmcamcorder_set_attribute_to_camsensor(MMHandleType handle)
                MM_CAM_CAMERA_WDR,
                MM_CAM_FILTER_CONTRAST,
                MM_CAM_FILTER_HUE,
-               MM_CAM_STROBE_MODE,
                MM_CAM_DETECT_MODE
        };
 
@@ -4782,7 +4781,7 @@ bool _mmcamcorder_set_attribute_to_camsensor(MMHandleType handle)
 
        mmf_return_val_if_fail(hcamcorder, FALSE);
 
-       _mmcam_dbg_log("Set all attribute again.");
+       _mmcam_dbg_log("commit some attributes again");
 
        attr = (mmf_attrs_t *)MMF_CAMCORDER_ATTRS(handle);
        if (attr == NULL) {
@@ -4823,6 +4822,45 @@ bool _mmcamcorder_set_attribute_to_camsensor(MMHandleType handle)
 }
 
 
+bool _mmcamcorder_set_attribute_to_camsensor2(MMHandleType handle)
+{
+       mmf_camcorder_t *hcamcorder = MMF_CAMCORDER(handle);
+       mmf_attrs_t *attr = NULL;
+
+       unsigned int i = 0;
+       int ret = TRUE;
+       int attr_idxs[] = {
+               MM_CAM_STROBE_MODE
+       };
+
+       mmf_return_val_if_fail(hcamcorder, FALSE);
+
+       _mmcam_dbg_log("commit some attribute again[2]");
+
+       attr = (mmf_attrs_t *)MMF_CAMCORDER_ATTRS(handle);
+       if (attr == NULL) {
+               _mmcam_dbg_err("Get attribute handle failed.");
+               return FALSE;
+       } else {
+               _mmcam_dbg_log("attribute count(%d)", attr->count);
+
+               for (i = 0 ; i < ARRAY_SIZE(attr_idxs) ; i++) {
+                       if (__mmcamcorder_attrs_is_supported((MMHandleType)attr, attr_idxs[i]))
+                               mmf_attribute_set_modified(&(attr->items[attr_idxs[i]]));
+               }
+
+               if (mmf_attrs_commit((MMHandleType)attr) == -1)
+                       ret = FALSE;
+               else
+                       ret = TRUE;
+       }
+
+       _mmcam_dbg_log("Done.");
+
+       return ret;
+}
+
+
 int _mmcamcorder_lock_readonly_attributes(MMHandleType handle)
 {
        mmf_camcorder_t *hcamcorder = MMF_CAMCORDER(handle);
index 5b80a1e..5f01beb 100644 (file)
@@ -1496,6 +1496,10 @@ int _mmcamcorder_start(MMHandleType handle)
 
        _mmcamcorder_set_state(handle, MM_CAMCORDER_STATE_PREPARE);
 
+       /* set attributes related sensor - after start preview */
+       if (hcamcorder->type != MM_CAMCORDER_MODE_AUDIO)
+               _mmcamcorder_set_attribute_to_camsensor2(handle);
+
        _MMCAMCORDER_UNLOCK_CMD(hcamcorder);
 
        return MM_ERROR_NONE;