Loading camera/ndk/impl/ACameraDevice.cpp +9 −15 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ #include "ACameraCaptureSession.inc" ACameraDevice::~ACameraDevice() { mDevice->stopLooper(); mDevice->stopLooperAndDisconnect(); } namespace android { Loading Loading @@ -112,19 +112,7 @@ CameraDevice::CameraDevice( } } // Device close implementaiton CameraDevice::~CameraDevice() { sp<ACameraCaptureSession> session = mCurrentSession.promote(); { Mutex::Autolock _l(mDeviceLock); if (!isClosed()) { disconnectLocked(session); } LOG_ALWAYS_FATAL_IF(mCbLooper != nullptr, "CameraDevice looper should've been stopped before ~CameraDevice"); mCurrentSession = nullptr; } } CameraDevice::~CameraDevice() { } void CameraDevice::postSessionMsgAndCleanup(sp<AMessage>& msg) { Loading Loading @@ -892,8 +880,14 @@ CameraDevice::onCaptureErrorLocked( return; } void CameraDevice::stopLooper() { void CameraDevice::stopLooperAndDisconnect() { Mutex::Autolock _l(mDeviceLock); sp<ACameraCaptureSession> session = mCurrentSession.promote(); if (!isClosed()) { disconnectLocked(session); } mCurrentSession = nullptr; if (mCbLooper != nullptr) { mCbLooper->unregisterHandler(mHandler->id()); mCbLooper->stop(); Loading camera/ndk/impl/ACameraDevice.h +2 −1 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ #include <camera/NdkCameraManager.h> #include <camera/NdkCameraCaptureSession.h> #include "ACameraMetadata.h" namespace android { Loading Loading @@ -110,7 +111,7 @@ class CameraDevice final : public RefBase { inline ACameraDevice* getWrapper() const { return mWrapper; }; // Stop the looper thread and unregister the handler void stopLooper(); void stopLooperAndDisconnect(); private: friend ACameraCaptureSession; Loading camera/ndk/ndk_vendor/impl/ACameraDevice.cpp +9 −15 Original line number Diff line number Diff line Loading @@ -45,7 +45,7 @@ using namespace android; ACameraDevice::~ACameraDevice() { mDevice->stopLooper(); mDevice->stopLooperAndDisconnect(); } namespace android { Loading Loading @@ -125,19 +125,7 @@ CameraDevice::CameraDevice( } } // Device close implementaiton CameraDevice::~CameraDevice() { sp<ACameraCaptureSession> session = mCurrentSession.promote(); { Mutex::Autolock _l(mDeviceLock); if (!isClosed()) { disconnectLocked(session); } mCurrentSession = nullptr; LOG_ALWAYS_FATAL_IF(mCbLooper != nullptr, "CameraDevice looper should've been stopped before ~CameraDevice"); } } CameraDevice::~CameraDevice() { } void CameraDevice::postSessionMsgAndCleanup(sp<AMessage>& msg) { Loading Loading @@ -1388,6 +1376,7 @@ CameraDevice::checkAndFireSequenceCompleteLocked() { // before cbh goes out of scope and causing we call the session // destructor while holding device lock cbh.mSession.clear(); postSessionMsgAndCleanup(msg); } Loading @@ -1400,8 +1389,13 @@ CameraDevice::checkAndFireSequenceCompleteLocked() { } } void CameraDevice::stopLooper() { void CameraDevice::stopLooperAndDisconnect() { Mutex::Autolock _l(mDeviceLock); sp<ACameraCaptureSession> session = mCurrentSession.promote(); if (!isClosed()) { disconnectLocked(session); } mCurrentSession = nullptr; if (mCbLooper != nullptr) { mCbLooper->unregisterHandler(mHandler->id()); mCbLooper->stop(); Loading camera/ndk/ndk_vendor/impl/ACameraDevice.h +2 −1 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ #include <camera/NdkCameraManager.h> #include <camera/NdkCameraCaptureSession.h> #include "ACameraMetadata.h" #include "utils.h" Loading Loading @@ -134,7 +135,7 @@ class CameraDevice final : public RefBase { inline ACameraDevice* getWrapper() const { return mWrapper; }; // Stop the looper thread and unregister the handler void stopLooper(); void stopLooperAndDisconnect(); private: friend ACameraCaptureSession; Loading Loading
camera/ndk/impl/ACameraDevice.cpp +9 −15 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ #include "ACameraCaptureSession.inc" ACameraDevice::~ACameraDevice() { mDevice->stopLooper(); mDevice->stopLooperAndDisconnect(); } namespace android { Loading Loading @@ -112,19 +112,7 @@ CameraDevice::CameraDevice( } } // Device close implementaiton CameraDevice::~CameraDevice() { sp<ACameraCaptureSession> session = mCurrentSession.promote(); { Mutex::Autolock _l(mDeviceLock); if (!isClosed()) { disconnectLocked(session); } LOG_ALWAYS_FATAL_IF(mCbLooper != nullptr, "CameraDevice looper should've been stopped before ~CameraDevice"); mCurrentSession = nullptr; } } CameraDevice::~CameraDevice() { } void CameraDevice::postSessionMsgAndCleanup(sp<AMessage>& msg) { Loading Loading @@ -892,8 +880,14 @@ CameraDevice::onCaptureErrorLocked( return; } void CameraDevice::stopLooper() { void CameraDevice::stopLooperAndDisconnect() { Mutex::Autolock _l(mDeviceLock); sp<ACameraCaptureSession> session = mCurrentSession.promote(); if (!isClosed()) { disconnectLocked(session); } mCurrentSession = nullptr; if (mCbLooper != nullptr) { mCbLooper->unregisterHandler(mHandler->id()); mCbLooper->stop(); Loading
camera/ndk/impl/ACameraDevice.h +2 −1 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ #include <camera/NdkCameraManager.h> #include <camera/NdkCameraCaptureSession.h> #include "ACameraMetadata.h" namespace android { Loading Loading @@ -110,7 +111,7 @@ class CameraDevice final : public RefBase { inline ACameraDevice* getWrapper() const { return mWrapper; }; // Stop the looper thread and unregister the handler void stopLooper(); void stopLooperAndDisconnect(); private: friend ACameraCaptureSession; Loading
camera/ndk/ndk_vendor/impl/ACameraDevice.cpp +9 −15 Original line number Diff line number Diff line Loading @@ -45,7 +45,7 @@ using namespace android; ACameraDevice::~ACameraDevice() { mDevice->stopLooper(); mDevice->stopLooperAndDisconnect(); } namespace android { Loading Loading @@ -125,19 +125,7 @@ CameraDevice::CameraDevice( } } // Device close implementaiton CameraDevice::~CameraDevice() { sp<ACameraCaptureSession> session = mCurrentSession.promote(); { Mutex::Autolock _l(mDeviceLock); if (!isClosed()) { disconnectLocked(session); } mCurrentSession = nullptr; LOG_ALWAYS_FATAL_IF(mCbLooper != nullptr, "CameraDevice looper should've been stopped before ~CameraDevice"); } } CameraDevice::~CameraDevice() { } void CameraDevice::postSessionMsgAndCleanup(sp<AMessage>& msg) { Loading Loading @@ -1388,6 +1376,7 @@ CameraDevice::checkAndFireSequenceCompleteLocked() { // before cbh goes out of scope and causing we call the session // destructor while holding device lock cbh.mSession.clear(); postSessionMsgAndCleanup(msg); } Loading @@ -1400,8 +1389,13 @@ CameraDevice::checkAndFireSequenceCompleteLocked() { } } void CameraDevice::stopLooper() { void CameraDevice::stopLooperAndDisconnect() { Mutex::Autolock _l(mDeviceLock); sp<ACameraCaptureSession> session = mCurrentSession.promote(); if (!isClosed()) { disconnectLocked(session); } mCurrentSession = nullptr; if (mCbLooper != nullptr) { mCbLooper->unregisterHandler(mHandler->id()); mCbLooper->stop(); Loading
camera/ndk/ndk_vendor/impl/ACameraDevice.h +2 −1 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ #include <camera/NdkCameraManager.h> #include <camera/NdkCameraCaptureSession.h> #include "ACameraMetadata.h" #include "utils.h" Loading Loading @@ -134,7 +135,7 @@ class CameraDevice final : public RefBase { inline ACameraDevice* getWrapper() const { return mWrapper; }; // Stop the looper thread and unregister the handler void stopLooper(); void stopLooperAndDisconnect(); private: friend ACameraCaptureSession; Loading