Return immediately if module is unavailable 68/280668/1 accepted/tizen/unified/20220907.040714
authorJeongmo Yang <jm80.yang@samsung.com>
Fri, 2 Sep 2022 04:04:01 +0000 (13:04 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Fri, 2 Sep 2022 04:04:01 +0000 (13:04 +0900)
- The variable name is also changed.
 : The module will be set zero all after clean up,
   but, previously, it's not matched with the value.

[Version] 0.3.54
[Issue Type] Improvement

Change-Id: If0b0bcea620949c937adae9a5df8c1b29554d988
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
muse/include/muse_camera.h
muse/include/muse_camera_internal.h
muse/src/muse_camera_dispatcher.c
packaging/mmsvc-camera.spec

index f269a07..00cc9fe 100644 (file)
@@ -377,7 +377,7 @@ typedef struct {
 /**
  * @brief Definition for the callback event id.
  */
-#define MUSE_CAMERA_CB_EVENT   MUSE_CAMERA_API_MAX + 1 /* 148 */
+#define MUSE_CAMERA_CB_EVENT   MUSE_CAMERA_API_MAX + 1
 
 /**
  * @brief Definition for the max message length.
index 1c501ec..bc16f20 100644 (file)
@@ -80,7 +80,7 @@ typedef struct {
        GQueue task_queue;
        gboolean task_run;
        muse_module_h module;
-       gboolean is_shutting_down;
+       gboolean is_module_available;
        int fds[MUSE_NUM_FD];
        int fd_number;
        const char *platform_privilege;
index a719565..454d932 100644 (file)
@@ -918,6 +918,11 @@ void _camera_dispatcher_preview_cb(MMCamcorderVideoStreamDataType *stream, void
        muse_camera = (muse_camera_handle_s *)muse_server_ipc_get_handle(module);
        camera_return_if_fail(muse_camera);
 
+       if (muse_camera->is_module_available == false) {
+               CAM_LOG_WARNING("module is not available now.. skip this buffer");
+               return;
+       }
+
        export_data = camera_export_data_new_from_stream(stream, muse_camera->bufmgr, tfd);
        camera_return_if_fail(export_data);
 
@@ -926,13 +931,6 @@ void _camera_dispatcher_preview_cb(MMCamcorderVideoStreamDataType *stream, void
 
        muse_camera->camera_data.list = g_list_append(muse_camera->camera_data.list, (gpointer)export_data);
 
-       if (muse_camera->is_shutting_down) {
-               CAM_LOG_WARNING("now shutting down.. skip this buffer");
-               g_mutex_unlock(&muse_camera->camera_data.lock);
-               camera_remove_export_data(&muse_camera->camera_data, tfd[0]);
-               return;
-       }
-
        g_mutex_unlock(&muse_camera->camera_data.lock);
 
        g_mutex_lock(&muse_camera->preview_cb_lock);
@@ -1567,6 +1565,7 @@ int camera_dispatcher_create(muse_module_h module)
        g_cond_init(&muse_camera->preview_cb_cond);
        muse_camera->preview_cb_flag = PREVIEW_CB_TYPE_NONE;
        muse_camera->module = module;
+       muse_camera->is_module_available = true;
 
        CAM_LOG_INFO("handle[%p], user buffer[%d]", muse_camera, user_buffer_supported);
 
@@ -6004,7 +6003,7 @@ static int camera_cmd_dispatcher_shutdown(muse_module_h module)
 
        legacy_camera_lock(muse_camera->camera_handle, false);
 
-       muse_camera->is_shutting_down = true;
+       muse_camera->is_module_available = false;
 
 again:
        legacy_camera_get_state(muse_camera->camera_handle, &state);
index 25e15b2..83ac1e1 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mmsvc-camera
 Summary:    A Camera module for muse server
-Version:    0.3.53
+Version:    0.3.54
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0