From 661f4410f4b4d13dde6fb758fd56848e329edfab Mon Sep 17 00:00:00 2001 From: Jayant Chowdhary Date: Mon, 1 Apr 2019 10:29:53 -0700 Subject: [PATCH] Allow android.hardware.camera.common@1.0-helper to access vendor tags This allows vendor camera clients to access provider specific vendor tags. No expected behavior changes to camera HAL process(es). Also fixes OWNERS file. Bug: 129688550 Test: AImageReaderTest modified to set a vendor tag in CaptureRequest Test: Take still pictures / record video (sanity) Test: camera CTS tests Change-Id: I18b678e7e0db7f1b29c3de0b762cb65e25842fa8 Signed-off-by: Jayant Chowdhary --- camera/common/1.0/default/CameraMetadata.cpp | 31 +++++++++----------- camera/common/1.0/default/OWNERS | 2 +- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/camera/common/1.0/default/CameraMetadata.cpp b/camera/common/1.0/default/CameraMetadata.cpp index 4c54931a11..eb1bd1c149 100644 --- a/camera/common/1.0/default/CameraMetadata.cpp +++ b/camera/common/1.0/default/CameraMetadata.cpp @@ -171,17 +171,16 @@ status_t CameraMetadata::sort() { } status_t CameraMetadata::checkType(uint32_t tag, uint8_t expectedType) { - int tagType = get_camera_metadata_tag_type(tag); + int tagType = get_local_camera_metadata_tag_type(tag, mBuffer); if ( CC_UNLIKELY(tagType == -1)) { ALOGE("Update metadata entry: Unknown tag %d", tag); return INVALID_OPERATION; } if ( CC_UNLIKELY(tagType != expectedType) ) { ALOGE("Mismatched tag type when updating entry %s (%d) of type %s; " - "got type %s data instead ", - get_camera_metadata_tag_name(tag), tag, - camera_metadata_type_names[tagType], - camera_metadata_type_names[expectedType]); + "got type %s data instead ", + get_local_camera_metadata_tag_name(tag, mBuffer), tag, + camera_metadata_type_names[tagType], camera_metadata_type_names[expectedType]); return INVALID_OPERATION; } return OK; @@ -298,7 +297,7 @@ status_t CameraMetadata::updateImpl(uint32_t tag, const void *data, ALOGE("%s: CameraMetadata is locked", __FUNCTION__); return INVALID_OPERATION; } - int type = get_camera_metadata_tag_type(tag); + int type = get_local_camera_metadata_tag_type(tag, mBuffer); if (type == -1) { ALOGE("%s: Tag %d not found", __FUNCTION__, tag); return BAD_VALUE; @@ -332,9 +331,9 @@ status_t CameraMetadata::updateImpl(uint32_t tag, const void *data, } if (res != OK) { - ALOGE("%s: Unable to update metadata entry %s.%s (%x): %s (%d)", - __FUNCTION__, get_camera_metadata_section_name(tag), - get_camera_metadata_tag_name(tag), tag, strerror(-res), res); + ALOGE("%s: Unable to update metadata entry %s.%s (%x): %s (%d)", __FUNCTION__, + get_local_camera_metadata_section_name(tag, mBuffer), + get_local_camera_metadata_tag_name(tag, mBuffer), tag, strerror(-res), res); } IF_ALOGV() { @@ -391,18 +390,16 @@ status_t CameraMetadata::erase(uint32_t tag) { if (res == NAME_NOT_FOUND) { return OK; } else if (res != OK) { - ALOGE("%s: Error looking for entry %s.%s (%x): %s %d", - __FUNCTION__, - get_camera_metadata_section_name(tag), - get_camera_metadata_tag_name(tag), tag, strerror(-res), res); + ALOGE("%s: Error looking for entry %s.%s (%x): %s %d", __FUNCTION__, + get_local_camera_metadata_section_name(tag, mBuffer), + get_local_camera_metadata_tag_name(tag, mBuffer), tag, strerror(-res), res); return res; } res = delete_camera_metadata_entry(mBuffer, entry.index); if (res != OK) { - ALOGE("%s: Error deleting entry %s.%s (%x): %s %d", - __FUNCTION__, - get_camera_metadata_section_name(tag), - get_camera_metadata_tag_name(tag), tag, strerror(-res), res); + ALOGE("%s: Error deleting entry %s.%s (%x): %s %d", __FUNCTION__, + get_local_camera_metadata_section_name(tag, mBuffer), + get_local_camera_metadata_tag_name(tag, mBuffer), tag, strerror(-res), res); } return res; } diff --git a/camera/common/1.0/default/OWNERS b/camera/common/1.0/default/OWNERS index f112576ef8..70128c7f21 100644 --- a/camera/common/1.0/default/OWNERS +++ b/camera/common/1.0/default/OWNERS @@ -1 +1 @@ -include platform/frameworks/av/camera:/OWNERS +include platform/frameworks/av:camera/OWNERS