diff options
author | Jianing Wei <jianingwei@google.com> | 2014-04-19 01:21:56 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-04-19 01:21:56 +0000 |
commit | 2bcd40235e5a9a73adfb3f685fe78577b35d3ba5 (patch) | |
tree | e03297168f86f65f20b24e7d09a973503d568002 | |
parent | 239751237c3431c9b9683fc08219c05f884f37d8 (diff) | |
parent | baf0c650b3747a6510af81cf92c4a584d7bfd3a1 (diff) | |
download | frameworks_base-2bcd40235e5a9a73adfb3f685fe78577b35d3ba5.zip frameworks_base-2bcd40235e5a9a73adfb3f685fe78577b35d3ba5.tar.gz frameworks_base-2bcd40235e5a9a73adfb3f685fe78577b35d3ba5.tar.bz2 |
Merge "Camera2 API: fix bug in Camera2 CTS test failure."
-rw-r--r-- | core/java/android/hardware/camera2/impl/CameraDevice.java | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/core/java/android/hardware/camera2/impl/CameraDevice.java b/core/java/android/hardware/camera2/impl/CameraDevice.java index 7328fe3..ee2adac 100644 --- a/core/java/android/hardware/camera2/impl/CameraDevice.java +++ b/core/java/android/hardware/camera2/impl/CameraDevice.java @@ -315,6 +315,12 @@ public class CameraDevice implements android.hardware.camera2.CameraDevice { holder = (index >= 0) ? mCaptureListenerMap.valueAt(index) : null; if (holder != null) { mCaptureListenerMap.removeAt(index); + if (DEBUG) { + Log.v(TAG, String.format( + "remove holder for requestId %d, " + + "because lastFrame is %d.", + requestId, lastFrameNumber)); + } } if (holder != null) { @@ -390,6 +396,10 @@ public class CameraDevice implements android.hardware.camera2.CameraDevice { if (listener != null) { mCaptureListenerMap.put(requestId, new CaptureListenerHolder(listener, requestList, handler, repeating)); + } else { + if (DEBUG) { + Log.d(TAG, "Listen for request " + requestId + " is null"); + } } long lastFrameNumber = lastFrameNumberRef.getNumber(); @@ -828,7 +838,8 @@ public class CameraDevice implements android.hardware.camera2.CameraDevice { CaptureResultExtras resultExtras) throws RemoteException { int requestId = resultExtras.getRequestId(); if (DEBUG) { - Log.d(TAG, "Received result for id " + requestId); + Log.v(TAG, "Received result frame " + resultExtras.getFrameNumber() + " for id " + + requestId); } final CaptureListenerHolder holder; synchronized (mLock) { @@ -838,17 +849,26 @@ public class CameraDevice implements android.hardware.camera2.CameraDevice { Boolean quirkPartial = result.get(CaptureResult.QUIRKS_PARTIAL_RESULT); boolean quirkIsPartialResult = (quirkPartial != null && quirkPartial); + // Update tracker (increment counter) when it's not a partial result. + if (!quirkIsPartialResult) { + mFrameNumberTracker.updateTracker(resultExtras.getFrameNumber(), /*error*/false); + } + // Check if we have a listener for this if (holder == null) { if (DEBUG) { - Log.v(TAG, "holder is null, early return"); + Log.d(TAG, + "holder is null, early return at frame " + + resultExtras.getFrameNumber()); } return; } if (isClosed()) { if (DEBUG) { - Log.v(TAG, "camera is closed, early return"); + Log.d(TAG, + "camera is closed, early return at frame " + + resultExtras.getFrameNumber()); } return; } @@ -891,7 +911,6 @@ public class CameraDevice implements android.hardware.camera2.CameraDevice { // Fire onCaptureSequenceCompleted if (!quirkIsPartialResult) { - mFrameNumberTracker.updateTracker(resultExtras.getFrameNumber(), /*error*/false); checkAndFireSequenceComplete(); } } |