Set network camera HAL name to camerasrc element 52/246752/2
authorJeongmo Yang <jm80.yang@samsung.com>
Wed, 4 Nov 2020 01:51:44 +0000 (10:51 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Wed, 4 Nov 2020 01:55:16 +0000 (10:55 +0900)
[Version] 0.10.224
[Issue Type] Update

Change-Id: I013a281c696413b43167908d8c944da3c0e2a64e
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
packaging/libmm-camcorder.spec
src/include/mm_camcorder_internal.h
src/mm_camcorder_configure.c
src/mm_camcorder_gstcommon.c
src/mm_camcorder_internal.c

index 9dd6d06..2489b66 100755 (executable)
@@ -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
index 1aa86c0..0216bd1 100755 (executable)
@@ -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 */
index e01f642..0556d76 100644 (file)
@@ -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 */
index efacf54..87eff91 100755 (executable)
@@ -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);
 
index ee7596a..7d6a812 100644 (file)
@@ -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();