summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/hardware/camera2/impl/CameraDeviceImpl.java7
-rw-r--r--core/java/android/hardware/camera2/legacy/CameraDeviceState.java8
-rw-r--r--core/java/android/hardware/camera2/legacy/CameraDeviceUserShim.java13
-rw-r--r--core/java/android/hardware/camera2/legacy/LegacyCameraDevice.java6
-rw-r--r--core/java/android/hardware/camera2/legacy/RequestThreadManager.java3
-rw-r--r--media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java2
-rw-r--r--media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraDeviceBinderTest.java2
7 files changed, 25 insertions, 16 deletions
diff --git a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
index 0d5c5e3538c1..bfeb14dedb5c 100644
--- a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
+++ b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
@@ -1769,7 +1769,7 @@ public class CameraDeviceImpl extends CameraDevice
}
@Override
- public void onRepeatingRequestError(long lastFrameNumber) {
+ public void onRepeatingRequestError(long lastFrameNumber, int repeatingRequestId) {
if (DEBUG) {
Log.d(TAG, "Repeating request error received. Last frame number is " +
lastFrameNumber);
@@ -1782,7 +1782,10 @@ public class CameraDeviceImpl extends CameraDevice
}
checkEarlyTriggerSequenceComplete(mRepeatingRequestId, lastFrameNumber);
- mRepeatingRequestId = REQUEST_ID_NONE;
+ // Check if there is already a new repeating request
+ if (mRepeatingRequestId == repeatingRequestId) {
+ mRepeatingRequestId = REQUEST_ID_NONE;
+ }
}
}
diff --git a/core/java/android/hardware/camera2/legacy/CameraDeviceState.java b/core/java/android/hardware/camera2/legacy/CameraDeviceState.java
index 135d92ba6ea7..89ecd5f1ce63 100644
--- a/core/java/android/hardware/camera2/legacy/CameraDeviceState.java
+++ b/core/java/android/hardware/camera2/legacy/CameraDeviceState.java
@@ -77,7 +77,7 @@ public class CameraDeviceState {
void onCaptureStarted(RequestHolder holder, long timestamp);
void onCaptureResult(CameraMetadataNative result, RequestHolder holder);
void onRequestQueueEmpty();
- void onRepeatingRequestError(long lastFrameNumber);
+ void onRepeatingRequestError(long lastFrameNumber, int repeatingRequestId);
}
/**
@@ -208,12 +208,14 @@ public class CameraDeviceState {
* <p>Repeating request has been stopped due to an error such as abandoned output surfaces.</p>
*
* @param lastFrameNumber Frame number of the last repeating request before it is stopped.
+ * @param repeatingRequestId The ID of the repeating request being stopped
*/
- public synchronized void setRepeatingRequestError(final long lastFrameNumber) {
+ public synchronized void setRepeatingRequestError(final long lastFrameNumber,
+ final int repeatingRequestId) {
mCurrentHandler.post(new Runnable() {
@Override
public void run() {
- mCurrentListener.onRepeatingRequestError(lastFrameNumber);
+ mCurrentListener.onRepeatingRequestError(lastFrameNumber, repeatingRequestId);
}
});
}
diff --git a/core/java/android/hardware/camera2/legacy/CameraDeviceUserShim.java b/core/java/android/hardware/camera2/legacy/CameraDeviceUserShim.java
index d8df9a067c63..49d4096e3f3e 100644
--- a/core/java/android/hardware/camera2/legacy/CameraDeviceUserShim.java
+++ b/core/java/android/hardware/camera2/legacy/CameraDeviceUserShim.java
@@ -264,10 +264,10 @@ public class CameraDeviceUserShim implements ICameraDeviceUser {
}
@Override
- public void onRepeatingRequestError(long lastFrameNumber) {
+ public void onRepeatingRequestError(long lastFrameNumber, int repeatingRequestId) {
+ Object[] objArray = new Object[] { lastFrameNumber, repeatingRequestId };
Message msg = getHandler().obtainMessage(REPEATING_REQUEST_ERROR,
- /*arg1*/ (int) (lastFrameNumber & 0xFFFFFFFFL),
- /*arg2*/ (int) ( (lastFrameNumber >> 32) & 0xFFFFFFFFL));
+ /*obj*/ objArray);
getHandler().sendMessage(msg);
}
@@ -329,9 +329,10 @@ public class CameraDeviceUserShim implements ICameraDeviceUser {
break;
}
case REPEATING_REQUEST_ERROR: {
- long lastFrameNumber = msg.arg2 & 0xFFFFFFFFL;
- lastFrameNumber = (lastFrameNumber << 32) | (msg.arg1 & 0xFFFFFFFFL);
- mCallbacks.onRepeatingRequestError(lastFrameNumber);
+ Object[] objArray = (Object[]) msg.obj;
+ long lastFrameNumber = (Long) objArray[0];
+ int repeatingRequestId = (Integer) objArray[1];
+ mCallbacks.onRepeatingRequestError(lastFrameNumber, repeatingRequestId);
break;
}
case REQUEST_QUEUE_EMPTY: {
diff --git a/core/java/android/hardware/camera2/legacy/LegacyCameraDevice.java b/core/java/android/hardware/camera2/legacy/LegacyCameraDevice.java
index 621ea8455d1e..cb59fd14f5c5 100644
--- a/core/java/android/hardware/camera2/legacy/LegacyCameraDevice.java
+++ b/core/java/android/hardware/camera2/legacy/LegacyCameraDevice.java
@@ -263,7 +263,8 @@ public class LegacyCameraDevice implements AutoCloseable {
}
@Override
- public void onRepeatingRequestError(final long lastFrameNumber) {
+ public void onRepeatingRequestError(final long lastFrameNumber,
+ final int repeatingRequestId) {
mResultHandler.post(new Runnable() {
@Override
public void run() {
@@ -271,7 +272,8 @@ public class LegacyCameraDevice implements AutoCloseable {
Log.d(TAG, "doing onRepeatingRequestError callback.");
}
try {
- mDeviceCallbacks.onRepeatingRequestError(lastFrameNumber);
+ mDeviceCallbacks.onRepeatingRequestError(lastFrameNumber,
+ repeatingRequestId);
} catch (RemoteException e) {
throw new IllegalStateException(
"Received remote exception during onRepeatingRequestError " +
diff --git a/core/java/android/hardware/camera2/legacy/RequestThreadManager.java b/core/java/android/hardware/camera2/legacy/RequestThreadManager.java
index 565a43e933ce..aaf07e60bef5 100644
--- a/core/java/android/hardware/camera2/legacy/RequestThreadManager.java
+++ b/core/java/android/hardware/camera2/legacy/RequestThreadManager.java
@@ -939,7 +939,8 @@ public class RequestThreadManager {
Log.d(TAG, "Stopped repeating request. Last frame number is " +
lastFrameNumber);
}
- mDeviceState.setRepeatingRequestError(lastFrameNumber);
+ mDeviceState.setRepeatingRequestError(lastFrameNumber,
+ burstHolder.getRequestId());
}
if (DEBUG) {
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java
index fcb861ce07da..cf5882f92b00 100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java
@@ -271,7 +271,7 @@ public class CameraBinderTest extends AndroidTestCase {
* @see android.hardware.camera2.ICameraDeviceCallbacks#onRepeatingRequestError()
*/
@Override
- public void onRepeatingRequestError(long lastFrameNumber) {
+ public void onRepeatingRequestError(long lastFrameNumber, int repeatingRequestId) {
// TODO Auto-generated method stub
}
}
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraDeviceBinderTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraDeviceBinderTest.java
index 476f0166ca0d..e628b6825208 100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraDeviceBinderTest.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraDeviceBinderTest.java
@@ -161,7 +161,7 @@ public class CameraDeviceBinderTest extends AndroidTestCase {
* @see android.hardware.camera2.ICameraDeviceCallbacks#onRepeatingRequestError()
*/
@Override
- public void onRepeatingRequestError(long lastFrameNumber) {
+ public void onRepeatingRequestError(long lastFrameNumber, int repeatingRequestId) {
// TODO Auto-generated method stub
}
}