Add new interface for extra preview bitrate 18/263318/3 accepted/tizen/unified/20210906.123748 submit/tizen/20210903.031152
authorJeongmo Yang <jm80.yang@samsung.com>
Tue, 31 Aug 2021 09:11:47 +0000 (18:11 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Thu, 2 Sep 2021 10:35:12 +0000 (19:35 +0900)
[Version] 0.0.12
[Issue Type] New feature

Change-Id: Ic435ebea2fe7f0972f8d0278669f14e7d0030428
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
include/hal-camera-interface.h
include/hal-camera.h
packaging/hal-api-camera.spec
src/hal-api-camera.c

index 9203736bd74507f675bf7b034558653b55ac5e2b..b24781446303c39854a790c4566120a3e4d65c8c 100644 (file)
@@ -239,6 +239,7 @@ typedef struct camera_format {
        camera_pixel_format_e capture_format;
        camera_resolution_s capture_resolution;
        uint32_t capture_quality;
+       uint32_t stream_bitrate;
 } camera_format_s;
 
 /**
@@ -624,6 +625,8 @@ typedef struct _hal_backend_media_camera_funcs {
        int (*release_extra_preview_buffer)(void *camera_handle, int stream_id, int buffer_index);
        int (*set_extra_preview_stream_format)(void *camera_handle, int stream_id, camera_format_s *format);
        int (*get_extra_preview_stream_format)(void *camera_handle, int stream_id, camera_format_s *format);
+       int (*set_extra_preview_bitrate)(void *camera_handle, int stream_id, int bitrate);
+       int (*get_extra_preview_bitrate)(void *camera_handle, int stream_id, int *bitrate);
 } hal_backend_camera_funcs;
 
 /**
index 77a507118e87dd82ec324cffd069abd4923a26b0..608c33dae2c738e6fa6dba0f20d8280a3c5f6f55 100644 (file)
@@ -287,6 +287,37 @@ int hal_camera_set_extra_preview_stream_format(void *camera_handle, int stream_i
  */
 int hal_camera_get_extra_preview_stream_format(void *camera_handle, int stream_id, camera_format_s *format);
 
+/**
+ * @brief Sets the bitrate of the extra preview.
+ * @since_tizen 6.5
+ * @param[in] camera_handle The handle to the camera HAL
+ * @param[in] stream_id The id of extra preview stream
+ * @param[in] bitrate The bitrate(bps) of the extra preview
+ * @return @c 0 on success, otherwise a negative error value
+ * @retval #CAMERA_ERROR_NONE Successful
+ * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
+ * @retval #CAMERA_ERROR_DEVICE_NOT_SUPPORTED The feature is not supported
+ * @pre The camera state must be set to #CAMERA_STATE_OPENED.
+ * @see hal_camera_get_extra_preview_bitrate()
+ */
+int hal_camera_set_extra_preview_bitrate(void *camera_handle, int stream_id, int bitrate);
+
+/**
+ * @brief Gets the bitrate of the extra preview.
+ * @since_tizen 6.5
+ * @param[in] camera_handle The handle to the camera HAL
+ * @param[in] stream_id The id of extra preview stream
+ * @param[out] bitrate The bitrate(bps) of the extra preview
+ * @return @c 0 on success, otherwise a negative error value
+ * @retval #CAMERA_ERROR_NONE Successful
+ * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
+ * @retval #CAMERA_ERROR_DEVICE_NOT_SUPPORTED The feature is not supported
+ * @see hal_camera_set_extra_preview_bitrate()
+ */
+int hal_camera_get_extra_preview_bitrate(void *camera_handle, int stream_id, int *bitrate);
+
 /**
  * @brief Sets a callback function to be called for extra preview frames.
  * @since_tizen 6.5
index 5a09d0103e270e0e890921909042d81a8736212c..168df1b0bd40f7f51958b4774549f07ac8999725 100644 (file)
@@ -4,7 +4,7 @@
 ### main package #########
 Name:       %{name}
 Summary:    %{name} interface
-Version:    0.0.11
+Version:    0.0.12
 Release:    0
 Group:      Development/Libraries
 License:    Apache-2.0
index 2d69734ac2eb071299099c314653efbd7b1b634e..f878060c93a9d006df2bd6ad6bc3b2efce7519c5 100644 (file)
@@ -432,6 +432,30 @@ int hal_camera_get_extra_preview_stream_format(void *camera_handle, int stream_i
 }
 
 
+int hal_camera_set_extra_preview_bitrate(void *camera_handle, int stream_id, int bitrate)
+{
+       hal_camera_s *handle = (hal_camera_s *)camera_handle;
+
+       HAL_CAMERA_RETURN_IF_FAILED(handle, CAMERA_ERROR_INVALID_PARAMETER);
+       HAL_CAMERA_RETURN_IF_FAILED(handle->funcs, CAMERA_ERROR_INVALID_PARAMETER);
+       HAL_CAMERA_RETURN_IF_FAILED(handle->funcs->set_extra_preview_bitrate, CAMERA_ERROR_NOT_IMPLEMENTED);
+
+       return handle->funcs->set_extra_preview_bitrate(handle->backend, stream_id, bitrate);
+}
+
+
+int hal_camera_get_extra_preview_bitrate(void *camera_handle, int stream_id, int *bitrate)
+{
+       hal_camera_s *handle = (hal_camera_s *)camera_handle;
+
+       HAL_CAMERA_RETURN_IF_FAILED(handle, CAMERA_ERROR_INVALID_PARAMETER);
+       HAL_CAMERA_RETURN_IF_FAILED(handle->funcs, CAMERA_ERROR_INVALID_PARAMETER);
+       HAL_CAMERA_RETURN_IF_FAILED(handle->funcs->get_extra_preview_bitrate, CAMERA_ERROR_NOT_IMPLEMENTED);
+
+       return handle->funcs->get_extra_preview_bitrate(handle->backend, stream_id, bitrate);
+}
+
+
 int hal_camera_set_command(void *camera_handle, int64_t command, void *value)
 {
        hal_camera_s *handle = (hal_camera_s *)camera_handle;