CameraApiBackend: set active camera 22/313022/5
authorVibhav Aggarwal <v.aggarwal@samsung.com>
Fri, 14 Jun 2024 07:47:50 +0000 (16:47 +0900)
committerVibhav Aggarwal <v.aggarwal@samsung.com>
Mon, 24 Jun 2024 03:29:55 +0000 (12:29 +0900)
[Issue type] bug fix

Change-Id: I0208af34eca47f174c5c54bf27370ef0a3dca222
Signed-off-by: Vibhav Aggarwal <v.aggarwal@samsung.com>
input/backends/camera_api/include/CameraApiBackend.h
input/backends/camera_api/src/CameraApiBackend.cpp
input/backends/opencv/include/OpencvBackend.h
input/backends/opencv/src/OpencvBackend.cpp

index 3f3fbb2dd61019c5ab446f43d4fd3bc29d317869..2306e96d46ed7cbefc2383b1ad8b3fcf6a2950bf 100644 (file)
@@ -69,7 +69,7 @@ private:
        };
 
        void updateAvailableCameraDevices();
-       void setActivateCameraDevice(unsigned int id);
+       void setActiveCameraDevice(unsigned int id);
        void threadLoop();
        static void previewCb(camera_preview_data_s *data, void *user_data);
        static void captureCb(camera_image_data_s *image, camera_image_data_s *postview, camera_image_data_s *thumbnail,
index f86e2b6a747a4f03d632cf696061bf683f811ea0..faee9abf0a9f2182e47ec35902ab5c47958e8fdf 100644 (file)
@@ -59,9 +59,14 @@ void CameraApiBackend::updateAvailableCameraDevices()
                        SINGLEO_LOGD("camera device id %d is valid.", idx);
                }
        }
+
+       if (_camera_ids.empty())
+               throw InvalidOperation("No valid camera device found");
+
+       setActiveCameraDevice(*_camera_ids.begin());
 }
 
-void CameraApiBackend::setActivateCameraDevice(unsigned int id)
+void CameraApiBackend::setActiveCameraDevice(unsigned int id)
 {
        if (_camera_ids.count(id) == 0) {
                SINGLEO_LOGE("A given camera device id(%d) isn't supported.", id);
@@ -163,7 +168,7 @@ bool CameraApiBackend::captureResolutionCb(int width, int height, void *user_dat
 
 void CameraApiBackend::configure(const CameraConfig &config)
 {
-       setActivateCameraDevice(config.device_id);
+       setActiveCameraDevice(config.device_id);
 
        int ret = camera_foreach_supported_preview_resolution(_camera, previewResolutionCb, this);
        if (ret != CAMERA_ERROR_NONE) {
index d0df1ec96f012d0adb7694c285c28f71307a5289..63cea5579453ab07ad78ff6e96a688e5f7aaf5e7 100644 (file)
@@ -42,7 +42,7 @@ private:
        static bool _registered;
 
        void updateAvailableCameraDevices();
-       void setActivateCameraDevice(unsigned int id);
+       void setActiveCameraDevice(unsigned int id);
        void threadLoop();
 
 public:
index bb8572e6cfeeae67ed1c41274d1d60a71fbf67a3..020379a5be81d49e9000b5d5b3be5f85052556fd 100644 (file)
@@ -61,7 +61,7 @@ void OpencvBackend::registerObserver(IInputObserver *observer)
        SINGLEO_LOGD("OpencvBackend: service has been registered.");
 }
 
-void OpencvBackend::setActivateCameraDevice(unsigned int id)
+void OpencvBackend::setActiveCameraDevice(unsigned int id)
 {
        if (_camera_ids.count(id) == 0)
                throw InvalidOperation("A given camera device id(%d) is not supported.", id);
@@ -73,7 +73,7 @@ void OpencvBackend::setActivateCameraDevice(unsigned int id)
 
 void OpencvBackend::configure(const CameraConfig &config)
 {
-       setActivateCameraDevice(config.device_id);
+       setActiveCameraDevice(config.device_id);
 
        _video_capture = make_unique<cv::VideoCapture>(_active_camera_id);
        if (!_video_capture->isOpened()) {