Support new internal APIs for extra preview bitrate 09/263309/3 accepted/tizen/unified/20210906.123735 submit/tizen/20210903.031152
authorJeongmo Yang <jm80.yang@samsung.com>
Tue, 31 Aug 2021 08:37:05 +0000 (17:37 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Thu, 2 Sep 2021 10:52:39 +0000 (19:52 +0900)
[Version] 0.3.47
[Issue Type] New feature

Change-Id: I9d13e090f8720d9459fdf0ec43b0c3a423713aa5
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
legacy/include/legacy_camera.h
legacy/src/legacy_camera.c
muse/include/muse_camera.h
muse/src/muse_camera_dispatcher.c
packaging/mmsvc-camera.spec

index 2079c436ecb264c4cbc5e075872e47c711d70a3e..a7b0a55fb5a9de9147903e17b8afe5a20a6bf8f6 100644 (file)
@@ -3916,6 +3916,8 @@ int legacy_camera_get_log_level(void);
 int legacy_camera_enable_extra_preview(camera_h camera, bool enable);
 int legacy_camera_set_extra_preview_stream_format(camera_h camera, int stream_id, camera_pixel_format_e pixel_format, int width, int height, int fps);
 int legacy_camera_get_extra_preview_stream_format(camera_h camera, int stream_id, camera_pixel_format_e *pixel_format, int *width, int *height, int *fps);
+int legacy_camera_attr_set_extra_preview_bitrate(camera_h camera, int stream_id, int bitrate);
+int legacy_camera_attr_get_extra_preview_bitrate(camera_h camera, int stream_id, int *bitrate);
 
 
 #define CAM_LOG_CRITICAL(format, args...) \
index 5194b07d64e27bc02834ae8afc43545b77b3a1a3..0ae933a3a72120dd077475dd7aac79233930c160 100644 (file)
@@ -4279,6 +4279,37 @@ int legacy_camera_get_extra_preview_stream_format(camera_h camera, int stream_id
 }
 
 
+int legacy_camera_attr_set_extra_preview_bitrate(camera_h camera, int stream_id, int bitrate)
+{
+       int ret = MM_ERROR_NONE;
+       camera_s *handle = (camera_s *)camera;
+
+       camera_return_val_if_fail(handle, CAMERA_ERROR_INVALID_PARAMETER);
+
+       CAM_LOG_INFO("set extra preview[id:%d], bitrate[%d]", stream_id, bitrate);
+
+       ret = mm_camcorder_set_extra_preview_bitrate(handle->mm_handle, stream_id, bitrate);
+
+       return __convert_camera_error_code(__func__, ret);
+}
+
+
+int legacy_camera_attr_get_extra_preview_bitrate(camera_h camera, int stream_id, int *bitrate)
+{
+       int ret = MM_ERROR_NONE;
+       camera_s *handle = (camera_s *)camera;
+
+       camera_return_val_if_fail(handle, CAMERA_ERROR_INVALID_PARAMETER);
+       camera_return_val_if_fail(bitrate, CAMERA_ERROR_INVALID_PARAMETER);
+
+       ret = mm_camcorder_get_extra_preview_bitrate(handle->mm_handle, stream_id, bitrate);
+
+       CAM_LOG_INFO("get extra preview[id:%d], bitrate[%d]", stream_id, *bitrate);
+
+       return __convert_camera_error_code(__func__, ret);
+}
+
+
 int legacy_camera_attr_set_focus_level(camera_h camera, int level)
 {
        int ret = MM_ERROR_NONE;
index dcf0fdf3da3e0878c91096166e59e410961a0b84..d6e47bfd368a7f5676bc23a6abe28aa374288702 100644 (file)
@@ -202,6 +202,8 @@ typedef enum {
        MUSE_CAMERA_API_ATTR_GET_FOCUS_LEVEL_RANGE,
        MUSE_CAMERA_API_SET_EXTRA_PREVIEW_STREAM_FORMAT,    /* 165 */
        MUSE_CAMERA_API_GET_EXTRA_PREVIEW_STREAM_FORMAT,
+       MUSE_CAMERA_API_ATTR_SET_EXTRA_PREVIEW_BITRATE,
+       MUSE_CAMERA_API_ATTR_GET_EXTRA_PREVIEW_BITRATE,
        MUSE_CAMERA_API_MAX
 } muse_camera_api_e;
 
@@ -320,6 +322,7 @@ typedef enum {
        MUSE_CAMERA_GET_INT_HUE,
        MUSE_CAMERA_GET_INT_FLASH_BRIGHTNESS,
        MUSE_CAMERA_GET_INT_FOCUS_LEVEL,
+       MUSE_CAMERA_GET_INT_EXTRA_PREVIEW_BITRATE,
        MUSE_CAMERA_GET_INT_NUM
 } muse_camera_get_int_e;
 
index 1b47a2418a354c90426ee00f765ef40689bb21d9..09ab96913f04c48fbaffe3e43cef7847d31dda6d 100644 (file)
@@ -5415,6 +5415,59 @@ int camera_dispatcher_get_extra_preview_stream_format(muse_module_h module)
 }
 
 
+int camera_dispatcher_attr_set_extra_preview_bitrate(muse_module_h module)
+{
+       int ret = CAMERA_ERROR_NONE;
+       int stream_id = 0;
+       int bitrate = 0;
+       muse_camera_handle_s *muse_camera = NULL;
+       muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_EXTRA_PREVIEW_BITRATE;
+       muse_camera_api_class_e class = MUSE_CAMERA_API_CLASS_IMMEDIATE;
+
+       muse_camera = (muse_camera_handle_s *)muse_server_ipc_get_handle(module);
+
+       muse_camera_msg_get(stream_id, muse_server_module_get_msg(module));
+       muse_camera_msg_get(bitrate, muse_server_module_get_msg(module));
+
+       CAM_LOG_INFO("[%p] set extra preview[id:%d] bitrate[%d]", muse_camera, stream_id, bitrate);
+
+       ret = legacy_camera_attr_set_extra_preview_bitrate(muse_camera->camera_handle, stream_id, bitrate);
+
+       CAM_LOG_INFO("ret[0x%x]", ret);
+
+       muse_camera_msg_return(api, class, ret, module);
+
+       return MUSE_CAMERA_ERROR_NONE;
+}
+
+
+int camera_dispatcher_attr_get_extra_preview_bitrate(muse_module_h module)
+{
+       int ret = CAMERA_ERROR_NONE;
+       int stream_id = 0;
+       int get_value = 0;
+       muse_camera_handle_s *muse_camera = NULL;
+       muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_EXTRA_PREVIEW_BITRATE;
+       muse_camera_api_class_e class = MUSE_CAMERA_API_CLASS_IMMEDIATE;
+
+       muse_camera = (muse_camera_handle_s *)muse_server_ipc_get_handle(module);
+
+       muse_camera_msg_get(stream_id, muse_server_module_get_msg(module));
+
+       CAM_LOG_INFO("handle[%p]", muse_camera);
+
+       ret = legacy_camera_attr_get_extra_preview_bitrate(muse_camera->camera_handle, stream_id, &get_value);
+       if (ret == CAMERA_ERROR_NONE) {
+               muse_camera_msg_return1(api, class, ret, module, MUSE_CAMERA_GET_TYPE_INT,
+                       MUSE_CAMERA_GET_INT_EXTRA_PREVIEW_BITRATE, "get_value", get_value, NULL);
+       } else {
+               muse_camera_msg_return(api, class, ret, module);
+       }
+
+       return MUSE_CAMERA_ERROR_NONE;
+}
+
+
 int camera_dispatcher_attr_set_focus_level(muse_module_h module)
 {
        int ret = CAMERA_ERROR_NONE;
@@ -5838,7 +5891,9 @@ int (*dispatcher[MUSE_CAMERA_API_MAX]) (muse_module_h module) = {
        camera_dispatcher_attr_get_focus_level, /* MUSE_CAMERA_API_ATTR_GET_FOCUS_LEVEL */
        camera_dispatcher_attr_get_focus_level_range, /* MUSE_CAMERA_API_ATTR_GET_FOCUS_LEVEL_RANGE */
        camera_dispatcher_set_extra_preview_stream_format, /* MUSE_CAMERA_API_SET_EXTRA_PREVIEW_STREAM_FORMAT */
-       camera_dispatcher_get_extra_preview_stream_format /* MUSE_CAMERA_API_GET_EXTRA_PREVIEW_STREAM_FORMAT */
+       camera_dispatcher_get_extra_preview_stream_format, /* MUSE_CAMERA_API_GET_EXTRA_PREVIEW_STREAM_FORMAT */
+       camera_dispatcher_attr_set_extra_preview_bitrate, /* MUSE_CAMERA_API_ATTR_SET_EXTRA_PREVIEW_BITRATE, */
+       camera_dispatcher_attr_get_extra_preview_bitrate /* MUSE_CAMERA_API_ATTR_GET_EXTRA_PREVIEW_BITRATE, */
 };
 
 
index 4f4acaafc32217c61ad4d790a0aeb9beb8bb5bef..da10bd4010a613146e74baf8309953e194c18d0c 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mmsvc-camera
 Summary:    A Camera module for muse server
-Version:    0.3.46
+Version:    0.3.47
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0