summaryrefslogtreecommitdiffstats
path: root/services/camera/libcameraservice/camera2
diff options
context:
space:
mode:
Diffstat (limited to 'services/camera/libcameraservice/camera2')
-rw-r--r--services/camera/libcameraservice/camera2/CallbackProcessor.cpp6
-rw-r--r--services/camera/libcameraservice/camera2/JpegProcessor.cpp6
-rw-r--r--services/camera/libcameraservice/camera2/ZslProcessor.cpp5
3 files changed, 17 insertions, 0 deletions
diff --git a/services/camera/libcameraservice/camera2/CallbackProcessor.cpp b/services/camera/libcameraservice/camera2/CallbackProcessor.cpp
index bccb18e..ca917f2 100644
--- a/services/camera/libcameraservice/camera2/CallbackProcessor.cpp
+++ b/services/camera/libcameraservice/camera2/CallbackProcessor.cpp
@@ -39,6 +39,7 @@ CallbackProcessor::CallbackProcessor(wp<Camera2Client> client):
CallbackProcessor::~CallbackProcessor() {
ALOGV("%s: Exit", __FUNCTION__);
+ deleteStream();
}
void CallbackProcessor::onFrameAvailable() {
@@ -126,6 +127,11 @@ status_t CallbackProcessor::deleteStream() {
sp<Camera2Device> device = client->getCameraDevice();
device->deleteStream(mCallbackStreamId);
+
+ mCallbackHeap.clear();
+ mCallbackWindow.clear();
+ mCallbackConsumer.clear();
+
mCallbackStreamId = NO_STREAM;
}
return OK;
diff --git a/services/camera/libcameraservice/camera2/JpegProcessor.cpp b/services/camera/libcameraservice/camera2/JpegProcessor.cpp
index 92148ca..b230d2d 100644
--- a/services/camera/libcameraservice/camera2/JpegProcessor.cpp
+++ b/services/camera/libcameraservice/camera2/JpegProcessor.cpp
@@ -42,6 +42,7 @@ JpegProcessor::JpegProcessor(
JpegProcessor::~JpegProcessor() {
ALOGV("%s: Exit", __FUNCTION__);
+ deleteStream();
}
void JpegProcessor::onFrameAvailable() {
@@ -142,6 +143,11 @@ status_t JpegProcessor::deleteStream() {
sp<Camera2Device> device = client->getCameraDevice();
device->deleteStream(mCaptureStreamId);
+
+ mCaptureHeap.clear();
+ mCaptureWindow.clear();
+ mCaptureConsumer.clear();
+
mCaptureStreamId = NO_STREAM;
}
return OK;
diff --git a/services/camera/libcameraservice/camera2/ZslProcessor.cpp b/services/camera/libcameraservice/camera2/ZslProcessor.cpp
index a39585e..ac02afc 100644
--- a/services/camera/libcameraservice/camera2/ZslProcessor.cpp
+++ b/services/camera/libcameraservice/camera2/ZslProcessor.cpp
@@ -58,6 +58,7 @@ ZslProcessor::ZslProcessor(
ZslProcessor::~ZslProcessor() {
ALOGV("%s: Exit", __FUNCTION__);
+ deleteStream();
}
void ZslProcessor::onFrameAvailable() {
@@ -191,6 +192,10 @@ status_t ZslProcessor::deleteStream() {
device->deleteStream(mZslReprocessStreamId);
mZslReprocessStreamId = NO_STREAM;
device->deleteStream(mZslStreamId);
+
+ mZslWindow.clear();
+ mZslConsumer.clear();
+
mZslStreamId = NO_STREAM;
}
return OK;