summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJianing Wei <jianingwei@google.com>2014-04-19 01:21:56 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-04-19 01:21:56 +0000
commit2bcd40235e5a9a73adfb3f685fe78577b35d3ba5 (patch)
treee03297168f86f65f20b24e7d09a973503d568002
parent239751237c3431c9b9683fc08219c05f884f37d8 (diff)
parentbaf0c650b3747a6510af81cf92c4a584d7bfd3a1 (diff)
downloadframeworks_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.java27
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();
}
}