CameraApiBackend: set camera device according to config 53/313753/1
authorVibhav Aggarwal <v.aggarwal@samsung.com>
Mon, 1 Jul 2024 11:40:50 +0000 (20:40 +0900)
committerVibhav Aggarwal <v.aggarwal@samsung.com>
Mon, 1 Jul 2024 11:40:50 +0000 (20:40 +0900)
[Issue type] bug fix

The camera device was being set in the constructor and
had no effect from the config. This patch fixes this behaviour.

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

index faee9abf0a9f2182e47ec35902ab5c47958e8fdf..7aaa1f3e0cee11cb51dba20093e5ff7ec0f5b8ef 100644 (file)
@@ -33,12 +33,6 @@ bool CameraApiBackend::_registered = registerCameraBackend<CameraApiBackend>("Ca
 CameraApiBackend::CameraApiBackend()
 {
        updateAvailableCameraDevices();
-
-       int ret = camera_create(_active_camera_id, &_camera);
-       if (ret != CAMERA_ERROR_NONE) {
-               SINGLEO_LOGE("CameraApiBackend: camera_create failed. ret: %d", ret);
-               throw InvalidOperation("CameraApiBackend: camera_create failed.");
-       }
 }
 
 CameraApiBackend::~CameraApiBackend()
@@ -62,8 +56,6 @@ void CameraApiBackend::updateAvailableCameraDevices()
 
        if (_camera_ids.empty())
                throw InvalidOperation("No valid camera device found");
-
-       setActiveCameraDevice(*_camera_ids.begin());
 }
 
 void CameraApiBackend::setActiveCameraDevice(unsigned int id)
@@ -75,6 +67,12 @@ void CameraApiBackend::setActiveCameraDevice(unsigned int id)
 
        _active_camera_id = _cameraDeviceIdTable[id];
 
+       int ret = camera_create(_active_camera_id, &_camera);
+       if (ret != CAMERA_ERROR_NONE) {
+               SINGLEO_LOGE("CameraApiBackend: camera_create failed. ret: %d", ret);
+               throw InvalidOperation("CameraApiBackend: camera_create failed.");
+       }
+
        SINGLEO_LOGD("Camera device id(%d) has been activated.", id);
 }