From 62c0650f9d7d0680c2d1467b7977caf1e695f10a Mon Sep 17 00:00:00 2001 From: Jeongmo Yang Date: Wed, 4 Nov 2020 10:51:44 +0900 Subject: [PATCH] Set network camera HAL name to camerasrc element [Version] 0.10.224 [Issue Type] Update Change-Id: I013a281c696413b43167908d8c944da3c0e2a64e Signed-off-by: Jeongmo Yang --- packaging/libmm-camcorder.spec | 2 +- src/include/mm_camcorder_internal.h | 2 ++ src/mm_camcorder_configure.c | 1 + src/mm_camcorder_gstcommon.c | 6 +++--- src/mm_camcorder_internal.c | 12 ++++++++++++ 5 files changed, 19 insertions(+), 4 deletions(-) diff --git a/packaging/libmm-camcorder.spec b/packaging/libmm-camcorder.spec index 9dd6d06..2489b66 100755 --- 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.223 +Version: 0.10.224 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/include/mm_camcorder_internal.h b/src/include/mm_camcorder_internal.h index 1aa86c0..0216bd1 100755 --- a/src/include/mm_camcorder_internal.h +++ b/src/include/mm_camcorder_internal.h @@ -788,6 +788,8 @@ typedef struct mmf_camcorder { int resolution_changed; /**< Flag for preview resolution change */ int interrupt_code; /**< Interrupt code */ int recreate_decoder; /**< Flag of decoder element recreation for encoded preview format */ + gboolean is_network; /**< Flag for network camera */ + const char *network_hal_name; /**< Name of network camera HAL library */ _MMCamcorderInfoConverting caminfo_convert[CAMINFO_CONVERT_NUM]; /**< converting structure of camera info */ _MMCamcorderEnumConvert enum_conv[ENUM_CONVERT_NUM]; /**< enum converting list that is modified by ini info */ diff --git a/src/mm_camcorder_configure.c b/src/mm_camcorder_configure.c index e01f642..0556d76 100644 --- a/src/mm_camcorder_configure.c +++ b/src/mm_camcorder_configure.c @@ -629,6 +629,7 @@ int _mmcamcorder_conf_init(MMHandleType handle, int type, camera_conf *configure { "DisabledAttributes", CONFIGURE_VALUE_STRING_ARRAY, {NULL} }, { "PlatformPrivilegeCamera", CONFIGURE_VALUE_STRING, {NULL} }, { "LogLevel", CONFIGURE_VALUE_INT, {.value_int = MM_CAMCORDER_LOG_LEVEL_INFO} }, + { "NetworkCameraHALName", CONFIGURE_VALUE_STRING, {NULL} }, }; /* [VideoInput] matching table */ diff --git a/src/mm_camcorder_gstcommon.c b/src/mm_camcorder_gstcommon.c index efacf54..87eff91 100755 --- a/src/mm_camcorder_gstcommon.c +++ b/src/mm_camcorder_gstcommon.c @@ -558,14 +558,14 @@ int _mmcamcorder_create_preview_elements(MMHandleType handle) _MMCAMCORDER_ELEMENT_MAKE(sc, sc->element, _MMCAMCORDER_VIDEOSRC_FILT, "capsfilter", "videosrc_filter", element_list, err); - /* init high-speed-fps */ + /* set camera properties */ MMCAMCORDER_G_OBJECT_SET(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, "high-speed-fps", 0); - - /* set capture size, quality and flip setting which were set before mm_camcorder_realize */ MMCAMCORDER_G_OBJECT_SET(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, "capture-width", capture_width); MMCAMCORDER_G_OBJECT_SET(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, "capture-height", capture_height); MMCAMCORDER_G_OBJECT_SET(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, "capture-jpg-quality", capture_jpg_quality); MMCAMCORDER_G_OBJECT_SET(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, "hdr-capture", sc->info_image->hdr_capture_mode); + if (hcamcorder->is_network) + MMCAMCORDER_G_OBJECT_SET_POINTER(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, "hal-name", hcamcorder->network_hal_name); _MMCAMCORDER_ELEMENT_MAKE(sc, sc->element, _MMCAMCORDER_VIDEOSRC_QUE, "queue", "videosrc_queue", element_list, err); diff --git a/src/mm_camcorder_internal.c b/src/mm_camcorder_internal.c index ee7596a..7d6a812 100644 --- a/src/mm_camcorder_internal.c +++ b/src/mm_camcorder_internal.c @@ -507,6 +507,15 @@ static gint __mmcamcorder_init_configure_video_capture(mmf_camcorder_t *hcamcord "PlatformPrivilegeCamera", &platform_privilege_camera); + if (hcamcorder->is_network) { + _mmcamcorder_conf_get_value_string((MMHandleType)hcamcorder, hcamcorder->conf_main, + CONFIGURE_CATEGORY_MAIN_GENERAL, + "NetworkCameraHALName", + &hcamcorder->network_hal_name); + + MMCAM_LOG_INFO("network HAL name[%s]", hcamcorder->network_hal_name); + } + ret = mm_camcorder_set_attributes((MMHandleType)hcamcorder, &err_attr_name, MMCAM_CAMERA_DEVICE_COUNT, camera_device_count, MMCAM_CAMERA_FACING_DIRECTION, camera_facing_direction, @@ -619,6 +628,9 @@ int _mmcamcorder_create(MMHandleType *handle, MMCamPreset *info) if (ret != MM_ERROR_NONE) return ret; + /* set network camera flag */ + hcamcorder->is_network = (gboolean)info->reserved[0]; + /* get DPM handle for camera/microphone restriction */ hcamcorder->dpm_handle = dpm_manager_create(); -- 2.34.1