Loading camera/ndk/NdkCameraManager.cpp +9 −1 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include <camera/NdkCameraManager.h> #include <camera/NdkCameraManager.h> #include "impl/ACameraManager.h" #include "impl/ACameraManager.h" #include "impl/ACameraMetadata.h" using namespace android; using namespace android; Loading Loading @@ -107,7 +108,14 @@ camera_status_t ACameraManager_getCameraCharacteristics( __FUNCTION__, mgr, cameraId, chars); __FUNCTION__, mgr, cameraId, chars); return ACAMERA_ERROR_INVALID_PARAMETER; return ACAMERA_ERROR_INVALID_PARAMETER; } } return mgr->getCameraCharacteristics(cameraId, chars); sp<ACameraMetadata> spChars; camera_status_t status = mgr->getCameraCharacteristics(cameraId, &spChars); if (status != ACAMERA_OK) { return status; } spChars->incStrong((void*) ACameraManager_getCameraCharacteristics); *chars = spChars.get(); return ACAMERA_OK; } } EXPORT EXPORT Loading camera/ndk/NdkCameraMetadata.cpp +4 −2 Original line number Original line Diff line number Diff line Loading @@ -57,13 +57,15 @@ ACameraMetadata* ACameraMetadata_copy(const ACameraMetadata* src) { ALOGE("%s: src is null!", __FUNCTION__); ALOGE("%s: src is null!", __FUNCTION__); return nullptr; return nullptr; } } return new ACameraMetadata(*src); ACameraMetadata* copy = new ACameraMetadata(*src); copy->incStrong((void*) ACameraMetadata_copy); return copy; } } EXPORT EXPORT void ACameraMetadata_free(ACameraMetadata* metadata) { void ACameraMetadata_free(ACameraMetadata* metadata) { ATRACE_CALL(); ATRACE_CALL(); if (metadata != nullptr) { if (metadata != nullptr) { delete metadata; metadata->decStrong((void*) ACameraMetadata_free); } } } } camera/ndk/NdkCaptureRequest.cpp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -137,7 +137,7 @@ void ACaptureRequest_free(ACaptureRequest* request) { if (request == nullptr) { if (request == nullptr) { return; return; } } delete request->settings; request->settings.clear(); delete request->targets; delete request->targets; delete request; delete request; return; return; Loading camera/ndk/impl/ACameraDevice.cpp +3 −3 Original line number Original line Diff line number Diff line Loading @@ -50,11 +50,11 @@ const char* CameraDevice::kAnwKey = "Anw"; CameraDevice::CameraDevice( CameraDevice::CameraDevice( const char* id, const char* id, ACameraDevice_StateCallbacks* cb, ACameraDevice_StateCallbacks* cb, std::unique_ptr<ACameraMetadata> chars, sp<ACameraMetadata> chars, ACameraDevice* wrapper) : ACameraDevice* wrapper) : mCameraId(id), mCameraId(id), mAppCallbacks(*cb), mAppCallbacks(*cb), mChars(std::move(chars)), mChars(chars), mServiceCallback(new ServiceCallback(this)), mServiceCallback(new ServiceCallback(this)), mWrapper(wrapper), mWrapper(wrapper), mInError(false), mInError(false), Loading Loading @@ -436,7 +436,7 @@ CameraDevice::freeACaptureRequest(ACaptureRequest* req) { if (req == nullptr) { if (req == nullptr) { return; return; } } delete req->settings; req->settings.clear(); delete req->targets; delete req->targets; delete req; delete req; } } Loading camera/ndk/impl/ACameraDevice.h +4 −4 Original line number Original line Diff line number Diff line Loading @@ -48,7 +48,7 @@ struct CameraCaptureFailure : public RefBase, public ACameraCaptureFailure {}; class CameraDevice final : public RefBase { class CameraDevice final : public RefBase { public: public: CameraDevice(const char* id, ACameraDevice_StateCallbacks* cb, CameraDevice(const char* id, ACameraDevice_StateCallbacks* cb, std::unique_ptr<ACameraMetadata> chars, sp<ACameraMetadata> chars, ACameraDevice* wrapper); ACameraDevice* wrapper); ~CameraDevice(); ~CameraDevice(); Loading Loading @@ -156,7 +156,7 @@ class CameraDevice final : public RefBase { mutable Mutex mDeviceLock; mutable Mutex mDeviceLock; const String8 mCameraId; // Camera ID const String8 mCameraId; // Camera ID const ACameraDevice_StateCallbacks mAppCallbacks; // Callback to app const ACameraDevice_StateCallbacks mAppCallbacks; // Callback to app const std::unique_ptr<ACameraMetadata> mChars; // Camera characteristics const sp<ACameraMetadata> mChars; // Camera characteristics const sp<ServiceCallback> mServiceCallback; const sp<ServiceCallback> mServiceCallback; ACameraDevice* mWrapper; ACameraDevice* mWrapper; Loading Loading @@ -294,8 +294,8 @@ class CameraDevice final : public RefBase { */ */ struct ACameraDevice { struct ACameraDevice { ACameraDevice(const char* id, ACameraDevice_StateCallbacks* cb, ACameraDevice(const char* id, ACameraDevice_StateCallbacks* cb, std::unique_ptr<ACameraMetadata> chars) : sp<ACameraMetadata> chars) : mDevice(new CameraDevice(id, cb, std::move(chars), this)) {} mDevice(new CameraDevice(id, cb, chars, this)) {} ~ACameraDevice() {}; ~ACameraDevice() {}; Loading Loading
camera/ndk/NdkCameraManager.cpp +9 −1 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include <camera/NdkCameraManager.h> #include <camera/NdkCameraManager.h> #include "impl/ACameraManager.h" #include "impl/ACameraManager.h" #include "impl/ACameraMetadata.h" using namespace android; using namespace android; Loading Loading @@ -107,7 +108,14 @@ camera_status_t ACameraManager_getCameraCharacteristics( __FUNCTION__, mgr, cameraId, chars); __FUNCTION__, mgr, cameraId, chars); return ACAMERA_ERROR_INVALID_PARAMETER; return ACAMERA_ERROR_INVALID_PARAMETER; } } return mgr->getCameraCharacteristics(cameraId, chars); sp<ACameraMetadata> spChars; camera_status_t status = mgr->getCameraCharacteristics(cameraId, &spChars); if (status != ACAMERA_OK) { return status; } spChars->incStrong((void*) ACameraManager_getCameraCharacteristics); *chars = spChars.get(); return ACAMERA_OK; } } EXPORT EXPORT Loading
camera/ndk/NdkCameraMetadata.cpp +4 −2 Original line number Original line Diff line number Diff line Loading @@ -57,13 +57,15 @@ ACameraMetadata* ACameraMetadata_copy(const ACameraMetadata* src) { ALOGE("%s: src is null!", __FUNCTION__); ALOGE("%s: src is null!", __FUNCTION__); return nullptr; return nullptr; } } return new ACameraMetadata(*src); ACameraMetadata* copy = new ACameraMetadata(*src); copy->incStrong((void*) ACameraMetadata_copy); return copy; } } EXPORT EXPORT void ACameraMetadata_free(ACameraMetadata* metadata) { void ACameraMetadata_free(ACameraMetadata* metadata) { ATRACE_CALL(); ATRACE_CALL(); if (metadata != nullptr) { if (metadata != nullptr) { delete metadata; metadata->decStrong((void*) ACameraMetadata_free); } } } }
camera/ndk/NdkCaptureRequest.cpp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -137,7 +137,7 @@ void ACaptureRequest_free(ACaptureRequest* request) { if (request == nullptr) { if (request == nullptr) { return; return; } } delete request->settings; request->settings.clear(); delete request->targets; delete request->targets; delete request; delete request; return; return; Loading
camera/ndk/impl/ACameraDevice.cpp +3 −3 Original line number Original line Diff line number Diff line Loading @@ -50,11 +50,11 @@ const char* CameraDevice::kAnwKey = "Anw"; CameraDevice::CameraDevice( CameraDevice::CameraDevice( const char* id, const char* id, ACameraDevice_StateCallbacks* cb, ACameraDevice_StateCallbacks* cb, std::unique_ptr<ACameraMetadata> chars, sp<ACameraMetadata> chars, ACameraDevice* wrapper) : ACameraDevice* wrapper) : mCameraId(id), mCameraId(id), mAppCallbacks(*cb), mAppCallbacks(*cb), mChars(std::move(chars)), mChars(chars), mServiceCallback(new ServiceCallback(this)), mServiceCallback(new ServiceCallback(this)), mWrapper(wrapper), mWrapper(wrapper), mInError(false), mInError(false), Loading Loading @@ -436,7 +436,7 @@ CameraDevice::freeACaptureRequest(ACaptureRequest* req) { if (req == nullptr) { if (req == nullptr) { return; return; } } delete req->settings; req->settings.clear(); delete req->targets; delete req->targets; delete req; delete req; } } Loading
camera/ndk/impl/ACameraDevice.h +4 −4 Original line number Original line Diff line number Diff line Loading @@ -48,7 +48,7 @@ struct CameraCaptureFailure : public RefBase, public ACameraCaptureFailure {}; class CameraDevice final : public RefBase { class CameraDevice final : public RefBase { public: public: CameraDevice(const char* id, ACameraDevice_StateCallbacks* cb, CameraDevice(const char* id, ACameraDevice_StateCallbacks* cb, std::unique_ptr<ACameraMetadata> chars, sp<ACameraMetadata> chars, ACameraDevice* wrapper); ACameraDevice* wrapper); ~CameraDevice(); ~CameraDevice(); Loading Loading @@ -156,7 +156,7 @@ class CameraDevice final : public RefBase { mutable Mutex mDeviceLock; mutable Mutex mDeviceLock; const String8 mCameraId; // Camera ID const String8 mCameraId; // Camera ID const ACameraDevice_StateCallbacks mAppCallbacks; // Callback to app const ACameraDevice_StateCallbacks mAppCallbacks; // Callback to app const std::unique_ptr<ACameraMetadata> mChars; // Camera characteristics const sp<ACameraMetadata> mChars; // Camera characteristics const sp<ServiceCallback> mServiceCallback; const sp<ServiceCallback> mServiceCallback; ACameraDevice* mWrapper; ACameraDevice* mWrapper; Loading Loading @@ -294,8 +294,8 @@ class CameraDevice final : public RefBase { */ */ struct ACameraDevice { struct ACameraDevice { ACameraDevice(const char* id, ACameraDevice_StateCallbacks* cb, ACameraDevice(const char* id, ACameraDevice_StateCallbacks* cb, std::unique_ptr<ACameraMetadata> chars) : sp<ACameraMetadata> chars) : mDevice(new CameraDevice(id, cb, std::move(chars), this)) {} mDevice(new CameraDevice(id, cb, chars, this)) {} ~ACameraDevice() {}; ~ACameraDevice() {}; Loading