Loading camera/ndk/impl/ACameraDevice.cpp +16 −6 Original line number Diff line number Diff line Loading @@ -28,6 +28,10 @@ #include "ACameraCaptureSession.inc" ACameraDevice::~ACameraDevice() { mDevice->stopLooper(); } namespace android { namespace acam { Loading Loading @@ -116,15 +120,11 @@ CameraDevice::~CameraDevice() { if (!isClosed()) { disconnectLocked(session); } LOG_ALWAYS_FATAL_IF(mCbLooper != nullptr, "CameraDevice looper should've been stopped before ~CameraDevice"); mCurrentSession = nullptr; if (mCbLooper != nullptr) { mCbLooper->unregisterHandler(mHandler->id()); mCbLooper->stop(); } } mCbLooper.clear(); mHandler.clear(); } void CameraDevice::postSessionMsgAndCleanup(sp<AMessage>& msg) { Loading Loading @@ -892,6 +892,16 @@ CameraDevice::onCaptureErrorLocked( return; } void CameraDevice::stopLooper() { Mutex::Autolock _l(mDeviceLock); if (mCbLooper != nullptr) { mCbLooper->unregisterHandler(mHandler->id()); mCbLooper->stop(); } mCbLooper.clear(); mHandler.clear(); } CameraDevice::CallbackHandler::CallbackHandler(const char* id) : mId(id) { } Loading camera/ndk/impl/ACameraDevice.h +4 −1 Original line number Diff line number Diff line Loading @@ -109,6 +109,9 @@ class CameraDevice final : public RefBase { inline ACameraDevice* getWrapper() const { return mWrapper; }; // Stop the looper thread and unregister the handler void stopLooper(); private: friend ACameraCaptureSession; camera_status_t checkCameraClosedOrErrorLocked() const; Loading Loading @@ -354,7 +357,7 @@ struct ACameraDevice { sp<ACameraMetadata> chars) : mDevice(new android::acam::CameraDevice(id, cb, chars, this)) {} ~ACameraDevice() {}; ~ACameraDevice(); /******************* * NDK public APIs * Loading camera/ndk/ndk_vendor/impl/ACameraDevice.cpp +16 −6 Original line number Diff line number Diff line Loading @@ -44,6 +44,10 @@ using namespace android; ACameraDevice::~ACameraDevice() { mDevice->stopLooper(); } namespace android { namespace acam { Loading Loading @@ -130,14 +134,10 @@ CameraDevice::~CameraDevice() { disconnectLocked(session); } mCurrentSession = nullptr; if (mCbLooper != nullptr) { mCbLooper->unregisterHandler(mHandler->id()); mCbLooper->stop(); LOG_ALWAYS_FATAL_IF(mCbLooper != nullptr, "CameraDevice looper should've been stopped before ~CameraDevice"); } } mCbLooper.clear(); mHandler.clear(); } void CameraDevice::postSessionMsgAndCleanup(sp<AMessage>& msg) { Loading Loading @@ -1400,6 +1400,16 @@ CameraDevice::checkAndFireSequenceCompleteLocked() { } } void CameraDevice::stopLooper() { Mutex::Autolock _l(mDeviceLock); if (mCbLooper != nullptr) { mCbLooper->unregisterHandler(mHandler->id()); mCbLooper->stop(); } mCbLooper.clear(); mHandler.clear(); } /** * Camera service callback implementation */ Loading camera/ndk/ndk_vendor/impl/ACameraDevice.h +4 −1 Original line number Diff line number Diff line Loading @@ -133,6 +133,9 @@ class CameraDevice final : public RefBase { bool setDeviceMetadataQueues(); inline ACameraDevice* getWrapper() const { return mWrapper; }; // Stop the looper thread and unregister the handler void stopLooper(); private: friend ACameraCaptureSession; Loading Loading @@ -383,7 +386,7 @@ struct ACameraDevice { sp<ACameraMetadata> chars) : mDevice(new android::acam::CameraDevice(id, cb, std::move(chars), this)) {} ~ACameraDevice() {}; ~ACameraDevice(); /******************* * NDK public APIs * Loading Loading
camera/ndk/impl/ACameraDevice.cpp +16 −6 Original line number Diff line number Diff line Loading @@ -28,6 +28,10 @@ #include "ACameraCaptureSession.inc" ACameraDevice::~ACameraDevice() { mDevice->stopLooper(); } namespace android { namespace acam { Loading Loading @@ -116,15 +120,11 @@ CameraDevice::~CameraDevice() { if (!isClosed()) { disconnectLocked(session); } LOG_ALWAYS_FATAL_IF(mCbLooper != nullptr, "CameraDevice looper should've been stopped before ~CameraDevice"); mCurrentSession = nullptr; if (mCbLooper != nullptr) { mCbLooper->unregisterHandler(mHandler->id()); mCbLooper->stop(); } } mCbLooper.clear(); mHandler.clear(); } void CameraDevice::postSessionMsgAndCleanup(sp<AMessage>& msg) { Loading Loading @@ -892,6 +892,16 @@ CameraDevice::onCaptureErrorLocked( return; } void CameraDevice::stopLooper() { Mutex::Autolock _l(mDeviceLock); if (mCbLooper != nullptr) { mCbLooper->unregisterHandler(mHandler->id()); mCbLooper->stop(); } mCbLooper.clear(); mHandler.clear(); } CameraDevice::CallbackHandler::CallbackHandler(const char* id) : mId(id) { } Loading
camera/ndk/impl/ACameraDevice.h +4 −1 Original line number Diff line number Diff line Loading @@ -109,6 +109,9 @@ class CameraDevice final : public RefBase { inline ACameraDevice* getWrapper() const { return mWrapper; }; // Stop the looper thread and unregister the handler void stopLooper(); private: friend ACameraCaptureSession; camera_status_t checkCameraClosedOrErrorLocked() const; Loading Loading @@ -354,7 +357,7 @@ struct ACameraDevice { sp<ACameraMetadata> chars) : mDevice(new android::acam::CameraDevice(id, cb, chars, this)) {} ~ACameraDevice() {}; ~ACameraDevice(); /******************* * NDK public APIs * Loading
camera/ndk/ndk_vendor/impl/ACameraDevice.cpp +16 −6 Original line number Diff line number Diff line Loading @@ -44,6 +44,10 @@ using namespace android; ACameraDevice::~ACameraDevice() { mDevice->stopLooper(); } namespace android { namespace acam { Loading Loading @@ -130,14 +134,10 @@ CameraDevice::~CameraDevice() { disconnectLocked(session); } mCurrentSession = nullptr; if (mCbLooper != nullptr) { mCbLooper->unregisterHandler(mHandler->id()); mCbLooper->stop(); LOG_ALWAYS_FATAL_IF(mCbLooper != nullptr, "CameraDevice looper should've been stopped before ~CameraDevice"); } } mCbLooper.clear(); mHandler.clear(); } void CameraDevice::postSessionMsgAndCleanup(sp<AMessage>& msg) { Loading Loading @@ -1400,6 +1400,16 @@ CameraDevice::checkAndFireSequenceCompleteLocked() { } } void CameraDevice::stopLooper() { Mutex::Autolock _l(mDeviceLock); if (mCbLooper != nullptr) { mCbLooper->unregisterHandler(mHandler->id()); mCbLooper->stop(); } mCbLooper.clear(); mHandler.clear(); } /** * Camera service callback implementation */ Loading
camera/ndk/ndk_vendor/impl/ACameraDevice.h +4 −1 Original line number Diff line number Diff line Loading @@ -133,6 +133,9 @@ class CameraDevice final : public RefBase { bool setDeviceMetadataQueues(); inline ACameraDevice* getWrapper() const { return mWrapper; }; // Stop the looper thread and unregister the handler void stopLooper(); private: friend ACameraCaptureSession; Loading Loading @@ -383,7 +386,7 @@ struct ACameraDevice { sp<ACameraMetadata> chars) : mDevice(new android::acam::CameraDevice(id, cb, std::move(chars), this)) {} ~ACameraDevice() {}; ~ACameraDevice(); /******************* * NDK public APIs * Loading