From ba425af6f83e56fce2361e74273389be05ee0e59 Mon Sep 17 00:00:00 2001 From: Kwangkyu Park Date: Sat, 31 Aug 2024 01:24:57 +0900 Subject: Camera: relay sync fence to vendor library Currently, a sync fence from ParcelImage is not relayed to a vendor library. However, a fence might be required to implement a service-based vendor library. This patch will make changes to dup/provide a fence to the vendor library. Bug: 363229739 Test: Manual test with service based vendor library Change-Id: Iecc30e4a2523f64aa36271a75f67bf805c7b9a79 --- .../cameraextensions/CameraExtensionsProxyService.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/services/CameraExtensionsProxy/src/com/android/cameraextensions/CameraExtensionsProxyService.java b/packages/services/CameraExtensionsProxy/src/com/android/cameraextensions/CameraExtensionsProxyService.java index 5a2d26502003..10f94a88f2a4 100644 --- a/packages/services/CameraExtensionsProxy/src/com/android/cameraextensions/CameraExtensionsProxyService.java +++ b/packages/services/CameraExtensionsProxy/src/com/android/cameraextensions/CameraExtensionsProxyService.java @@ -22,6 +22,7 @@ import android.content.pm.PackageManager; import android.graphics.GraphicBuffer; import android.graphics.Rect; import android.hardware.HardwareBuffer; +import android.hardware.SyncFence; import android.hardware.camera2.CameraAccessException; import android.hardware.camera2.CameraCharacteristics; import android.hardware.camera2.CameraExtensionCharacteristics; @@ -2460,6 +2461,19 @@ public class CameraExtensionsProxyService extends Service { return mPlanes.clone(); } + @Override + public SyncFence getFence() { + if (mParcelImage.fence != null) { + try { + return SyncFence.create(mParcelImage.fence.dup()); + } catch (IOException e) { + Log.e(TAG, "Failed to parcel buffer fence!"); + } + } + + return SyncFence.createEmpty(); + } + @Override protected final void finalize() throws Throwable { try { -- cgit v1.2.3-59-g8ed1b