Support new internal APIs for extra preview GOP interval 12/263712/2 accepted/tizen/6.5/unified/20211028.122725 accepted/tizen/unified/20210916.014239 submit/tizen/20210915.115302 submit/tizen_6.5/20211028.162401 tizen_6.5.m2_release
authorJeongmo Yang <jm80.yang@samsung.com>
Wed, 8 Sep 2021 12:59:38 +0000 (21:59 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Mon, 13 Sep 2021 08:49:34 +0000 (17:49 +0900)
[Version] 0.3.48
[Issue Type] New feature

Change-Id: Idda95dc4b53550af82f89a7fa9c0aed26556f86f
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 a7b0a55..29d341b 100644 (file)
@@ -3918,6 +3918,8 @@ int legacy_camera_set_extra_preview_stream_format(camera_h camera, int stream_id
 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);
+int legacy_camera_attr_set_extra_preview_gop_interval(camera_h camera, int stream_id, int interval);
+int legacy_camera_attr_get_extra_preview_gop_interval(camera_h camera, int stream_id, int *interval);
 
 
 #define CAM_LOG_CRITICAL(format, args...) \
index 0ae933a..a07e1ef 100644 (file)
@@ -4310,6 +4310,37 @@ int legacy_camera_attr_get_extra_preview_bitrate(camera_h camera, int stream_id,
 }
 
 
+int legacy_camera_attr_set_extra_preview_gop_interval(camera_h camera, int stream_id, int interval)
+{
+       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], interval[%d]", stream_id, interval);
+
+       ret = mm_camcorder_set_extra_preview_gop_interval(handle->mm_handle, stream_id, interval);
+
+       return __convert_camera_error_code(__func__, ret);
+}
+
+
+int legacy_camera_attr_get_extra_preview_gop_interval(camera_h camera, int stream_id, int *interval)
+{
+       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(interval, CAMERA_ERROR_INVALID_PARAMETER);
+
+       ret = mm_camcorder_get_extra_preview_gop_interval(handle->mm_handle, stream_id, interval);
+
+       CAM_LOG_INFO("get extra preview[id:%d], interval[%d]", stream_id, *interval);
+
+       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 d6e47bf..24d3ba9 100644 (file)
@@ -204,6 +204,8 @@ typedef enum {
        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_ATTR_SET_EXTRA_PREVIEW_GOP_INTERVAL,
+       MUSE_CAMERA_API_ATTR_GET_EXTRA_PREVIEW_GOP_INTERVAL,    /* 170 */
        MUSE_CAMERA_API_MAX
 } muse_camera_api_e;
 
@@ -323,6 +325,7 @@ typedef enum {
        MUSE_CAMERA_GET_INT_FLASH_BRIGHTNESS,
        MUSE_CAMERA_GET_INT_FOCUS_LEVEL,
        MUSE_CAMERA_GET_INT_EXTRA_PREVIEW_BITRATE,
+       MUSE_CAMERA_GET_INT_EXTRA_PREVIEW_GOP_INTERVAL,
        MUSE_CAMERA_GET_INT_NUM
 } muse_camera_get_int_e;
 
index 09ab969..0a30fc2 100644 (file)
@@ -5468,6 +5468,59 @@ int camera_dispatcher_attr_get_extra_preview_bitrate(muse_module_h module)
 }
 
 
+int camera_dispatcher_attr_set_extra_preview_gop_interval(muse_module_h module)
+{
+       int ret = CAMERA_ERROR_NONE;
+       int stream_id = 0;
+       int interval = 0;
+       muse_camera_handle_s *muse_camera = NULL;
+       muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_EXTRA_PREVIEW_GOP_INTERVAL;
+       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(interval, muse_server_module_get_msg(module));
+
+       CAM_LOG_INFO("[%p] set extra preview[id:%d] GOP interval[%d]", muse_camera, stream_id, interval);
+
+       ret = legacy_camera_attr_set_extra_preview_gop_interval(muse_camera->camera_handle, stream_id, interval);
+
+       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_gop_interval(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_GOP_INTERVAL;
+       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_gop_interval(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_GOP_INTERVAL, "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;
@@ -5892,8 +5945,10 @@ int (*dispatcher[MUSE_CAMERA_API_MAX]) (muse_module_h module) = {
        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_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, */
+       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 */
+       camera_dispatcher_attr_set_extra_preview_gop_interval, /* MUSE_CAMERA_API_ATTR_SET_EXTRA_PREVIEW_GOP_INTERVAL */
+       camera_dispatcher_attr_get_extra_preview_gop_interval /* MUSE_CAMERA_API_ATTR_GET_EXTRA_PREVIEW_GOP_INTERVAL */
 };
 
 
index da10bd4..7c24c40 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mmsvc-camera
 Summary:    A Camera module for muse server
-Version:    0.3.47
+Version:    0.3.48
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0