Support new internal API to request codec config 56/283056/1 accepted/tizen/unified/20221102.020610
authorJeongmo Yang <jm80.yang@samsung.com>
Mon, 17 Oct 2022 10:13:41 +0000 (19:13 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Mon, 17 Oct 2022 10:15:10 +0000 (19:15 +0900)
[Version] 0.3.56
[Issue Type] New feature

Change-Id: I42605f21fea30039a8f19950fc4df599de7e0dee
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 affff2c..85df767 100644 (file)
@@ -3934,6 +3934,7 @@ int legacy_camera_attr_set_extra_preview_bitrate(camera_h camera, int stream_id,
 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);
+int legacy_camera_request_codec_config(camera_h camera);
 
 
 #define CAM_LOG_CRITICAL(format, args...) \
index 08d6214..dd4f539 100644 (file)
@@ -4442,6 +4442,21 @@ int legacy_camera_attr_get_focus_level_range(camera_h camera, int *min, int *max
 }
 
 
+int legacy_camera_request_codec_config(camera_h camera)
+{
+       int ret = MM_ERROR_NONE;
+       camera_s *handle = (camera_s *)camera;
+
+       camera_return_val_if_fail(handle, CAMERA_ERROR_INVALID_PARAMETER);
+
+       ret = mm_camcorder_set_attributes(handle->mm_handle, NULL,
+               MMCAM_REQUEST_CODEC_CONFIG, TRUE,
+               NULL);
+
+       return __convert_camera_error_code(__func__, ret);
+}
+
+
 int legacy_camera_get_log_level(void)
 {
        return mm_camcorder_get_log_level();
index d168075..e328735 100644 (file)
@@ -208,6 +208,7 @@ typedef enum {
        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_REQUEST_CODEC_CONFIG,
        MUSE_CAMERA_API_MAX
 } muse_camera_api_e;
 
index 6f49742..fbb2fe9 100644 (file)
@@ -5638,6 +5638,27 @@ int camera_dispatcher_attr_get_focus_level_range(muse_module_h module)
 }
 
 
+int camera_dispatcher_request_codec_config(muse_module_h module)
+{
+       int ret = CAMERA_ERROR_NONE;
+       muse_camera_handle_s *muse_camera = NULL;
+       muse_camera_api_e api = MUSE_CAMERA_API_REQUEST_CODEC_CONFIG;
+       muse_camera_api_class_e class = MUSE_CAMERA_API_CLASS_IMMEDIATE;
+
+       muse_camera = (muse_camera_handle_s *)muse_server_ipc_get_handle(module);
+
+       CAM_LOG_INFO("handle[%p]", muse_camera);
+
+       ret = legacy_camera_request_codec_config(muse_camera->camera_handle);
+
+       CAM_LOG_INFO("ret[0x%x]", ret);
+
+       muse_camera_msg_return(api, class, ret, module);
+
+       return MUSE_CAMERA_ERROR_NONE;
+}
+
+
 static tbm_bo __camera_normal_buffer_bo_new(MMCamcorderVideoStreamDataType *stream, tbm_bufmgr bufmgr)
 {
        int data_size[3] = {0, 0, 0};
@@ -5994,7 +6015,8 @@ int (*dispatcher[MUSE_CAMERA_API_MAX]) (muse_module_h module) = {
        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_set_extra_preview_device /* MUSE_CAMERA_API_SET_EXTRA_PREVIEW_DEVICE */
+       camera_dispatcher_set_extra_preview_device, /* MUSE_CAMERA_API_SET_EXTRA_PREVIEW_DEVICE */
+       camera_dispatcher_request_codec_config /* MUSE_CAMERA_API_REQUEST_CODEC_CONFIG */
 };
 
 
index 65f3faa..842d377 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mmsvc-camera
 Summary:    A Camera module for muse server
-Version:    0.3.55
+Version:    0.3.56
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0