Camera service: Initialization for camera2 clients and devices
- Refactor initialization code to hide device type from CameraService
- Add metadata queue class to Camera2Device
- Initialization of Camera2Device, Camera2Client
- Conversion from HAL2 device static metadata to camera API
parameters.
Bug: 6243944
Change-Id: I524145b45438e906d8493dae202704ce8f090aeb
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
index b273f6f..d01fcf9 100644
--- a/services/camera/libcameraservice/CameraService.cpp
+++ b/services/camera/libcameraservice/CameraService.cpp
@@ -39,9 +39,7 @@
#include "CameraService.h"
#include "CameraClient.h"
-#include "CameraHardwareInterface.h"
#include "Camera2Client.h"
-#include "Camera2Device.h"
namespace android {
@@ -188,9 +186,6 @@
return NULL;
}
- char camera_device_name[10];
- snprintf(camera_device_name, sizeof(camera_device_name), "%d", cameraId);
-
int deviceVersion;
if (mModule->common.module_api_version == CAMERA_MODULE_API_VERSION_2_0) {
deviceVersion = info.device_version;
@@ -199,33 +194,23 @@
}
switch(deviceVersion) {
- case CAMERA_DEVICE_API_VERSION_1_0: {
- sp<CameraHardwareInterface> hardware =
- new CameraHardwareInterface(camera_device_name);
- if (hardware->initialize(&mModule->common) != OK) {
- return NULL;
- }
-
- client = new CameraClient(this, cameraClient, hardware, cameraId,
+ case CAMERA_DEVICE_API_VERSION_1_0:
+ client = new CameraClient(this, cameraClient, cameraId,
info.facing, callingPid);
break;
- }
- case CAMERA_DEVICE_API_VERSION_2_0: {
- sp<Camera2Device> hardware =
- new Camera2Device(camera_device_name);
- if (hardware->initialize(&mModule->common) != OK) {
- return NULL;
- }
-
- client = new Camera2Client(this, cameraClient, hardware, cameraId,
+ case CAMERA_DEVICE_API_VERSION_2_0:
+ client = new Camera2Client(this, cameraClient, cameraId,
info.facing, callingPid);
break;
- }
- default:
+ default:
ALOGE("Unknown camera device HAL version: %d", deviceVersion);
return NULL;
}
+ if (client->initialize(mModule) != OK) {
+ return NULL;
+ }
+
mClient[cameraId] = client;
LOG1("CameraService::connect X (id %d)", cameraId);
return client;
@@ -383,6 +368,7 @@
// tear down the client
CameraService::Client::~Client() {
+ mCameraService->releaseSound();
}
// ----------------------------------------------------------------------------