Do not call resource init in case of audio only recording mode 38/114838/1
authorJeongmo Yang <jm80.yang@samsung.com>
Tue, 31 Jan 2017 10:31:30 +0000 (19:31 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Wed, 15 Feb 2017 08:11:34 +0000 (17:11 +0900)
[Version] 0.10.105
[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_20170131.2]

Change-Id: I68f7910fb7fa9730ee1c5eb2be8d4951d8f7fc83
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
packaging/libmm-camcorder.spec
src/mm_camcorder_internal.c
src/mm_camcorder_resource.c

index 648c9fd..fe268f1 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmm-camcorder
 Summary:    Camera and recorder library
-Version:    0.10.104
+Version:    0.10.105
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
index 5f01beb..ecc1220 100644 (file)
@@ -399,6 +399,16 @@ int _mmcamcorder_create(MMHandleType *handle, MMCamPreset *info)
 
                        _mmcam_dbg_log("DPM camera changed cb id %d", hcamcorder->dpm_camera_cb_id);
                }
+
+#ifdef _MMCAMCORDER_MURPHY_SUPPORT
+               /* initialize resource manager */
+               ret = _mmcamcorder_resource_manager_init(&hcamcorder->resource_manager, (void *)hcamcorder);
+               if (ret != MM_ERROR_NONE) {
+                       _mmcam_dbg_err("failed to initialize resource manager");
+                       ret = MM_ERROR_CAMCORDER_INTERNAL;
+                       goto _ERR_DEFAULT_VALUE_INIT;
+               }
+#endif /* _MMCAMCORDER_MURPHY_SUPPORT */
        } else {
                _mmcamcorder_conf_get_value_int((MMHandleType)hcamcorder, hcamcorder->conf_main,
                        CONFIGURE_CATEGORY_MAIN_VIDEO_INPUT,
@@ -423,16 +433,6 @@ int _mmcamcorder_create(MMHandleType *handle, MMCamPreset *info)
                }
        }
 
-#ifdef _MMCAMCORDER_MURPHY_SUPPORT
-       /* initialize resource manager */
-       ret = _mmcamcorder_resource_manager_init(&hcamcorder->resource_manager, (void *)hcamcorder);
-       if (ret != MM_ERROR_NONE) {
-               _mmcam_dbg_err("failed to initialize resource manager");
-               ret = MM_ERROR_CAMCORDER_INTERNAL;
-               goto _ERR_DEFAULT_VALUE_INIT;
-       }
-#endif /* _MMCAMCORDER_MURPHY_SUPPORT */
-
        traceBegin(TTRACE_TAG_CAMERA, "MMCAMCORDER:CREATE:INIT_GSTREAMER");
 
        ret = __mmcamcorder_gstreamer_init(hcamcorder->conf_main);
@@ -492,27 +492,29 @@ int _mmcamcorder_create(MMHandleType *handle, MMCamPreset *info)
        }
 
 #ifdef _MMCAMCORDER_MURPHY_SUPPORT
-       _MMCAMCORDER_LOCK_RESOURCE(hcamcorder);
+       if (info->videodev_type != MM_VIDEO_DEVICE_NONE) {
+               _MMCAMCORDER_LOCK_RESOURCE(hcamcorder);
 
-       if (hcamcorder->resource_manager.is_connected == FALSE) {
-               gint64 end_time = 0;
+               if (hcamcorder->resource_manager.is_connected == FALSE) {
+                       gint64 end_time = 0;
 
-               /* wait for resource manager connected */
-               _mmcam_dbg_log("resource manager is not connected. wait for signal...");
+                       /* wait for resource manager connected */
+                       _mmcam_dbg_log("resource manager is not connected. wait for signal...");
 
-               end_time = g_get_monotonic_time() + (__MMCAMCORDER_RESOURCE_WAIT_TIME * G_TIME_SPAN_SECOND);
+                       end_time = g_get_monotonic_time() + (__MMCAMCORDER_RESOURCE_WAIT_TIME * G_TIME_SPAN_SECOND);
 
-               if (_MMCAMCORDER_RESOURCE_WAIT_UNTIL(hcamcorder, end_time)) {
-                       _mmcam_dbg_warn("signal received");
-               } else {
-                       _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder);
-                       _mmcam_dbg_err("timeout");
-                       ret = MM_ERROR_RESOURCE_INTERNAL;
-                       goto _ERR_DEFAULT_VALUE_INIT;
+                       if (_MMCAMCORDER_RESOURCE_WAIT_UNTIL(hcamcorder, end_time)) {
+                               _mmcam_dbg_warn("signal received");
+                       } else {
+                               _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder);
+                               _mmcam_dbg_err("timeout");
+                               ret = MM_ERROR_RESOURCE_INTERNAL;
+                               goto _ERR_DEFAULT_VALUE_INIT;
+                       }
                }
-       }
 
-       _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder);
+               _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder);
+       }
 #endif /* _MMCAMCORDER_MURPHY_SUPPORT */
 
        /* Set initial state */
index 8ae077e..bf4e063 100644 (file)
@@ -325,6 +325,8 @@ int _mmcamcorder_resource_manager_init(MMCamcorderResourceManager *resource_mana
 
        MMCAMCORDER_CHECK_RESOURCE_MANAGER_INSTANCE(resource_manager);
 
+       _mmcam_dbg_warn("start");
+
        mrp_ctx = g_main_context_new();
        if (!mrp_ctx) {
                _mmcam_dbg_err("failed to get create glib context for mrp");
@@ -351,6 +353,8 @@ int _mmcamcorder_resource_manager_init(MMCamcorderResourceManager *resource_mana
                return MM_ERROR_RESOURCE_INTERNAL;
        }
 
+       _mmcam_dbg_warn("mloop %p", resource_manager->mloop);
+
        resource_manager->context = mrp_res_create(resource_manager->mloop, __mmcamcorder_resource_state_callback, user_data);
        if (!resource_manager->context) {
                _mmcam_dbg_err("could not get context for mrp");
@@ -435,29 +439,38 @@ int _mmcamcorder_resource_manager_deinit(MMCamcorderResourceManager *resource_ma
 {
        MMCAMCORDER_CHECK_RESOURCE_MANAGER_INSTANCE(resource_manager);
 
+       _mmcam_dbg_warn("rset %p, context %p, mloop %p",
+               resource_manager->rset, resource_manager->context, resource_manager->mloop);
+
        if (resource_manager->rset) {
                if (resource_manager->rset->state == MRP_RES_RESOURCE_ACQUIRED) {
                        _mmcam_dbg_warn("resource is still acquired. release...");
                        if (mrp_res_release_resource_set(resource_manager->rset))
                                _mmcam_dbg_err("- could not release resource");
                }
-               _mmcam_dbg_log("delete resource set");
+
+               _mmcam_dbg_warn("delete resource set");
+
                mrp_res_delete_resource_set(resource_manager->rset);
                resource_manager->rset = NULL;
        }
 
        if (resource_manager->context) {
-               _mmcam_dbg_log("destroy resource context");
+               _mmcam_dbg_warn("destroy resource context");
+
                mrp_res_destroy(resource_manager->context);
                resource_manager->context = NULL;
        }
 
        if (resource_manager->mloop) {
-               _mmcam_dbg_log("destroy resource mainloop");
+               _mmcam_dbg_warn("destroy resource mainloop");
+
                mrp_mainloop_quit(resource_manager->mloop, 0);
                mrp_mainloop_destroy(resource_manager->mloop);
                resource_manager->mloop = NULL;
        }
 
+       _mmcam_dbg_warn("done");
+
        return MM_ERROR_NONE;
 }