disconnect();
mFrameProcessor->requestExit();
+ mCaptureSequencer->requestExit();
+ mJpegProcessor->requestExit();
+ mZslProcessor->requestExit();
+ mCallbackProcessor->requestExit();
+
ALOGI("Camera %d: Closed", mCameraId);
}
mCallbackProcessor->deleteStream();
+ mZslProcessor->deleteStream();
+
mDevice.clear();
SharedParameters::Lock l(mParameters);
l.mParameters.state = Parameters::DISCONNECTED;
CallbackProcessor::~CallbackProcessor() {
ALOGV("%s: Exit", __FUNCTION__);
+ deleteStream();
}
void CallbackProcessor::onFrameAvailable() {
sp<Camera2Device> device = client->getCameraDevice();
device->deleteStream(mCallbackStreamId);
+
+ mCallbackHeap.clear();
+ mCallbackWindow.clear();
+ mCallbackConsumer.clear();
+
mCallbackStreamId = NO_STREAM;
}
return OK;
JpegProcessor::~JpegProcessor() {
ALOGV("%s: Exit", __FUNCTION__);
+ deleteStream();
}
void JpegProcessor::onFrameAvailable() {
sp<Camera2Device> device = client->getCameraDevice();
device->deleteStream(mCaptureStreamId);
+
+ mCaptureHeap.clear();
+ mCaptureWindow.clear();
+ mCaptureConsumer.clear();
+
mCaptureStreamId = NO_STREAM;
}
return OK;
ZslProcessor::~ZslProcessor() {
ALOGV("%s: Exit", __FUNCTION__);
+ deleteStream();
}
void ZslProcessor::onFrameAvailable() {
device->deleteStream(mZslReprocessStreamId);
mZslReprocessStreamId = NO_STREAM;
device->deleteStream(mZslStreamId);
+
+ mZslWindow.clear();
+ mZslConsumer.clear();
+
mZslStreamId = NO_STREAM;
}
return OK;