Camera: Don't update frameNumberTracker for physical camera result error
In case of physical camera result error, the corresponding frameNumber shouldn't be removed from the tracker because the totalCaptureResult is still be pending. Test: vendor testing, Camera CTS Bug: 279612822 Change-Id: I69aca02245f86c62bf14017b3d8788485e783cac
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user