Support extra preview bitrate functions for test 80/263380/1 accepted/tizen/unified/20210906.123811 submit/tizen/20210903.031152
authorJeongmo Yang <jm80.yang@samsung.com>
Wed, 1 Sep 2021 12:11:55 +0000 (21:11 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Wed, 1 Sep 2021 12:11:55 +0000 (21:11 +0900)
[Version] 0.1.6
[Issue Type] New feature

Change-Id: I0bb662a4e7aa7e982578c20d9fffb0f4d0a92cb3
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
packaging/camera-hal-v4l2.spec
src/hal_camera_v4l2.c

index 67170a2..f8647e5 100644 (file)
@@ -2,7 +2,7 @@
 
 Name:       camera-hal-v4l2
 Summary:    Tizen Camera Hal for V4L2
-Version:    0.1.5
+Version:    0.1.6
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
index a3f136a..31536b7 100644 (file)
@@ -2030,6 +2030,50 @@ int camera_v4l2_get_extra_preview_stream_format(void *camera_handle, int stream_
 }
 
 
+int camera_v4l2_set_extra_preview_bitrate(void *camera_handle, int stream_id, int bitrate)
+{
+       hal_camera_handle *handle = (hal_camera_handle *)camera_handle;
+
+       if (!handle) {
+               LOGE("NULL handle");
+               return CAMERA_ERROR_INVALID_PARAMETER;
+       }
+
+       if (stream_id < 0 || stream_id >= EXTRA_PREVIEW_STREAM_MAX) {
+               LOGE("invalid stream_id[%d]", stream_id);
+               return CAMERA_ERROR_INVALID_PARAMETER;
+       }
+
+       LOGI("set bitrate[%d] for stream_id[%d]", bitrate, stream_id);
+
+       handle->extra_preview_format[stream_id].stream_bitrate = (uint32_t)bitrate;
+
+       return CAMERA_ERROR_NONE;
+}
+
+
+int camera_v4l2_get_extra_preview_bitrate(void *camera_handle, int stream_id, int *bitrate)
+{
+       hal_camera_handle *handle = (hal_camera_handle *)camera_handle;
+
+       if (!handle || !bitrate) {
+               LOGE("NULL param[%p,%p]", handle, bitrate);
+               return CAMERA_ERROR_INVALID_PARAMETER;
+       }
+
+       if (stream_id < 0 || stream_id >= EXTRA_PREVIEW_STREAM_MAX) {
+               LOGE("invalid stream_id[%d]", stream_id);
+               return CAMERA_ERROR_INVALID_PARAMETER;
+       }
+
+       *bitrate = (int)handle->extra_preview_format[stream_id].stream_bitrate;
+
+       LOGI("get bitrate[%d] for stream_id[%d]", *bitrate, stream_id);
+
+       return CAMERA_ERROR_NONE;
+}
+
+
 static int __set_command(hal_camera_handle *handle, int64_t command, void *value)
 {
        int cid = 0;
@@ -2364,6 +2408,8 @@ static int camera_v4l2_backend_init(void **data)
        funcs->release_extra_preview_buffer = camera_v4l2_release_extra_preview_buffer;
        funcs->set_extra_preview_stream_format = camera_v4l2_set_extra_preview_stream_format;
        funcs->get_extra_preview_stream_format = camera_v4l2_get_extra_preview_stream_format;
+       funcs->set_extra_preview_bitrate = camera_v4l2_set_extra_preview_bitrate;
+       funcs->get_extra_preview_bitrate = camera_v4l2_get_extra_preview_bitrate;
 
        *data = (void *)funcs;