summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Kwangkyu Park <kk48.park@samsung.com> 2024-08-31 01:24:57 +0900
committer Kwangkyu Park <kk48.park@samsung.com> 2024-08-31 01:35:39 +0900
commitba425af6f83e56fce2361e74273389be05ee0e59 (patch)
tree7f056f8e787b315c434ec05b1b41c1a757c56680
parent34eacbbf0590eec300d156afd5eb82fd4b1a81bb (diff)
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
-rw-r--r--packages/services/CameraExtensionsProxy/src/com/android/cameraextensions/CameraExtensionsProxyService.java14
1 files changed, 14 insertions, 0 deletions
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;
@@ -2461,6 +2462,19 @@ public class CameraExtensionsProxyService extends Service {
}
@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 {
close();