Loading core/java/android/hardware/camera2/impl/CameraDeviceImpl.java +16 −6 Original line number Diff line number Diff line Loading @@ -81,6 +81,7 @@ public class CameraDeviceImpl extends android.hardware.camera2.CameraDevice { private final String mCameraId; private final CameraCharacteristics mCharacteristics; private final int mTotalPartialCount; /** * A list tracking request and its expected last frame. Loading Loading @@ -210,7 +211,7 @@ public class CameraDeviceImpl extends android.hardware.camera2.CameraDevice { public CameraDeviceImpl(String cameraId, StateListener listener, Handler handler, CameraCharacteristics characteristics) { if (cameraId == null || listener == null || handler == null) { if (cameraId == null || listener == null || handler == null || characteristics == null) { throw new IllegalArgumentException("Null argument given"); } mCameraId = cameraId; Loading @@ -226,6 +227,15 @@ public class CameraDeviceImpl extends android.hardware.camera2.CameraDevice { } TAG = tag; DEBUG = Log.isLoggable(TAG, Log.DEBUG); Integer partialCount = mCharacteristics.get(CameraCharacteristics.REQUEST_PARTIAL_RESULT_COUNT); if (partialCount == null) { // 1 means partial result is not supported. mTotalPartialCount = 1; } else { mTotalPartialCount = partialCount; } } public CameraDeviceCallbacks getCallbacks() { Loading Loading @@ -1042,11 +1052,11 @@ public class CameraDeviceImpl extends android.hardware.camera2.CameraDevice { final CaptureListenerHolder holder = CameraDeviceImpl.this.mCaptureListenerMap.get(requestId); Boolean quirkPartial = result.get(CaptureResult.QUIRKS_PARTIAL_RESULT); boolean quirkIsPartialResult = (quirkPartial != null && quirkPartial); boolean isPartialResult = (resultExtras.getPartialResultCount() < mTotalPartialCount); // Update tracker (increment counter) when it's not a partial result. if (!quirkIsPartialResult) { if (!isPartialResult) { mFrameNumberTracker.updateTracker(resultExtras.getFrameNumber(), /*error*/false); } Loading Loading @@ -1076,7 +1086,7 @@ public class CameraDeviceImpl extends android.hardware.camera2.CameraDevice { Runnable resultDispatch = null; // Either send a partial result or the final capture completed result if (quirkIsPartialResult) { if (isPartialResult) { final CaptureResult resultAsCapture = new CaptureResult(result, request, requestId); Loading Loading @@ -1113,7 +1123,7 @@ public class CameraDeviceImpl extends android.hardware.camera2.CameraDevice { holder.getHandler().post(resultDispatch); // Fire onCaptureSequenceCompleted if (!quirkIsPartialResult) { if (!isPartialResult) { checkAndFireSequenceComplete(); } Loading core/java/android/hardware/camera2/impl/CaptureResultExtras.java +9 −1 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ public class CaptureResultExtras implements Parcelable { private int afTriggerId; private int precaptureTriggerId; private long frameNumber; private int partialResultCount; public static final Parcelable.Creator<CaptureResultExtras> CREATOR = new Parcelable.Creator<CaptureResultExtras>() { Loading @@ -46,12 +47,14 @@ public class CaptureResultExtras implements Parcelable { } public CaptureResultExtras(int requestId, int subsequenceId, int afTriggerId, int precaptureTriggerId, long frameNumber) { int precaptureTriggerId, long frameNumber, int partialResultCount) { this.requestId = requestId; this.subsequenceId = subsequenceId; this.afTriggerId = afTriggerId; this.precaptureTriggerId = precaptureTriggerId; this.frameNumber = frameNumber; this.partialResultCount = partialResultCount; } @Override Loading @@ -66,6 +69,7 @@ public class CaptureResultExtras implements Parcelable { dest.writeInt(afTriggerId); dest.writeInt(precaptureTriggerId); dest.writeLong(frameNumber); dest.writeInt(partialResultCount); } public void readFromParcel(Parcel in) { Loading @@ -74,6 +78,7 @@ public class CaptureResultExtras implements Parcelable { afTriggerId = in.readInt(); precaptureTriggerId = in.readInt(); frameNumber = in.readLong(); partialResultCount = in.readInt(); } public int getRequestId() { Loading @@ -96,4 +101,7 @@ public class CaptureResultExtras implements Parcelable { return frameNumber; } public int getPartialResultCount() { return partialResultCount; } } core/java/android/hardware/camera2/legacy/LegacyCameraDevice.java +3 −2 Original line number Diff line number Diff line Loading @@ -73,10 +73,11 @@ public class LegacyCameraDevice implements AutoCloseable { private CaptureResultExtras getExtrasFromRequest(RequestHolder holder) { if (holder == null) { return new CaptureResultExtras(ILLEGAL_VALUE, ILLEGAL_VALUE, ILLEGAL_VALUE, ILLEGAL_VALUE, ILLEGAL_VALUE); ILLEGAL_VALUE, ILLEGAL_VALUE, ILLEGAL_VALUE); } return new CaptureResultExtras(holder.getRequestId(), holder.getSubsequeceId(), /*afTriggerId*/0, /*precaptureTriggerId*/0, holder.getFrameNumber()); /*afTriggerId*/0, /*precaptureTriggerId*/0, holder.getFrameNumber(), /*partialResultCount*/1); } /** Loading Loading
core/java/android/hardware/camera2/impl/CameraDeviceImpl.java +16 −6 Original line number Diff line number Diff line Loading @@ -81,6 +81,7 @@ public class CameraDeviceImpl extends android.hardware.camera2.CameraDevice { private final String mCameraId; private final CameraCharacteristics mCharacteristics; private final int mTotalPartialCount; /** * A list tracking request and its expected last frame. Loading Loading @@ -210,7 +211,7 @@ public class CameraDeviceImpl extends android.hardware.camera2.CameraDevice { public CameraDeviceImpl(String cameraId, StateListener listener, Handler handler, CameraCharacteristics characteristics) { if (cameraId == null || listener == null || handler == null) { if (cameraId == null || listener == null || handler == null || characteristics == null) { throw new IllegalArgumentException("Null argument given"); } mCameraId = cameraId; Loading @@ -226,6 +227,15 @@ public class CameraDeviceImpl extends android.hardware.camera2.CameraDevice { } TAG = tag; DEBUG = Log.isLoggable(TAG, Log.DEBUG); Integer partialCount = mCharacteristics.get(CameraCharacteristics.REQUEST_PARTIAL_RESULT_COUNT); if (partialCount == null) { // 1 means partial result is not supported. mTotalPartialCount = 1; } else { mTotalPartialCount = partialCount; } } public CameraDeviceCallbacks getCallbacks() { Loading Loading @@ -1042,11 +1052,11 @@ public class CameraDeviceImpl extends android.hardware.camera2.CameraDevice { final CaptureListenerHolder holder = CameraDeviceImpl.this.mCaptureListenerMap.get(requestId); Boolean quirkPartial = result.get(CaptureResult.QUIRKS_PARTIAL_RESULT); boolean quirkIsPartialResult = (quirkPartial != null && quirkPartial); boolean isPartialResult = (resultExtras.getPartialResultCount() < mTotalPartialCount); // Update tracker (increment counter) when it's not a partial result. if (!quirkIsPartialResult) { if (!isPartialResult) { mFrameNumberTracker.updateTracker(resultExtras.getFrameNumber(), /*error*/false); } Loading Loading @@ -1076,7 +1086,7 @@ public class CameraDeviceImpl extends android.hardware.camera2.CameraDevice { Runnable resultDispatch = null; // Either send a partial result or the final capture completed result if (quirkIsPartialResult) { if (isPartialResult) { final CaptureResult resultAsCapture = new CaptureResult(result, request, requestId); Loading Loading @@ -1113,7 +1123,7 @@ public class CameraDeviceImpl extends android.hardware.camera2.CameraDevice { holder.getHandler().post(resultDispatch); // Fire onCaptureSequenceCompleted if (!quirkIsPartialResult) { if (!isPartialResult) { checkAndFireSequenceComplete(); } Loading
core/java/android/hardware/camera2/impl/CaptureResultExtras.java +9 −1 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ public class CaptureResultExtras implements Parcelable { private int afTriggerId; private int precaptureTriggerId; private long frameNumber; private int partialResultCount; public static final Parcelable.Creator<CaptureResultExtras> CREATOR = new Parcelable.Creator<CaptureResultExtras>() { Loading @@ -46,12 +47,14 @@ public class CaptureResultExtras implements Parcelable { } public CaptureResultExtras(int requestId, int subsequenceId, int afTriggerId, int precaptureTriggerId, long frameNumber) { int precaptureTriggerId, long frameNumber, int partialResultCount) { this.requestId = requestId; this.subsequenceId = subsequenceId; this.afTriggerId = afTriggerId; this.precaptureTriggerId = precaptureTriggerId; this.frameNumber = frameNumber; this.partialResultCount = partialResultCount; } @Override Loading @@ -66,6 +69,7 @@ public class CaptureResultExtras implements Parcelable { dest.writeInt(afTriggerId); dest.writeInt(precaptureTriggerId); dest.writeLong(frameNumber); dest.writeInt(partialResultCount); } public void readFromParcel(Parcel in) { Loading @@ -74,6 +78,7 @@ public class CaptureResultExtras implements Parcelable { afTriggerId = in.readInt(); precaptureTriggerId = in.readInt(); frameNumber = in.readLong(); partialResultCount = in.readInt(); } public int getRequestId() { Loading @@ -96,4 +101,7 @@ public class CaptureResultExtras implements Parcelable { return frameNumber; } public int getPartialResultCount() { return partialResultCount; } }
core/java/android/hardware/camera2/legacy/LegacyCameraDevice.java +3 −2 Original line number Diff line number Diff line Loading @@ -73,10 +73,11 @@ public class LegacyCameraDevice implements AutoCloseable { private CaptureResultExtras getExtrasFromRequest(RequestHolder holder) { if (holder == null) { return new CaptureResultExtras(ILLEGAL_VALUE, ILLEGAL_VALUE, ILLEGAL_VALUE, ILLEGAL_VALUE, ILLEGAL_VALUE); ILLEGAL_VALUE, ILLEGAL_VALUE, ILLEGAL_VALUE); } return new CaptureResultExtras(holder.getRequestId(), holder.getSubsequeceId(), /*afTriggerId*/0, /*precaptureTriggerId*/0, holder.getFrameNumber()); /*afTriggerId*/0, /*precaptureTriggerId*/0, holder.getFrameNumber(), /*partialResultCount*/1); } /** Loading