Merge "Camera: block session init callback until ctor returns" into qt-dev

am: 0e1eecd080

Change-Id: I915982209508646f15aeb0e3f219e5c950ebfa5f
This commit is contained in:
Yin-Chia Yeh
2019-06-25 09:53:03 -07:00
committed by android-build-merger

View File

@@ -25,6 +25,7 @@ import android.hardware.camera2.params.OutputConfiguration;
import android.hardware.camera2.params.StreamConfigurationMap; import android.hardware.camera2.params.StreamConfigurationMap;
import android.hardware.camera2.utils.SurfaceUtils; import android.hardware.camera2.utils.SurfaceUtils;
import android.os.Handler; import android.os.Handler;
import android.os.ConditionVariable;
import android.util.Range; import android.util.Range;
import android.view.Surface; import android.view.Surface;
@@ -51,6 +52,7 @@ public class CameraConstrainedHighSpeedCaptureSessionImpl
extends CameraConstrainedHighSpeedCaptureSession implements CameraCaptureSessionCore { extends CameraConstrainedHighSpeedCaptureSession implements CameraCaptureSessionCore {
private final CameraCharacteristics mCharacteristics; private final CameraCharacteristics mCharacteristics;
private final CameraCaptureSessionImpl mSessionImpl; private final CameraCaptureSessionImpl mSessionImpl;
private final ConditionVariable mInitialized = new ConditionVariable();
/** /**
* Create a new CameraCaptureSession. * Create a new CameraCaptureSession.
@@ -68,6 +70,7 @@ public class CameraConstrainedHighSpeedCaptureSessionImpl
CameraCaptureSession.StateCallback wrapperCallback = new WrapperCallback(callback); CameraCaptureSession.StateCallback wrapperCallback = new WrapperCallback(callback);
mSessionImpl = new CameraCaptureSessionImpl(id, /*input*/null, wrapperCallback, mSessionImpl = new CameraCaptureSessionImpl(id, /*input*/null, wrapperCallback,
stateExecutor, deviceImpl, deviceStateExecutor, configureSuccess); stateExecutor, deviceImpl, deviceStateExecutor, configureSuccess);
mInitialized.open();
} }
@Override @Override
@@ -321,11 +324,13 @@ public class CameraConstrainedHighSpeedCaptureSessionImpl
@Override @Override
public void onConfigured(CameraCaptureSession session) { public void onConfigured(CameraCaptureSession session) {
mInitialized.block();
mCallback.onConfigured(CameraConstrainedHighSpeedCaptureSessionImpl.this); mCallback.onConfigured(CameraConstrainedHighSpeedCaptureSessionImpl.this);
} }
@Override @Override
public void onConfigureFailed(CameraCaptureSession session) { public void onConfigureFailed(CameraCaptureSession session) {
mInitialized.block();
mCallback.onConfigureFailed(CameraConstrainedHighSpeedCaptureSessionImpl.this); mCallback.onConfigureFailed(CameraConstrainedHighSpeedCaptureSessionImpl.this);
} }