Bug fix - After change device, preview is not displayed in case of EVAS display type. 01/105101/6
authorHaesu Gwon <haesu.gwon@samsung.com>
Thu, 15 Dec 2016 11:07:39 +0000 (20:07 +0900)
committerHaesu Gwon <haesu.gwon@samsung.com>
Tue, 20 Dec 2016 00:57:07 +0000 (09:57 +0900)
[Version] 0.2.62
[Profile] Common
[Issue Type] Bug fix
[Dependency module] N/A
[Test] [M(T) - Boot=(OK), sdb=(OK), Home=(OK), Touch=(OK), Version=devel-dotnet_20161212.4]

Change-Id: I3c450b4d59e388cbfd9f615d0863768b216ac679
Signed-off-by: Haesu Gwon <haesu.gwon@samsung.com>
legacy/include/legacy_camera.h
legacy/src/legacy_camera.c
muse/src/muse_camera_dispatcher.c
packaging/mmsvc-camera.spec

index 9ac1bee..aeeec38 100644 (file)
@@ -743,6 +743,7 @@ int legacy_camera_create(camera_device_e device, camera_h *camera);
  *          display handle will be reused and last frame on display can be kept even though camera device is changed.
  * @param[in] camera The handle to the camera
  * @param[in] device The hardware camera to access
+ * @param[in] is_evas The current display type
  * @return @c 0 on success, otherwise a negative error value
  * @retval #CAMERA_ERROR_NONE Successful
  * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
@@ -756,7 +757,7 @@ int legacy_camera_create(camera_device_e device, camera_h *camera);
  * @see legacy_camera_set_display_reuse_hint()
  * @see legacy_camera_get_display_reuse_hint()
  */
-int legacy_camera_change_device(camera_h *camera, camera_device_e device);
+int legacy_camera_change_device(camera_h *camera, camera_device_e device, bool is_evas);
 
 /**
  * @brief Destroys the camera handle and releases all its resources.
index 1b42f21..4881c09 100644 (file)
@@ -151,9 +151,8 @@ int __convert_camera_error_code(const char *func, int code)
                break;
        }
 
-       if (code != MM_ERROR_NONE) {
+       if (code != MM_ERROR_NONE)
                LOGE("[%s] %s(0x%08x) : core frameworks error code(0x%08x)", func ? func : "NULL_FUNC", errorstr, ret, code);
-       }
 
        return ret;
 }
@@ -560,7 +559,7 @@ int legacy_camera_create(camera_device_e device, camera_h *camera)
                return CAMERA_ERROR_INVALID_PARAMETER;
        }
 
-       LOGD("device name = [%d]",device);
+       LOGD("device name = [%d]", device);
 
        info.videodev_type = device;
 
@@ -647,7 +646,7 @@ int legacy_camera_create(camera_device_e device, camera_h *camera)
 }
 
 
-int legacy_camera_change_device(camera_h *camera, camera_device_e device)
+int legacy_camera_change_device(camera_h *camera, camera_device_e device, bool is_evas)
 {
        int ret = MM_ERROR_NONE;
        int pid = 0;
@@ -750,7 +749,7 @@ int legacy_camera_change_device(camera_h *camera, camera_device_e device)
        /* set previous display */
        ret = legacy_camera_set_display((camera_h)new_handle, old_handle->display_type, old_handle->display_handle);
        if (ret != MM_ERROR_NONE) {
-               LOGE("legacy_camera_set_display failed0x%x", ret);
+               LOGE("legacy_camera_set_display failed 0x%x", ret);
                goto _CHANGE_DEVICE_FAILED;
        }
 
@@ -758,6 +757,16 @@ int legacy_camera_change_device(camera_h *camera, camera_device_e device)
        new_handle->user_cb[_CAMERA_EVENT_TYPE_STATE_CHANGE] = old_handle->user_cb[_CAMERA_EVENT_TYPE_STATE_CHANGE];
        new_handle->user_data[_CAMERA_EVENT_TYPE_STATE_CHANGE] = old_handle->user_data[_CAMERA_EVENT_TYPE_STATE_CHANGE];
 
