diff options
author | Zhijun He <zhijunhe@google.com> | 2014-03-10 23:42:18 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-03-10 23:42:18 +0000 |
commit | b120f897ad41c0a386081f74f47fd560c6e86f34 (patch) | |
tree | 0c849d0140b32fa04257b44e3f2530167f8794a8 /services/camera/libcameraservice/api1 | |
parent | f566406a48ecf878d8a0034b6c600d42454d264c (diff) | |
parent | bc69c8ba9a8fc881603669205a56d0ca1b572a95 (diff) | |
download | frameworks_av-b120f897ad41c0a386081f74f47fd560c6e86f34.zip frameworks_av-b120f897ad41c0a386081f74f47fd560c6e86f34.tar.gz frameworks_av-b120f897ad41c0a386081f74f47fd560c6e86f34.tar.bz2 |
am bc69c8ba: DO NOT MERGE: Camera: delete preview callback when preview size is changed
* commit 'bc69c8ba9a8fc881603669205a56d0ca1b572a95':
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.cpp | 16 |
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 ¶ms, 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 ¶ms, 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 ¶ms, 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); |