Camera: Return sequence id for advanced extension requests

Allow 'IRequestProcessorImpl' to return the camera sequence id
in response to capture requests.

Bug: 196090349
Test: atest -c
cts/tests/camera/src/android/hardware/camera2/cts/CameraExtensionSessionTest.java

Change-Id: I3d67e4ba1b4503cf71c31751920e916d014ef3ab
This commit is contained in:
Emilian Peev
2021-08-10 15:23:55 -07:00
parent df1723afdf
commit 5cf033ccb7
3 changed files with 17 additions and 17 deletions

View File

@@ -24,9 +24,9 @@ import android.hardware.camera2.extension.Request;
interface IRequestProcessorImpl
{
void setImageProcessor(in OutputConfigId outputConfigId, in IImageProcessorImpl imageProcessor);
boolean submit(in Request request, in IRequestCallback callback);
boolean submitBurst(in List<Request> requests, in IRequestCallback callback);
boolean setRepeating(in Request request, in IRequestCallback callback);
int submit(in Request request, in IRequestCallback callback);
int submitBurst(in List<Request> requests, in IRequestCallback callback);
int setRepeating(in Request request, in IRequestCallback callback);
void abortCaptures();
void stopRepeating();
}

View File

@@ -864,14 +864,15 @@ public final class CameraAdvancedExtensionSessionImpl extends CameraExtensionSes
}
@Override
public boolean submit(Request request, IRequestCallback callback) {
public int submit(Request request, IRequestCallback callback) {
ArrayList<Request> captureList = new ArrayList<>();
captureList.add(request);
return submitBurst(captureList, callback);
}
@Override
public boolean submitBurst(List<Request> requests, IRequestCallback callback) {
public int submitBurst(List<Request> requests, IRequestCallback callback) {
int seqId = -1;
synchronized (mInterfaceLock) {
try {
CaptureCallbackHandler captureCallback = new CaptureCallbackHandler(callback);
@@ -880,37 +881,36 @@ public final class CameraAdvancedExtensionSessionImpl extends CameraExtensionSes
captureRequests.add(initializeCaptureRequest(mCameraDevice, request,
mCameraConfigMap));
}
mCaptureSession.captureBurstRequests(captureRequests,
seqId = mCaptureSession.captureBurstRequests(captureRequests,
new CameraExtensionUtils.HandlerExecutor(mHandler), captureCallback);
} catch (CameraAccessException e) {
Log.e(TAG, "Failed to submit capture requests!");
return false;
} catch (IllegalStateException e) {
Log.e(TAG, "Capture session closed!");
}
}
return true;
return seqId;
}
@Override
public boolean setRepeating(Request request, IRequestCallback callback) {
public int setRepeating(Request request, IRequestCallback callback) {
int seqId = -1;
synchronized (mInterfaceLock) {
try {
CaptureRequest repeatingRequest = initializeCaptureRequest(mCameraDevice,
request, mCameraConfigMap);
CaptureCallbackHandler captureCallback = new CaptureCallbackHandler(callback);
mCaptureSession.setSingleRepeatingRequest(repeatingRequest,
seqId = mCaptureSession.setSingleRepeatingRequest(repeatingRequest,
new CameraExtensionUtils.HandlerExecutor(mHandler), captureCallback);
} catch (CameraAccessException e) {
Log.e(TAG, "Failed to enable repeating request!");
return false;
} catch (IllegalStateException e) {
Log.e(TAG, "Capture session closed!");
}
}
return true;
return seqId;
}
@Override

View File

@@ -970,14 +970,14 @@ public class CameraExtensionsProxyService extends Service {
}
@Override
public boolean submit(Request request, Callback callback) {
public int submit(Request request, Callback callback) {
ArrayList<Request> requests = new ArrayList<>();
requests.add(request);
return submit(requests, callback);
}
@Override
public boolean submit(List<Request> requests, Callback callback) {
public int submit(List<Request> requests, Callback callback) {
ArrayList<android.hardware.camera2.extension.Request> captureRequests =
new ArrayList<>();
int requestId = 0;
@@ -992,11 +992,11 @@ public class CameraExtensionsProxyService extends Service {
} catch (RemoteException e) {
Log.e(TAG, "Failed to submit request due to remote exception!");
}
return false;
return -1;
}
@Override
public boolean setRepeating(Request request, Callback callback) {
public int setRepeating(Request request, Callback callback) {
try {
ArrayList<Request> requests = new ArrayList<>();
requests.add(request);
@@ -1007,7 +1007,7 @@ public class CameraExtensionsProxyService extends Service {
Log.e(TAG, "Failed to submit repeating request due to remote exception!");
}
return false;
return -1;
}
@Override