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:
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user