Send signal for camera shutdown waiting 16/109516/1
authorJeongmo Yang <jm80.yang@samsung.com>
Tue, 10 Jan 2017 08:44:31 +0000 (17:44 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Tue, 10 Jan 2017 08:44:31 +0000 (17:44 +0900)
[Version] 0.2.34
[Profile] Common
[Issue Type] Update
[Dependency module] N/A
[Test] [M(T) - Boot=(OK), sdb=(OK), Home=(OK), Touch=(OK), Version=tizen-3.0-mobile_20170104.1]

Change-Id: I4a599aab78c770d073b5404ecbedbea0d14aecbe
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
legacy/src/legacy_recorder.c
packaging/mmsvc-recorder.spec

index e45102e..e11d359 100644 (file)
@@ -44,7 +44,6 @@
 int _camera_get_mm_handle(camera_h camera , MMHandleType *handle);
 int _camera_set_relay_mm_message_callback(camera_h camera, MMMessageCallback callback, void *user_data);
 int _camera_set_use(camera_h camera, bool used);
-bool _camera_is_used(camera_h camera);
 /*
  * end of camera_private function
  */
@@ -532,7 +531,7 @@ int legacy_recorder_create_videorecorder(camera_h camera, recorder_h *recorder)
        }
 
        /* Check already used in another recorder */
-       if (_camera_is_used(camera)) {
+       if (legacy_camera_is_used(camera)) {
                LOGE("[%s] camera is using in another recorder.", __func__);
                return RECORDER_ERROR_INVALID_PARAMETER;
        }
@@ -582,7 +581,10 @@ int legacy_recorder_create_videorecorder(camera_h camera, recorder_h *recorder)
                handle->camera_device_count = camera_device_count;
        }
 
+       legacy_camera_lock(handle->mm_source.camera, true);
        _camera_set_use(camera, true);
+       legacy_camera_lock(handle->mm_source.camera, false);
+
        if (handle->state == RECORDER_STATE_CREATED) {
                ret = mm_camcorder_set_attributes(handle->mm_handle, NULL,
                        MMCAM_CAMERA_FORMAT, preview_format,
@@ -704,7 +706,10 @@ int legacy_recorder_destroy(recorder_h recorder)
 
        if (handle->type == _RECORDER_TYPE_VIDEO) {
                /* set to unsed */
+               legacy_camera_lock(handle->mm_source.camera, true);
+
                _camera_set_use(handle->mm_source.camera, false);
+
                ret = mm_camcorder_get_attributes(handle->mm_handle, NULL,
                        MMCAM_CAMERA_FORMAT, &preview_format,
                        NULL);
@@ -716,8 +721,12 @@ int legacy_recorder_destroy(recorder_h recorder)
                                NULL);
                }
 
-               if (ret == MM_ERROR_NONE)
+               if (ret == MM_ERROR_NONE) {
                        _camera_set_relay_mm_message_callback(handle->mm_source.camera, NULL, NULL);
+                       legacy_camera_send_signal(handle->mm_source.camera);
+               }
+
+               legacy_camera_lock(handle->mm_source.camera, false);
        } else {
                ret = mm_camcorder_destroy(handle->mm_handle);
        }
index a34331b..f9c5941 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mmsvc-recorder
 Summary:    A Recorder module for muse server
-Version:    0.2.33
+Version:    0.2.34
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0