From 5614cbe64493308dc5330eac5d5ba17202013dc4 Mon Sep 17 00:00:00 2001 From: Igor Murashkin Date: Mon, 17 Mar 2014 14:00:55 -0700 Subject: [PATCH] camera2: Don't log vendor tag errors when camera HAL too old Change-Id: Id7fe9464d7599a566cea976cddc62ad101cf4a10 --- core/java/android/hardware/camera2/CameraManager.java | 9 ++------- core/jni/android_hardware_camera2_CameraMetadata.cpp | 11 ++++++++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/core/java/android/hardware/camera2/CameraManager.java b/core/java/android/hardware/camera2/CameraManager.java index 78e7037ef99de..0fcd5984d5a66 100644 --- a/core/java/android/hardware/camera2/CameraManager.java +++ b/core/java/android/hardware/camera2/CameraManager.java @@ -81,13 +81,8 @@ public final class CameraManager { mCameraService = CameraBinderDecorator.newInstance(cameraServiceRaw); try { - int err = CameraMetadataNative.nativeSetupGlobalVendorTagDescriptor(); - if (err == CameraBinderDecorator.EOPNOTSUPP) { - Log.w(TAG, "HAL version doesn't vendor tags."); - } else { - CameraBinderDecorator.throwOnError(CameraMetadataNative. - nativeSetupGlobalVendorTagDescriptor()); - } + CameraBinderDecorator.throwOnError( + CameraMetadataNative.nativeSetupGlobalVendorTagDescriptor()); } catch(CameraRuntimeException e) { throw new IllegalStateException("Failed to setup camera vendor tags", e.asChecked()); diff --git a/core/jni/android_hardware_camera2_CameraMetadata.cpp b/core/jni/android_hardware_camera2_CameraMetadata.cpp index 8c15ac250b6aa..957f95cc266f4 100644 --- a/core/jni/android_hardware_camera2_CameraMetadata.cpp +++ b/core/jni/android_hardware_camera2_CameraMetadata.cpp @@ -579,9 +579,14 @@ static jint CameraMetadata_setupGlobalVendorTagDescriptor(JNIEnv *env, jobject t sp desc; err = cameraService->getCameraVendorTagDescriptor(/*out*/desc); - if (err != OK) { - ALOGE("%s: Failed to setup vendor tag descriptors, received error %s (%d)", __FUNCTION__, - strerror(-err), err); + if (err == -EOPNOTSUPP) { + ALOGW("%s: Camera HAL too old; does not support vendor tags", __FUNCTION__); + VendorTagDescriptor::clearGlobalVendorTagDescriptor(); + + return OK; + } else if (err != OK) { + ALOGE("%s: Failed to setup vendor tag descriptors, received error %s (%d)", + __FUNCTION__, strerror(-err), err); return err; }