Support new internal API to set device for extra preview 79/281479/1 accepted/tizen_7.0_unified_hotfix tizen_7.0_hotfix accepted/tizen/7.0/unified/hotfix/20221116.105444 accepted/tizen/unified/20220920.110652 tizen_7.0_m2_release
authorJeongmo Yang <jm80.yang@samsung.com>
Mon, 19 Sep 2022 10:49:33 +0000 (19:49 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Mon, 19 Sep 2022 10:49:33 +0000 (19:49 +0900)
[Version] 0.3.55
[Issue Type] New feature

Change-Id: Idb4f8fc09d1471baf77f71ac235f605d78254b27
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 9495cd6..affff2c 100644 (file)
@@ -3927,6 +3927,7 @@ void legacy_camera_send_signal(camera_h camera);
 int legacy_camera_get_platform_privilege(camera_h camera, const char **platform_privilege);
 int legacy_camera_get_log_level(void);
 int legacy_camera_enable_extra_preview(camera_h camera, bool enable);
+int legacy_camera_set_extra_preview_device(camera_h camera, int stream_id, camera_device_e device);
 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);
index d1e6535..08d6214 100644 (file)
@@ -4268,6 +4268,21 @@ int legacy_camera_enable_extra_preview(camera_h camera, bool enable)
 }
 
 
+int legacy_camera_set_extra_preview_device(camera_h camera, int stream_id, camera_device_e device)
+{
+       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 device[%d] for stream[%d]", device, stream_id);
+
+       ret = mm_camcorder_set_extra_preview_device_type(handle->mm_handle, stream_id, device);
+
+       return __convert_camera_error_code(__func__, ret);
+}
+
+
 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 ret = MM_ERROR_NONE;
index 00cc9fe..d168075 100644 (file)
@@ -207,6 +207,7 @@ typedef enum {
        MUSE_CAMERA_API_ATTR_SET_EXTRA_PREVIEW_GOP_INTERVAL,
        MUSE_CAMERA_API_ATTR_GET_EXTRA_PREVIEW_GOP_INTERVAL,    /* 170 */
        MUSE_CAMERA_API_SUPPORT_EXTRA_PREVIEW,
+       MUSE_CAMERA_API_SET_EXTRA_PREVIEW_DEVICE,
        MUSE_CAMERA_API_MAX
 } muse_camera_api_e;
 
index 454d932..6f49742 100644 (file)
@@ -5371,6 +5371,32 @@ int camera_dispatcher_unset_extra_preview_cb(muse_module_h module)
 }
 
 
+int camera_dispatcher_set_extra_preview_device(muse_module_h module)
+{
+       int ret = CAMERA_ERROR_NONE;
+       int stream_id = 0;
+       int device = 0;
+       muse_camera_handle_s *muse_camera = NULL;
+       muse_camera_api_e api = MUSE_CAMERA_API_SET_EXTRA_PREVIEW_DEVICE;
+       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(device, muse_server_module_get_msg(module));
+
+       CAM_LOG_INFO("handle[%p], stream_id[%d], device[%d]", muse_camera, stream_id, device);
+
+       ret = legacy_camera_set_extra_preview_device(muse_camera->camera_handle, stream_id, device);
+
+       CAM_LOG_INFO("ret[0x%x]", ret);
+
+       muse_camera_msg_return(api, class, ret, module);
+
+       return MUSE_CAMERA_ERROR_NONE;
+}
+
+
 int camera_dispatcher_set_extra_preview_stream_format(muse_module_h module)
 {
        int ret = CAMERA_ERROR_NONE;
@@ -5967,7 +5993,8 @@ int (*dispatcher[MUSE_CAMERA_API_MAX]) (muse_module_h module) = {
        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 */
-       camera_dispatcher_is_supported_extra_preview /* MUSE_CAMERA_API_SUPPORT_EXTRA_PREVIEW, */
+       camera_dispatcher_is_supported_extra_preview, /* MUSE_CAMERA_API_SUPPORT_EXTRA_PREVIEW, */
+       camera_dispatcher_set_extra_preview_device /* MUSE_CAMERA_API_SET_EXTRA_PREVIEW_DEVICE */
 };
 
 
index 83ac1e1..65f3faa 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mmsvc-camera
 Summary:    A Camera module for muse server
-Version:    0.3.54
+Version:    0.3.55
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0