From: Sangchul Lee Date: Fri, 22 Jan 2021 03:20:09 +0000 (+0900) Subject: Apply camera/recoder privilege to webrtc_add_media_source() API X-Git-Tag: submit/tizen/20210729.023123~153 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4b0f527418f1d2b881219eff33cca6acf9ea1128;p=platform%2Fcore%2Fapi%2Fwebrtc.git Apply camera/recoder privilege to webrtc_add_media_source() API For WEBRTC_MEDIA_SOURCE_TYPE_CAMERA type privilege: http://tizen.org/privilege/camera privilege level: public For WEBRTC_MEDIA_SOURCE_TYPE_MIC type privilege: http://tizen.org/privilege/recorder privilege level: public [Version] 0.1.88 [Issue Type] Privilege Change-Id: Idc91e92e73807e44678e795f34ff951b9ed57822 Signed-off-by: Sangchul Lee --- diff --git a/include/webrtc.h b/include/webrtc.h index 3ad4690f..fd57627d 100644 --- a/include/webrtc.h +++ b/include/webrtc.h @@ -451,12 +451,15 @@ int webrtc_get_state(webrtc_h webrtc, webrtc_state_e *state); /** * @brief Adds a media source. * @since_tizen 6.5 + * @remarks The camera privilege(%http://tizen.org/privilege/camera) should be added if @a type is #WEBRTC_MEDIA_SOURCE_TYPE_CAMERA.\n + * The recorder privilege(%http://tizen.org/privilege/recorder) should be added if @a type is #WEBRTC_MEDIA_SOURCE_TYPE_MIC. * @param[in] webrtc WebRTC handle * @param[in] type The media source type to be added * @param[out] source_id The media source id * @return @c 0 on success, * otherwise a negative error value * @retval #WEBRTC_ERROR_NONE Successful + * @retval #WEBRTC_ERROR_PERMISSION_DENIED Permission denied * @retval #WEBRTC_ERROR_INVALID_PARAMETER Invalid parameter * @retval #WEBRTC_ERROR_INVALID_OPERATION Invalid operation * @retval #WEBRTC_ERROR_INVALID_STATE Invalid state diff --git a/packaging/capi-media-webrtc.spec b/packaging/capi-media-webrtc.spec index 63b6e33a..db961930 100644 --- a/packaging/capi-media-webrtc.spec +++ b/packaging/capi-media-webrtc.spec @@ -1,6 +1,6 @@ Name: capi-media-webrtc Summary: A WebRTC library in Tizen Native API -Version: 0.1.87 +Version: 0.1.88 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/src/webrtc.c b/src/webrtc.c index 4ac79d1b..0f87047e 100644 --- a/src/webrtc.c +++ b/src/webrtc.c @@ -22,6 +22,8 @@ #include "webrtc_private.h" #define _WEBRTC_PRIVILEGE_INTERNET "http://tizen.org/privilege/internet" +#define _WEBRTC_PRIVILEGE_CAMERA "http://tizen.org/privilege/camera" +#define _WEBRTC_PRIVILEGE_RECORDER "http://tizen.org/privilege/recorder" int webrtc_set_error_cb(webrtc_h webrtc, webrtc_error_cb callback, void *user_data) { @@ -238,6 +240,11 @@ int webrtc_add_media_source(webrtc_h webrtc, webrtc_media_source_type_e type, un RET_VAL_IF(_webrtc == NULL, WEBRTC_ERROR_INVALID_PARAMETER, "webrtc is NULL"); RET_VAL_IF(source_id == NULL, WEBRTC_ERROR_INVALID_PARAMETER, "source_id is NULL"); + if (type == WEBRTC_MEDIA_SOURCE_TYPE_CAMERA) + RET_ERR_IF_PRIVILEGE_IS_NOT_ALLOWED(_WEBRTC_PRIVILEGE_CAMERA); + else if (type == WEBRTC_MEDIA_SOURCE_TYPE_MIC) + RET_ERR_IF_PRIVILEGE_IS_NOT_ALLOWED(_WEBRTC_PRIVILEGE_RECORDER); + g_mutex_lock(&_webrtc->mutex); RET_VAL_WITH_UNLOCK_IF(_webrtc->state != WEBRTC_STATE_IDLE, WEBRTC_ERROR_INVALID_STATE, &_webrtc->mutex, "the state should be IDLE");