From: Jeongmo Yang Date: Tue, 31 Jan 2017 10:31:30 +0000 (+0900) Subject: Do not call resource init in case of audio only recording mode X-Git-Tag: accepted/tizen/common/20170309.174900~6 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fmultimedia%2Flibmm-camcorder.git;a=commitdiff_plain;h=9c5f93ad7e50e56ab624567b8b3ce6ea62361d51 Do not call resource init in case of audio only recording mode [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 --- diff --git a/packaging/libmm-camcorder.spec b/packaging/libmm-camcorder.spec index 648c9fd..fe268f1 100644 --- a/packaging/libmm-camcorder.spec +++ b/packaging/libmm-camcorder.spec @@ -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 diff --git a/src/mm_camcorder_internal.c b/src/mm_camcorder_internal.c index 5f01beb..ecc1220 100644 --- a/src/mm_camcorder_internal.c +++ b/src/mm_camcorder_internal.c @@ -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 */ diff --git a/src/mm_camcorder_resource.c b/src/mm_camcorder_resource.c index 8ae077e..bf4e063 100644 --- a/src/mm_camcorder_resource.c +++ b/src/mm_camcorder_resource.c @@ -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; }