summaryrefslogtreecommitdiffstats
path: root/services/camera/libcameraservice/api1
diff options
context:
space:
mode:
authorZhijun He <zhijunhe@google.com>2014-03-11 23:22:02 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-03-11 23:22:02 +0000
commit708601d042ae2a927da2181f33da47d9b01ad411 (patch)
tree4a041c6454ea97621345252c4f67fd00254bcdc0 /services/camera/libcameraservice/api1
parent3a20f9af8587d2e5bbf4654a3a958f43c4133445 (diff)
parentf0fb921c0170fe3b8ebce8fbe3c133a99c6def9f (diff)
downloadframeworks_av-708601d042ae2a927da2181f33da47d9b01ad411.zip
frameworks_av-708601d042ae2a927da2181f33da47d9b01ad411.tar.gz
frameworks_av-708601d042ae2a927da2181f33da47d9b01ad411.tar.bz2
am f0fb921c: am bc69c8ba: DO NOT MERGE: Camera: delete preview callback when preview size is changed
* commit 'f0fb921c0170fe3b8ebce8fbe3c133a99c6def9f': DO NOT MERGE: Camera: delete preview callback when preview size is changed
Diffstat (limited to 'services/camera/libcameraservice/api1')
-rw-r--r--services/camera/libcameraservice/api1/Camera2Client.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/services/camera/libcameraservice/api1/Camera2Client.cpp b/services/camera/libcameraservice/api1/Camera2Client.cpp
index 50a5084..af23557 100644
--- a/services/camera/libcameraservice/api1/Camera2Client.cpp
+++ b/services/camera/libcameraservice/api1/Camera2Client.cpp
@@ -734,6 +734,7 @@ status_t Camera2Client::startPreviewL(Parameters &params, bool restart) {
return OK;
}
params.state = Parameters::STOPPED;
+ int lastPreviewStreamId = mStreamingProcessor->getPreviewStreamId();
res = mStreamingProcessor->updatePreviewStream(params);
if (res != OK) {
@@ -742,6 +743,8 @@ status_t Camera2Client::startPreviewL(Parameters &params, bool restart) {
return res;
}
+ bool previewStreamChanged = mStreamingProcessor->getPreviewStreamId() != lastPreviewStreamId;
+
// We could wait to create the JPEG output stream until first actual use
// (first takePicture call). However, this would substantially increase the
// first capture latency on HAL3 devices, and potentially on some HAL2
@@ -791,6 +794,19 @@ status_t Camera2Client::startPreviewL(Parameters &params, bool restart) {
return res;
}
outputStreams.push(getCallbackStreamId());
+ } else if (previewStreamChanged && mCallbackProcessor->getStreamId() != NO_STREAM) {
+ /**
+ * Delete the unused callback stream when preview stream is changed and
+ * preview is not enabled. Don't need stop preview stream as preview is in
+ * STOPPED state now.
+ */
+ ALOGV("%s: Camera %d: Delete unused preview callback stream.", __FUNCTION__, mCameraId);
+ res = mCallbackProcessor->deleteStream();
+ if (res != OK) {
+ ALOGE("%s: Camera %d: Unable to delete callback stream %s (%d)",
+ __FUNCTION__, mCameraId, strerror(-res), res);
+ return res;
+ }
}
if (params.zslMode && !params.recordingHint) {
res = updateProcessorStream(mZslProcessor, params);