Fix bug - 1. start preview failure, 2. destroy timeout 18/98318/1 accepted/tizen/common/20161117.085414 accepted/tizen/ivi/20161117.084527 accepted/tizen/mobile/20161117.084437 accepted/tizen/tv/20161117.084449 accepted/tizen/wearable/20161117.084508 submit/tizen/20161117.065259
authorJeongmo Yang <jm80.yang@samsung.com>
Thu, 17 Nov 2016 05:08:45 +0000 (14:08 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Thu, 17 Nov 2016 05:11:05 +0000 (14:11 +0900)
1. After change device, gdbus_connection is not set to new handle, so realize is failed
2. task thread run flag is not used for "while" statement condition, so did not quit the thread

[Version] 0.2.59
[Profile] Common
[Issue Type] Bug fix
[Dependency module] N/A
[Test] [M(T) - Boot=(OK), sdb=(OK), Home=(OK), Touch=(OK), Version=tizen-3.0-mobile_20161115.1]

Change-Id: I0e7747fabbb4628c4d95d5b18c784bf9a1846311
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
legacy/src/legacy_camera.c
muse/src/muse_camera_dispatcher.c
packaging/mmsvc-camera.spec

index 5d81c54..9f87431 100644 (file)
@@ -651,11 +651,13 @@ int legacy_camera_change_device(camera_h *camera, camera_device_e device)
 {
        int ret = MM_ERROR_NONE;
        int pid = 0;
-       int size = 0;
+       int element_size = 0;
+       int connection_size = 0;
        camera_s *old_handle = NULL;
        camera_s *new_handle = NULL;
        camera_state_e capi_state = CAMERA_STATE_NONE;
        void *reuse_element = NULL;
+       void *gdbus_connection = NULL;
 
        if (camera == NULL) {
                LOGE("NULL handle");
@@ -688,14 +690,16 @@ int legacy_camera_change_device(camera_h *camera, camera_device_e device)
 
        /* get reuse element */
        ret = mm_camcorder_get_attributes(old_handle->mm_handle, NULL,
-               MMCAM_DISPLAY_REUSE_ELEMENT, &reuse_element, &size,
+               MMCAM_DISPLAY_REUSE_ELEMENT, &reuse_element, &element_size,
+               MMCAM_GDBUS_CONNECTION, &gdbus_connection, &connection_size,
                NULL);
        if (ret != MM_ERROR_NONE) {
-               LOGE("failed to get reuse element 0x%x", ret);
+               LOGE("failed to get reuse element and gdbus connection 0x%x", ret);
                return __convert_camera_error_code(__func__, ret);
        }
 
-       LOGD("reuse element %p", reuse_element);
+       LOGD("reuse element %p, gdbus connection %p",
+               reuse_element, gdbus_connection);
 
        /* create new handle */
        ret = legacy_camera_create(device, (camera_h *)&new_handle);
@@ -706,10 +710,11 @@ int legacy_camera_change_device(camera_h *camera, camera_device_e device)
 
        /* set reuse element in new handle */
        ret = mm_camcorder_set_attributes(new_handle->mm_handle, NULL,
-               MMCAM_DISPLAY_REUSE_ELEMENT, reuse_element, size,
+               MMCAM_DISPLAY_REUSE_ELEMENT, reuse_element, element_size,
+               MMCAM_GDBUS_CONNECTION, gdbus_connection, connection_size,
                NULL);
        if (ret != MM_ERROR_NONE) {
-               LOGE("failed to set reuse element 0x%x", ret);
+               LOGE("failed to set reuse element and gdbus connection 0x%x", ret);
                goto _CHANGE_DEVICE_FAILED;
        }
 
@@ -768,7 +773,7 @@ _CHANGE_DEVICE_FAILED:
 
        if (reuse_element) {
                mm_camcorder_set_attributes(old_handle->mm_handle, NULL,
-                       MMCAM_DISPLAY_REUSE_ELEMENT, reuse_element, size,
+                       MMCAM_DISPLAY_REUSE_ELEMENT, reuse_element, element_size,
                        NULL);
        }
 
index f8c5a03..09e5682 100644 (file)
@@ -1235,7 +1235,7 @@ static void *_camera_dispatcher_task_func(gpointer data)
 
        g_mutex_lock(&muse_camera->task_lock);
 
-       while (true) {
+       while (muse_camera->task_run) {
                if (g_queue_is_empty(&muse_camera->task_queue)) {
                        LOGD("empty queue. wait signal");
                        g_cond_wait(&muse_camera->task_cond, &muse_camera->task_lock);
index 2ac0ca2..7e15a0e 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mmsvc-camera
 Summary:    A Camera module for muse server
-Version:    0.2.58
+Version:    0.2.59
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0