android: Return -EUSERS when failed to open a Camera that's in use

The correct return value for the HAL for hal_dev_open() when trying to
open a camera that's already opened is EUSERS. Make hal_dev_open()
return -EUSERS, and plumb the logic for this through
CameraHalManager::open().

This allows the following CTS tests to pass:
- android.hardware.camera2.cts.CameraManagerTest#testCameraManagerOpenAllCameras
- android.hardware.camera2.cts.MultiViewTest#testDualCameraPreview

Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
Paul Elder
2021-03-19 18:56:39 +09:00
parent 67e791373d
commit 500c9a1f98
3 changed files with 13 additions and 10 deletions
+3 -1
View File
@@ -10,6 +10,7 @@
#include <map>
#include <mutex>
#include <stddef.h>
#include <tuple>
#include <vector>
#include <hardware/camera_common.h>
@@ -28,7 +29,8 @@ public:
int init();
CameraDevice *open(unsigned int id, const hw_module_t *module);
std::tuple<CameraDevice *, int>
open(unsigned int id, const hw_module_t *module);
unsigned int numCameras() const;
int getCameraInfo(unsigned int id, struct camera_info *info);