Support platform privilege for camera device 77/243377/3 accepted/tizen/unified/20200909.155601 submit/tizen/20200908.053247
authorJeongmo Yang <jm80.yang@samsung.com>
Mon, 7 Sep 2020 07:03:03 +0000 (16:03 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Mon, 7 Sep 2020 08:49:26 +0000 (17:49 +0900)
- Enable to check platform privilege for camera device,
  "PlatformPrivilegeCamera" in [General] category is needed in mmfw_camcorder.ini
  which should be read-only file.

[General]
...
PlatformPrivilegeCamera = http://tizen.org/privilege/xxx

[Version] 0.10.213
[Issue Type] New feature

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

index 9d82016cc39c9b2db75c1573823ecae6b64c4b1f..8d2443c22412ba6bb1f6a418b7220b3c763507cd 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmm-camcorder
 Summary:    Camera and recorder library
-Version:    0.10.212
+Version:    0.10.213
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
index 0d9dda1c5e0bec71ec4f8e5428809e526015e4f2..6fdcac9870f11e3e7ce59e797b85eb0dc4b9da25 100644 (file)
@@ -1319,6 +1319,11 @@ extern "C" {
  */
 #define MMCAM_AUDIO_REPLAY_GAIN_REFERENCE_LEVEL "audio-replay-gain-reference-level"
 
+/**
+ * Platform privilege name for camera device
+ */
+#define MMCAM_PLATFORM_PRIVILEGE_CAMERA         "platform-privilege-camera"
+
 /*=======================================================================================
 | ENUM DEFINITIONS                                                                     |
 ========================================================================================*/
index 2e8cbadc80c16c2725a54022853940b8a79b4ba0..db22af1623737527a7fcb62b366391c2cd6354c6 100644 (file)
@@ -190,6 +190,7 @@ typedef enum {
        MM_CAM_AUDIO_REPLAY_GAIN_REFERENCE_LEVEL,
        MM_CAM_SUPPORT_USER_BUFFER,
        MM_CAM_USER_BUFFER_FD,
+       MM_CAM_PLATFORM_PRIVILEGE_CAMERA,
        MM_CAM_ATTRIBUTE_NUM
 } MMCamcorderAttrsID;
 
index 192d3eab1febacfaeb38b75260dd8767cd3be9e8..e4fdbd9360d421ba368d2730a8500f2e3f2e9b64 100644 (file)
@@ -62,7 +62,8 @@ static int readonly_attributes[] = {
        MM_CAM_RECOMMEND_DISPLAY_ROTATION,
        MM_CAM_SUPPORT_ZSL_CAPTURE,
        MM_CAM_SUPPORT_ZERO_COPY_FORMAT,
-       MM_CAM_SUPPORT_MEDIA_PACKET_PREVIEW_CB
+       MM_CAM_SUPPORT_MEDIA_PACKET_PREVIEW_CB,
+       MM_CAM_PLATFORM_PRIVILEGE_CAMERA
 };
 
 /*-----------------------------------------------------------------------
@@ -1631,6 +1632,17 @@ _mmcamcorder_alloc_attribute(MMHandleType handle)
                        {0},
                        {0},
                        NULL,
+               },
+               {
+                       MM_CAM_PLATFORM_PRIVILEGE_CAMERA,
+                       "platform-privilege-camera",
+                       MM_ATTRS_TYPE_STRING,
+                       MM_ATTRS_FLAG_RW,
+                       {NULL},
+                       MM_ATTRS_VALID_TYPE_NONE,
+                       {0},
+                       {0},
+                       NULL,
                }
        };
 
index 2f7758257c46025f417300f80b77c08f23853a93..0a17758a7fede90128cedb46245a699a76798bd4 100644 (file)
@@ -622,10 +622,11 @@ int _mmcamcorder_conf_init(MMHandleType handle, int type, camera_conf *configure
 
        /* [General] matching table */
        static conf_info_table conf_main_general_table[] = {
-               { "SyncStateChange", CONFIGURE_VALUE_INT,           {.value_int = 1} },
-               { "GSTInitOption",   CONFIGURE_VALUE_STRING_ARRAY,  {NULL} },
-               { "ModelName",       CONFIGURE_VALUE_STRING,        {NULL} },
-               { "DisabledAttributes", CONFIGURE_VALUE_STRING_ARRAY,  {NULL} },
+               { "SyncStateChange",            CONFIGURE_VALUE_INT,            {.value_int = 1} },
+               { "GSTInitOption",              CONFIGURE_VALUE_STRING_ARRAY,   {NULL} },
+               { "ModelName",                  CONFIGURE_VALUE_STRING,         {NULL} },
+               { "DisabledAttributes",         CONFIGURE_VALUE_STRING_ARRAY,   {NULL} },
+               { "PlatformPrivilegeCamera",    CONFIGURE_VALUE_STRING,         {NULL} },
        };
 
        /* [VideoInput] matching table */
index 4c2cc1ff92e1ab33076cecd0b764455785102351..354609d67ca8093ca492fcc398f83e5ab556252e 100644 (file)
@@ -325,6 +325,7 @@ static gint __mmcamcorder_init_configure_video_capture(mmf_camcorder_t *hcamcord
        int camera_facing_direction = MM_CAMCORDER_CAMERA_FACING_DIRECTION_REAR;
        char *err_attr_name = NULL;
        char conf_file_name[__MMCAMCORDER_CONF_FILENAME_LENGTH] = {'\0',};
+       const char *platform_privilege_camera = NULL;
        MMCamAttrsInfo fps_info;
 #ifdef _MMCAMCORDER_CAMERA_CONF_MGR_SUPPORT
        camera_conf_error_e ret_conf = CAMERA_CONF_MGR_ERROR_NONE;
@@ -492,6 +493,12 @@ static gint __mmcamcorder_init_configure_video_capture(mmf_camcorder_t *hcamcord
                _mmcam_dbg_log("camera_default_flip : [%d]", camera_default_flip);
        }
 
+       /* Get platform privilege */
+       _mmcamcorder_conf_get_value_string((MMHandleType)hcamcorder, hcamcorder->conf_main,
+               CONFIGURE_CATEGORY_MAIN_GENERAL,
+               "PlatformPrivilegeCamera",
+               &platform_privilege_camera);
+
        ret = mm_camcorder_set_attributes((MMHandleType)hcamcorder, &err_attr_name,
                MMCAM_CAMERA_DEVICE_COUNT, camera_device_count,
                MMCAM_CAMERA_FACING_DIRECTION, camera_facing_direction,
@@ -505,6 +512,8 @@ static gint __mmcamcorder_init_configure_video_capture(mmf_camcorder_t *hcamcord
                MMCAM_CAMERA_FPS, fps_info.int_array.def,
                MMCAM_DISPLAY_FLIP, camera_default_flip,
                MMCAM_CAPTURE_SOUND_ENABLE, play_capture_sound,
+               MMCAM_PLATFORM_PRIVILEGE_CAMERA, platform_privilege_camera,
+                       platform_privilege_camera ? strlen(platform_privilege_camera) : 0,
                NULL);
        if (ret != MM_ERROR_NONE) {
                _mmcam_dbg_err("[0x%x] Set %s FAILED.", ret, err_attr_name ? err_attr_name : "[UNKNOWN]");