+       /* set preview callback for EVAS */
+       if (is_evas) {
+               ret = legacy_camera_set_preview_cb((camera_h)new_handle,
+                       (camera_preview_cb)old_handle->user_cb[_CAMERA_EVENT_TYPE_PREVIEW], old_handle->user_data[_CAMERA_EVENT_TYPE_PREVIEW]);
+               if (ret != CAMERA_ERROR_NONE) {
+                       LOGE("legacy_camera_set_preview_cb failed 0x%x", ret);
+                       goto _CHANGE_DEVICE_FAILED;
+               }
+       }
+
        /* release old handle */
        ret = legacy_camera_destroy((camera_h)old_handle);
        if (ret != CAMERA_ERROR_NONE) {
@@ -803,9 +812,8 @@ int legacy_camera_destroy(camera_h camera)
        LOGW("camera handle %p", handle);
 
        ret = mm_camcorder_destroy(handle->mm_handle);
-       if (ret == MM_ERROR_NONE) {
+       if (ret == MM_ERROR_NONE)
                free(handle);
-       }
 
        return __convert_camera_error_code(__func__, ret);
 }
@@ -1019,9 +1027,8 @@ int legacy_camera_start_continuous_capture(camera_h camera, int count, int inter
        ret = mm_camcorder_get_attributes(handle->mm_handle, NULL,
                MMCAM_SUPPORT_ZSL_CAPTURE, &supported_zsl,
                NULL);
-       if (ret != MM_ERROR_NONE) {
+       if (ret != MM_ERROR_NONE)
                LOGE("(%x) error get continuous shot attribute", ret);
-       }
 
        if (!supported_zsl) {
                int preview_width;
@@ -2244,13 +2251,12 @@ int legacy_camera_get_recommended_preview_resolution(camera_h camera, int *width
                return CAMERA_ERROR_INVALID_OPERATION;
        }
        ratio = (double)capture_w / (double)capture_h;
-       if (ratio > 1.5) {
+       if (ratio > 1.5)
                wide = MM_CAMCORDER_PREVIEW_TYPE_WIDE;
-       } else if (ratio == 1.0) {
+       else if (ratio == 1.0)
                wide = MM_CAMCORDER_PREVIEW_TYPE_SQUARE;
-       } else {
+       else
                wide = MM_CAMCORDER_PREVIEW_TYPE_NORMAL;
-       }
 
        ret = mm_camcorder_get_attribute_info(handle->mm_handle, MMCAM_RECOMMEND_CAMERA_WIDTH, &width_info);
        ret |= mm_camcorder_get_attribute_info(handle->mm_handle, MMCAM_RECOMMEND_CAMERA_HEIGHT, &height_info);
index 09e5682..c7da9e3 100644 (file)
@@ -1420,7 +1420,8 @@ int camera_dispatcher_change_device(muse_module_h module)
 
        LOGD("change device to %d", device);
 
-       ret = legacy_camera_change_device(&muse_camera->camera_handle, device);
+       ret = legacy_camera_change_device(&muse_camera->camera_handle, device,
+               CHECK_PREVIEW_CB(muse_camera, PREVIEW_CB_TYPE_EVAS));
 
        muse_camera_msg_return(api, class, ret, module);
 
@@ -3272,11 +3273,10 @@ int camera_dispatcher_attr_get_zoom_range(muse_module_h module)
        LOGD("handle : %p", muse_camera);
 
        ret = legacy_camera_attr_get_zoom_range(muse_camera->camera_handle, &get_value0, &get_value1);
-       if (ret == CAMERA_ERROR_NONE) {
+       if (ret == CAMERA_ERROR_NONE)
                muse_camera_msg_return2(api, class, ret, module, get_type, index, get_value0, get_value1);
-       } else {
+       else
                muse_camera_msg_return(api, class, ret, module);
-       }
 
        return MUSE_CAMERA_ERROR_NONE;
 }
@@ -3366,11 +3366,10 @@ int camera_dispatcher_attr_get_exposure_range(muse_module_h module)
        LOGD("handle : %p", muse_camera);
 
        ret = legacy_camera_attr_get_exposure_range(muse_camera->camera_handle, &get_value0, &get_value1);
-       if (ret == CAMERA_ERROR_NONE) {
+       if (ret == CAMERA_ERROR_NONE)
                muse_camera_msg_return2(api, class, ret, module, get_type, index, get_value0, get_value1);
-       } else {
+       else
                muse_camera_msg_return(api, class, ret, module);
-       }
 
        return MUSE_CAMERA_ERROR_NONE;
 }
