Loading services/camera/libcameraservice/common/CameraModule.cpp +14 −5 Original line number Original line Diff line number Diff line Loading @@ -154,6 +154,18 @@ CameraModule::CameraModule(camera_module_t *module) { mCameraInfoMap.setCapacity(getNumberOfCameras()); mCameraInfoMap.setCapacity(getNumberOfCameras()); } } CameraModule::~CameraModule() { while (mCameraInfoMap.size() > 0) { camera_info cameraInfo = mCameraInfoMap.editValueAt(0); if (cameraInfo.static_camera_characteristics != NULL) { free_camera_metadata( const_cast<camera_metadata_t*>(cameraInfo.static_camera_characteristics)); } mCameraInfoMap.removeItemsAt(0); } } int CameraModule::init() { int CameraModule::init() { if (getModuleApiVersion() >= CAMERA_MODULE_API_VERSION_2_4 && if (getModuleApiVersion() >= CAMERA_MODULE_API_VERSION_2_4 && mModule->init != NULL) { mModule->init != NULL) { Loading Loading @@ -192,12 +204,9 @@ int CameraModule::getCameraInfo(int cameraId, struct camera_info *info) { CameraMetadata m; CameraMetadata m; m = rawInfo.static_camera_characteristics; m = rawInfo.static_camera_characteristics; deriveCameraCharacteristicsKeys(rawInfo.device_version, m); deriveCameraCharacteristicsKeys(rawInfo.device_version, m); mCameraCharacteristicsMap.add(cameraId, m); cameraInfo = rawInfo; cameraInfo = rawInfo; cameraInfo.static_camera_characteristics = cameraInfo.static_camera_characteristics = m.release(); mCameraCharacteristicsMap.valueFor(cameraId).getAndLock(); index = mCameraInfoMap.add(cameraId, cameraInfo); mCameraInfoMap.add(cameraId, cameraInfo); index = mCameraInfoMap.indexOfKey(cameraId); } } assert(index != NAME_NOT_FOUND); assert(index != NAME_NOT_FOUND); Loading services/camera/libcameraservice/common/CameraModule.h +1 −1 Original line number Original line Diff line number Diff line Loading @@ -33,6 +33,7 @@ namespace android { class CameraModule { class CameraModule { public: public: CameraModule(camera_module_t *module); CameraModule(camera_module_t *module); virtual ~CameraModule(); // Must be called after construction // Must be called after construction // Returns OK on success, NO_INIT on failure // Returns OK on success, NO_INIT on failure Loading Loading @@ -60,7 +61,6 @@ private: camera_module_t *mModule; camera_module_t *mModule; KeyedVector<int, camera_info> mCameraInfoMap; KeyedVector<int, camera_info> mCameraInfoMap; KeyedVector<int, CameraMetadata> mCameraCharacteristicsMap; Mutex mCameraInfoLock; Mutex mCameraInfoLock; }; }; Loading Loading
services/camera/libcameraservice/common/CameraModule.cpp +14 −5 Original line number Original line Diff line number Diff line Loading @@ -154,6 +154,18 @@ CameraModule::CameraModule(camera_module_t *module) { mCameraInfoMap.setCapacity(getNumberOfCameras()); mCameraInfoMap.setCapacity(getNumberOfCameras()); } } CameraModule::~CameraModule() { while (mCameraInfoMap.size() > 0) { camera_info cameraInfo = mCameraInfoMap.editValueAt(0); if (cameraInfo.static_camera_characteristics != NULL) { free_camera_metadata( const_cast<camera_metadata_t*>(cameraInfo.static_camera_characteristics)); } mCameraInfoMap.removeItemsAt(0); } } int CameraModule::init() { int CameraModule::init() { if (getModuleApiVersion() >= CAMERA_MODULE_API_VERSION_2_4 && if (getModuleApiVersion() >= CAMERA_MODULE_API_VERSION_2_4 && mModule->init != NULL) { mModule->init != NULL) { Loading Loading @@ -192,12 +204,9 @@ int CameraModule::getCameraInfo(int cameraId, struct camera_info *info) { CameraMetadata m; CameraMetadata m; m = rawInfo.static_camera_characteristics; m = rawInfo.static_camera_characteristics; deriveCameraCharacteristicsKeys(rawInfo.device_version, m); deriveCameraCharacteristicsKeys(rawInfo.device_version, m); mCameraCharacteristicsMap.add(cameraId, m); cameraInfo = rawInfo; cameraInfo = rawInfo; cameraInfo.static_camera_characteristics = cameraInfo.static_camera_characteristics = m.release(); mCameraCharacteristicsMap.valueFor(cameraId).getAndLock(); index = mCameraInfoMap.add(cameraId, cameraInfo); mCameraInfoMap.add(cameraId, cameraInfo); index = mCameraInfoMap.indexOfKey(cameraId); } } assert(index != NAME_NOT_FOUND); assert(index != NAME_NOT_FOUND); Loading
services/camera/libcameraservice/common/CameraModule.h +1 −1 Original line number Original line Diff line number Diff line Loading @@ -33,6 +33,7 @@ namespace android { class CameraModule { class CameraModule { public: public: CameraModule(camera_module_t *module); CameraModule(camera_module_t *module); virtual ~CameraModule(); // Must be called after construction // Must be called after construction // Returns OK on success, NO_INIT on failure // Returns OK on success, NO_INIT on failure Loading Loading @@ -60,7 +61,6 @@ private: camera_module_t *mModule; camera_module_t *mModule; KeyedVector<int, camera_info> mCameraInfoMap; KeyedVector<int, camera_info> mCameraInfoMap; KeyedVector<int, CameraMetadata> mCameraCharacteristicsMap; Mutex mCameraInfoLock; Mutex mCameraInfoLock; }; }; Loading