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 587078338054b9a7c9d91e6d2e9b6f7db6ae3383..e66609fc5d42a0576c83c69e090014f8d9b6e3b7 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 4227e428aa8267c95c74b423a44630d98213bfb1..ee6420d6297cc11b9d24eaf6474407519bb6380a 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 2120f1f3cc7e095ec92ef02bb7f71a5808c8279c..19c06b3c5600329fdaeb53a2f355cec7e88f7686 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 5b80a1ec6c694964330006eeb2c451644ebaceb0..5f01beb1561dda9e42033041e0d87bab3fbdd655 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;