Wait for first frame in onStartPreview

pull/716/head
Mattia Iavarone 6 years ago
parent 4955875a15
commit db93cce7d7
  1. 4
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/engine/Camera2IntegrationTest.java
  2. 15
      cameraview/src/main/java/com/otaliastudios/cameraview/engine/Camera2Engine.java

@ -36,7 +36,7 @@ public class Camera2IntegrationTest extends CameraIntegrationTest<Camera2Engine>
return Engine.CAMERA2;
}
@Override
/* @Override
protected void onOpenSync() {
super.onOpenSync();
// Extra wait for the first frame to be dispatched.
@ -54,7 +54,7 @@ public class Camera2IntegrationTest extends CameraIntegrationTest<Camera2Engine>
}
}.start(controller);
try { latch.await(); } catch (InterruptedException ignore) {}
}
} */
@Override
protected long getMeteringTimeoutMillis() {

@ -628,7 +628,20 @@ public class Camera2Engine extends CameraBaseEngine implements
}
});
}
return Tasks.forResult(null);
// Wait for the first frame.
final TaskCompletionSource<Void> task = new TaskCompletionSource<>();
new BaseAction() {
@Override
public void onCaptureCompleted(@NonNull ActionHolder holder,
@NonNull CaptureRequest request,
@NonNull TotalCaptureResult result) {
super.onCaptureCompleted(holder, request, result);
setState(STATE_COMPLETED);
task.trySetResult(null);
}
}.start(this);
return task.getTask();
}
//endregion

Loading…
Cancel
Save