Camera: skip unnecessary reconfig
Test: manual testing 3rd party camera app + hacked walleye
Bug: 111850901
Merged-In: Ia2977a290bb0bd706f500a3d39e0d996d50cbe1e
Change-Id: Ia2977a290bb0bd706f500a3d39e0d996d50cbe1e
diff --git a/services/camera/libcameraservice/api1/Camera2Client.cpp b/services/camera/libcameraservice/api1/Camera2Client.cpp
index 65faac9..2ce3372 100644
--- a/services/camera/libcameraservice/api1/Camera2Client.cpp
+++ b/services/camera/libcameraservice/api1/Camera2Client.cpp
@@ -779,33 +779,35 @@
int lastJpegStreamId = mJpegProcessor->getStreamId();
// If jpeg stream will slow down preview, make sure we remove it before starting preview
if (params.slowJpegMode) {
- // Pause preview if we are streaming
- int32_t activeRequestId = mStreamingProcessor->getActiveRequestId();
- if (activeRequestId != 0) {
- res = mStreamingProcessor->togglePauseStream(/*pause*/true);
- if (res != OK) {
- ALOGE("%s: Camera %d: Can't pause streaming: %s (%d)",
- __FUNCTION__, mCameraId, strerror(-res), res);
+ if (lastJpegStreamId != NO_STREAM) {
+ // Pause preview if we are streaming
+ int32_t activeRequestId = mStreamingProcessor->getActiveRequestId();
+ if (activeRequestId != 0) {
+ res = mStreamingProcessor->togglePauseStream(/*pause*/true);
+ if (res != OK) {
+ ALOGE("%s: Camera %d: Can't pause streaming: %s (%d)",
+ __FUNCTION__, mCameraId, strerror(-res), res);
+ }
+ res = mDevice->waitUntilDrained();
+ if (res != OK) {
+ ALOGE("%s: Camera %d: Waiting to stop streaming failed: %s (%d)",
+ __FUNCTION__, mCameraId, strerror(-res), res);
+ }
}
- res = mDevice->waitUntilDrained();
+
+ res = mJpegProcessor->deleteStream();
+
if (res != OK) {
- ALOGE("%s: Camera %d: Waiting to stop streaming failed: %s (%d)",
- __FUNCTION__, mCameraId, strerror(-res), res);
+ ALOGE("%s: Camera %d: delete Jpeg stream failed: %s (%d)",
+ __FUNCTION__, mCameraId, strerror(-res), res);
}
- }
- res = mJpegProcessor->deleteStream();
-
- if (res != OK) {
- ALOGE("%s: Camera %d: delete Jpeg stream failed: %s (%d)",
- __FUNCTION__, mCameraId, strerror(-res), res);
- }
-
- if (activeRequestId != 0) {
- res = mStreamingProcessor->togglePauseStream(/*pause*/false);
- if (res != OK) {
- ALOGE("%s: Camera %d: Can't unpause streaming: %s (%d)",
- __FUNCTION__, mCameraId, strerror(-res), res);
+ if (activeRequestId != 0) {
+ res = mStreamingProcessor->togglePauseStream(/*pause*/false);
+ if (res != OK) {
+ ALOGE("%s: Camera %d: Can't unpause streaming: %s (%d)",
+ __FUNCTION__, mCameraId, strerror(-res), res);
+ }
}
}
} else {