Merge "Camera: Don't update frameNumberTracker for physical camera result error" into udc-dev

This commit is contained in:
Shuzhen Wang
2023-05-03 22:08:23 +00:00
committed by Android (Google) Code Review
2 changed files with 17 additions and 9 deletions

View File

@@ -1397,6 +1397,11 @@ public abstract class CameraCaptureSession implements AutoCloseable {
* the capture may have been pushed to their respective output
* streams.</p>
*
* <p>If a logical multi-camera fails to generate capture result for one of
* its physical cameras, this method will be called with a {@link CaptureFailure}
* for that physical camera. In such cases, as long as the logical camera capture
* result is valid, {@link #onCaptureCompleted} will still be called.</p>
*
* <p>The default implementation of this method does nothing.</p>
*
* @param session

View File

@@ -1908,18 +1908,21 @@ public class CameraDeviceImpl extends CameraDevice
Log.v(TAG, String.format("got error frame %d", frameNumber));
}
// Update FrameNumberTracker for every frame during HFR mode.
if (mBatchOutputMap.containsKey(requestId)) {
for (int i = 0; i < mBatchOutputMap.get(requestId); i++) {
mFrameNumberTracker.updateTracker(frameNumber - (subsequenceId - i),
// Do not update frame number tracker for physical camera result error.
if (errorPhysicalCameraId == null) {
// Update FrameNumberTracker for every frame during HFR mode.
if (mBatchOutputMap.containsKey(requestId)) {
for (int i = 0; i < mBatchOutputMap.get(requestId); i++) {
mFrameNumberTracker.updateTracker(frameNumber - (subsequenceId - i),
/*error*/true, request.getRequestType());
}
} else {
mFrameNumberTracker.updateTracker(frameNumber,
/*error*/true, request.getRequestType());
}
} else {
mFrameNumberTracker.updateTracker(frameNumber,
/*error*/true, request.getRequestType());
}
checkAndFireSequenceComplete();
checkAndFireSequenceComplete();
}
// Dispatch the failure callback
final long ident = Binder.clearCallingIdentity();