Apply camera/recoder privilege to webrtc_add_media_source() API 35/252035/3
authorSangchul Lee <sc11.lee@samsung.com>
Fri, 22 Jan 2021 03:20:09 +0000 (12:20 +0900)
committerSangchul Lee <sc11.lee@samsung.com>
Mon, 25 Jan 2021 07:10:36 +0000 (16:10 +0900)
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 <sc11.lee@samsung.com>
include/webrtc.h
packaging/capi-media-webrtc.spec
src/webrtc.c

index 3ad4690fdeb26803a191d4c4625e0d8699fb5c00..fd57627db98b02eb70bad1fbc2651a9fa7e2fd90 100644 (file)
@@ -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
index 63b6e33a7bd6ebb4021010c6e023133dfa4b0ae1..db961930abc9c19b82da50e4e7702ab077b622c1 100644 (file)
@@ -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
index 4ac79d1baadd56587ae2ab48bbf2d2b6c48ddc40..0f87047ed667803c4cfd161920add8040ddb4506 100644 (file)
@@ -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");