Add an option for vendors to provide a camera extensions proxy

Test: build and run Camera2ExtensionsBasic
Bug: 183533362
Change-Id: I250db33288f62808a9a8d883c0a5f27e9c425f6e
This commit is contained in:
Diego Wilson
2021-06-17 19:55:02 +00:00
parent 4d351c5089
commit f10bf6d66e

View File

@@ -20,6 +20,7 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.content.pm.PackageManager;
import android.graphics.ImageFormat;
import android.hardware.camera2.extension.IAdvancedExtenderImpl;
import android.hardware.camera2.extension.ICameraExtensionsProxyService;
@@ -32,6 +33,7 @@ import android.hardware.camera2.params.StreamConfigurationMap;
import android.os.ConditionVariable;
import android.os.IBinder;
import android.os.RemoteException;
import android.os.SystemProperties;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.util.Log;
@@ -235,6 +237,19 @@ public final class CameraExtensionCharacteristics {
if (mConnection == null) {
Intent intent = new Intent();
intent.setClassName(PROXY_PACKAGE_NAME, PROXY_SERVICE_NAME);
String vendorProxyPackage = SystemProperties.get(
"ro.vendor.camera.extensions.package");
String vendorProxyService = SystemProperties.get(
"ro.vendor.camera.extensions.service");
if (!vendorProxyPackage.isEmpty() && !vendorProxyService.isEmpty()) {
Log.v(TAG,
"Choosing the vendor camera extensions proxy package: "
+ vendorProxyPackage);
Log.v(TAG,
"Choosing the vendor camera extensions proxy service: "
+ vendorProxyService);
intent.setClassName(vendorProxyPackage, vendorProxyService);
}
mInitFuture = new InitializerFuture();
mConnection = new ServiceConnection() {
@Override