From aa8e825c64c89ede6bd12e98e3d646dd70afd21e Mon Sep 17 00:00:00 2001 From: Jeongmo Yang Date: Mon, 7 Sep 2020 16:03:03 +0900 Subject: [PATCH] Support platform privilege for camera device - 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 --- packaging/libmm-camcorder.spec | 2 +- src/include/mm_camcorder.h | 5 +++++ src/include/mm_camcorder_attribute.h | 1 + src/mm_camcorder_attribute.c | 14 +++++++++++++- src/mm_camcorder_configure.c | 9 +++++---- src/mm_camcorder_internal.c | 9 +++++++++ 6 files changed, 34 insertions(+), 6 deletions(-) diff --git a/packaging/libmm-camcorder.spec b/packaging/libmm-camcorder.spec index 9d82016..8d2443c 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.212 +Version: 0.10.213 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/include/mm_camcorder.h b/src/include/mm_camcorder.h index 0d9dda1..6fdcac9 100644 --- a/src/include/mm_camcorder.h +++ b/src/include/mm_camcorder.h @@ -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 | ========================================================================================*/ diff --git a/src/include/mm_camcorder_attribute.h b/src/include/mm_camcorder_attribute.h index 2e8cbad..db22af1 100644 --- a/src/include/mm_camcorder_attribute.h +++ b/src/include/mm_camcorder_attribute.h @@ -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; diff --git a/src/mm_camcorder_attribute.c b/src/mm_camcorder_attribute.c index 192d3ea..e4fdbd9 100644 --- a/src/mm_camcorder_attribute.c +++ b/src/mm_camcorder_attribute.c @@ -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, } }; diff --git a/src/mm_camcorder_configure.c b/src/mm_camcorder_configure.c index 2f77582..0a17758 100644 --- a/src/mm_camcorder_configure.c +++ b/src/mm_camcorder_configure.c @@ -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 */ diff --git a/src/mm_camcorder_internal.c b/src/mm_camcorder_internal.c index 4c2cc1f..354609d 100644 --- a/src/mm_camcorder_internal.c +++ b/src/mm_camcorder_internal.c @@ -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]"); -- 2.34.1