_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,
}
}
-#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);
}
#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 */
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");
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");
{
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;
}