Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4d404ff1 authored by Emilian Peev's avatar Emilian Peev Committed by Android Build Coastguard Worker
Browse files

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
(cherry picked from commit 5cf033cc)
parent 24a2a966
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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();
}
+9 −9
Original line number Diff line number Diff line
@@ -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
+5 −5
Original line number Diff line number Diff line
@@ -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