@@ -3437,11 +3436,10 @@ int camera_dispatcher_attr_get_brightness_range(muse_module_h module)
        LOGD("handle : %p", muse_camera);
 
        ret = legacy_camera_attr_get_brightness_range(muse_camera->camera_handle, &get_value0, &get_value1);
-       if (ret == CAMERA_ERROR_NONE) {
+       if (ret == CAMERA_ERROR_NONE)
                muse_camera_msg_return2(api, class, ret, module, get_type, index, get_value0, get_value1);
-       } else {
+       else
                muse_camera_msg_return(api, class, ret, module);
-       }
 
        return MUSE_CAMERA_ERROR_NONE;
 }
@@ -3485,11 +3483,10 @@ int camera_dispatcher_attr_get_contrast_range(muse_module_h module)
        LOGD("handle : %p", muse_camera);
 
        ret = legacy_camera_attr_get_contrast_range(muse_camera->camera_handle, &get_value0, &get_value1);
-       if (ret == CAMERA_ERROR_NONE) {
+       if (ret == CAMERA_ERROR_NONE)
                muse_camera_msg_return2(api, class, ret, module, get_type, index, get_value0, get_value1);
-       } else {
+       else
                muse_camera_msg_return(api, class, ret, module);
-       }
 
        return MUSE_CAMERA_ERROR_NONE;
 }
@@ -4544,11 +4541,10 @@ int camera_dispatcher_attr_get_pan_range(muse_module_h module)
        LOGD("handle : %p", muse_camera);
 
        ret = legacy_camera_attr_get_pan_range(muse_camera->camera_handle, &get_value0, &get_value1);
-       if (ret == CAMERA_ERROR_NONE) {
+       if (ret == CAMERA_ERROR_NONE)
                muse_camera_msg_return2(api, class, ret, module, get_type, index, get_value0, get_value1);
-       } else {
+       else
                muse_camera_msg_return(api, class, ret, module);
-       }
 
        return MUSE_CAMERA_ERROR_NONE;
 }
@@ -4620,11 +4616,10 @@ int camera_dispatcher_attr_get_tilt_range(muse_module_h module)
        LOGD("handle : %p", muse_camera);
 
        ret = legacy_camera_attr_get_tilt_range(muse_camera->camera_handle, &get_value0, &get_value1);
-       if (ret == CAMERA_ERROR_NONE) {
+       if (ret == CAMERA_ERROR_NONE)
                muse_camera_msg_return2(api, class, ret, module, get_type, index, get_value0, get_value1);
-       } else {
+       else
                muse_camera_msg_return(api, class, ret, module);
-       }
 
        return MUSE_CAMERA_ERROR_NONE;
 }
@@ -4740,9 +4735,8 @@ int camera_dispatcher_return_buffer(muse_module_h module)
 
        /*LOGD("handle : %p, key : %d", muse_camera, tbm_key);*/
 
-       if (!_camera_remove_export_data(module, tbm_key, FALSE)) {
+       if (!_camera_remove_export_data(module, tbm_key, FALSE))
                LOGE("remove export data failed : key %d", tbm_key);
-       }
 
        return MUSE_CAMERA_ERROR_NONE;
 }
index a0cbb3a..1923c84 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mmsvc-camera
 Summary:    A Camera module for muse server
-Version:    0.2.61
+Version:    0.2.62
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0