Merge "Camera: Avoid possible deadlock when closing advanced extension session" into sc-qpr1-dev

This commit is contained in:
TreeHugger Robot
2021-10-08 19:49:12 +00:00
committed by Android (Google) Code Review

View File

@@ -873,7 +873,6 @@ public final class CameraAdvancedExtensionSessionImpl extends CameraExtensionSes
@Override @Override
public int submitBurst(List<Request> requests, IRequestCallback callback) { public int submitBurst(List<Request> requests, IRequestCallback callback) {
int seqId = -1; int seqId = -1;
synchronized (mInterfaceLock) {
try { try {
CaptureCallbackHandler captureCallback = new CaptureCallbackHandler(callback); CaptureCallbackHandler captureCallback = new CaptureCallbackHandler(callback);
ArrayList<CaptureRequest> captureRequests = new ArrayList<>(); ArrayList<CaptureRequest> captureRequests = new ArrayList<>();
@@ -888,7 +887,6 @@ public final class CameraAdvancedExtensionSessionImpl extends CameraExtensionSes
} catch (IllegalStateException e) { } catch (IllegalStateException e) {
Log.e(TAG, "Capture session closed!"); Log.e(TAG, "Capture session closed!");
} }
}
return seqId; return seqId;
} }
@@ -896,7 +894,6 @@ public final class CameraAdvancedExtensionSessionImpl extends CameraExtensionSes
@Override @Override
public int setRepeating(Request request, IRequestCallback callback) { public int setRepeating(Request request, IRequestCallback callback) {
int seqId = -1; int seqId = -1;
synchronized (mInterfaceLock) {
try { try {
CaptureRequest repeatingRequest = initializeCaptureRequest(mCameraDevice, CaptureRequest repeatingRequest = initializeCaptureRequest(mCameraDevice,
request, mCameraConfigMap); request, mCameraConfigMap);
@@ -908,14 +905,12 @@ public final class CameraAdvancedExtensionSessionImpl extends CameraExtensionSes
} catch (IllegalStateException e) { } catch (IllegalStateException e) {
Log.e(TAG, "Capture session closed!"); Log.e(TAG, "Capture session closed!");
} }
}
return seqId; return seqId;
} }
@Override @Override
public void abortCaptures() { public void abortCaptures() {
synchronized (mInterfaceLock) {
try { try {
mCaptureSession.abortCaptures(); mCaptureSession.abortCaptures();
} catch (CameraAccessException e) { } catch (CameraAccessException e) {
@@ -924,11 +919,9 @@ public final class CameraAdvancedExtensionSessionImpl extends CameraExtensionSes
Log.e(TAG, "Capture session closed!"); Log.e(TAG, "Capture session closed!");
} }
} }
}
@Override @Override
public void stopRepeating() { public void stopRepeating() {
synchronized (mInterfaceLock) {
try { try {
mCaptureSession.stopRepeating(); mCaptureSession.stopRepeating();
} catch (CameraAccessException e) { } catch (CameraAccessException e) {
@@ -938,7 +931,6 @@ public final class CameraAdvancedExtensionSessionImpl extends CameraExtensionSes
} }
} }
} }
}
private static CaptureRequest initializeCaptureRequest(CameraDevice cameraDevice, private static CaptureRequest initializeCaptureRequest(CameraDevice cameraDevice,
Request request, HashMap<Surface, CameraOutputConfig> surfaceIdMap) Request request, HashMap<Surface, CameraOutputConfig> surfaceIdMap)