From bba6451e3d7274812cd66a3a483b08b240be1a66 Mon Sep 17 00:00:00 2001 From: Jeongmo Yang Date: Fri, 20 Jan 2017 12:03:09 +0900 Subject: [PATCH] Set strobe mode after start preview 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 --- packaging/libmm-camcorder.spec | 2 +- src/include/mm_camcorder_attribute.h | 1 + src/mm_camcorder_attribute.c | 42 ++++++++++++++++++++++++++++++++++-- src/mm_camcorder_internal.c | 4 ++++ 4 files changed, 46 insertions(+), 3 deletions(-) diff --git a/packaging/libmm-camcorder.spec b/packaging/libmm-camcorder.spec index 5870783..e66609f 100644 --- a/packaging/libmm-camcorder.spec +++ b/packaging/libmm-camcorder.spec @@ -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 diff --git a/src/include/mm_camcorder_attribute.h b/src/include/mm_camcorder_attribute.h index 4227e42..ee6420d 100644 --- a/src/include/mm_camcorder_attribute.h +++ b/src/include/mm_camcorder_attribute.h @@ -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. diff --git a/src/mm_camcorder_attribute.c b/src/mm_camcorder_attribute.c index 2120f1f..19c06b3 100644 --- a/src/mm_camcorder_attribute.c +++ b/src/mm_camcorder_attribute.c @@ -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); diff --git a/src/mm_camcorder_internal.c b/src/mm_camcorder_internal.c index 5b80a1e..5f01beb 100644 --- a/src/mm_camcorder_internal.c +++ b/src/mm_camcorder_internal.c @@ -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; -- 2.7.4