Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 661f4410 authored by Jayant Chowdhary's avatar Jayant Chowdhary
Browse files

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: default avatarJayant Chowdhary <jchowdhary@google.com>
parent 6f5a48f7
Loading
Loading
Loading
Loading
+14 −17
Original line number Diff line number Diff line
@@ -171,7 +171,7 @@ 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;
@@ -179,9 +179,8 @@ status_t CameraMetadata::checkType(uint32_t tag, uint8_t expectedType) {
    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]);
              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;
}
+1 −1
Original line number Diff line number Diff line
include platform/frameworks/av/camera:/OWNERS
include platform/frameworks/av:camera/OWNERS