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

Commit 197f9727 authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 6489494 from 97090332 to mainline-release

Change-Id: I6242211c7cf874bfa336ac7a322413047da103f2
parents 87c8e5e1 97090332
Loading
Loading
Loading
Loading
+4 −22
Original line number Original line Diff line number Diff line
@@ -17,9 +17,7 @@
// #define LOG_NDEBUG 0
// #define LOG_NDEBUG 0


#define LOG_TAG "Camera2-Metadata"
#define LOG_TAG "Camera2-Metadata"
#define ATRACE_TAG ATRACE_TAG_CAMERA
#include <utils/Log.h>
#include <utils/Log.h>
#include <utils/Trace.h>
#include <utils/Errors.h>
#include <utils/Errors.h>


#include <binder/Parcel.h>
#include <binder/Parcel.h>
@@ -40,13 +38,11 @@ CameraMetadata::CameraMetadata() :
CameraMetadata::CameraMetadata(size_t entryCapacity, size_t dataCapacity) :
CameraMetadata::CameraMetadata(size_t entryCapacity, size_t dataCapacity) :
        mLocked(false)
        mLocked(false)
{
{
    ATRACE_CALL();
    mBuffer = allocate_camera_metadata(entryCapacity, dataCapacity);
    mBuffer = allocate_camera_metadata(entryCapacity, dataCapacity);
}
}


CameraMetadata::CameraMetadata(const CameraMetadata &other) :
CameraMetadata::CameraMetadata(const CameraMetadata &other) :
        mLocked(false) {
        mLocked(false) {
    ATRACE_CALL();
    mBuffer = clone_camera_metadata(other.mBuffer);
    mBuffer = clone_camera_metadata(other.mBuffer);
}
}


@@ -117,7 +113,6 @@ camera_metadata_t* CameraMetadata::release() {
}
}


void CameraMetadata::clear() {
void CameraMetadata::clear() {
    ATRACE_CALL();
    if (mLocked) {
    if (mLocked) {
        ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
        ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
        return;
        return;
@@ -129,7 +124,6 @@ void CameraMetadata::clear() {
}
}


void CameraMetadata::acquire(camera_metadata_t *buffer) {
void CameraMetadata::acquire(camera_metadata_t *buffer) {
    ATRACE_CALL();
    if (mLocked) {
    if (mLocked) {
        ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
        ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
        return;
        return;
@@ -143,7 +137,6 @@ void CameraMetadata::acquire(camera_metadata_t *buffer) {
}
}


void CameraMetadata::acquire(CameraMetadata &other) {
void CameraMetadata::acquire(CameraMetadata &other) {
    ATRACE_CALL();
    if (mLocked) {
    if (mLocked) {
        ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
        ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
        return;
        return;
@@ -152,12 +145,10 @@ void CameraMetadata::acquire(CameraMetadata &other) {
}
}


status_t CameraMetadata::append(const CameraMetadata &other) {
status_t CameraMetadata::append(const CameraMetadata &other) {
    ATRACE_CALL();
    return append(other.mBuffer);
    return append(other.mBuffer);
}
}


status_t CameraMetadata::append(const camera_metadata_t* other) {
status_t CameraMetadata::append(const camera_metadata_t* other) {
    ATRACE_CALL();
    if (mLocked) {
    if (mLocked) {
        ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
        ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
        return INVALID_OPERATION;
        return INVALID_OPERATION;
@@ -179,7 +170,6 @@ bool CameraMetadata::isEmpty() const {
}
}


status_t CameraMetadata::sort() {
status_t CameraMetadata::sort() {
    ATRACE_CALL();
    if (mLocked) {
    if (mLocked) {
        ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
        ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
        return INVALID_OPERATION;
        return INVALID_OPERATION;
@@ -310,7 +300,6 @@ status_t CameraMetadata::update(const camera_metadata_ro_entry &entry) {


status_t CameraMetadata::updateImpl(uint32_t tag, const void *data,
status_t CameraMetadata::updateImpl(uint32_t tag, const void *data,
        size_t data_count) {
        size_t data_count) {
    ATRACE_CALL();
    status_t res;
    status_t res;
    if (mLocked) {
    if (mLocked) {
        ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
        ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
@@ -368,13 +357,11 @@ status_t CameraMetadata::updateImpl(uint32_t tag, const void *data,
}
}


bool CameraMetadata::exists(uint32_t tag) const {
bool CameraMetadata::exists(uint32_t tag) const {
    ATRACE_CALL();
    camera_metadata_ro_entry entry;
    camera_metadata_ro_entry entry;
    return find_camera_metadata_ro_entry(mBuffer, tag, &entry) == 0;
    return find_camera_metadata_ro_entry(mBuffer, tag, &entry) == 0;
}
}


camera_metadata_entry_t CameraMetadata::find(uint32_t tag) {
camera_metadata_entry_t CameraMetadata::find(uint32_t tag) {
    ATRACE_CALL();
    status_t res;
    status_t res;
    camera_metadata_entry entry;
    camera_metadata_entry entry;
    if (mLocked) {
    if (mLocked) {
@@ -391,7 +378,6 @@ camera_metadata_entry_t CameraMetadata::find(uint32_t tag) {
}
}


camera_metadata_ro_entry_t CameraMetadata::find(uint32_t tag) const {
camera_metadata_ro_entry_t CameraMetadata::find(uint32_t tag) const {
    ATRACE_CALL();
    status_t res;
    status_t res;
    camera_metadata_ro_entry entry;
    camera_metadata_ro_entry entry;
    res = find_camera_metadata_ro_entry(mBuffer, tag, &entry);
    res = find_camera_metadata_ro_entry(mBuffer, tag, &entry);
@@ -403,7 +389,6 @@ camera_metadata_ro_entry_t CameraMetadata::find(uint32_t tag) const {
}
}


status_t CameraMetadata::erase(uint32_t tag) {
status_t CameraMetadata::erase(uint32_t tag) {
    ATRACE_CALL();
    camera_metadata_entry_t entry;
    camera_metadata_entry_t entry;
    status_t res;
    status_t res;
    if (mLocked) {
    if (mLocked) {
@@ -434,7 +419,6 @@ status_t CameraMetadata::erase(uint32_t tag) {


status_t CameraMetadata::removePermissionEntries(metadata_vendor_id_t vendorId,
status_t CameraMetadata::removePermissionEntries(metadata_vendor_id_t vendorId,
        std::vector<int32_t> *tagsRemoved) {
        std::vector<int32_t> *tagsRemoved) {
    ATRACE_CALL();
    uint32_t tagCount = 0;
    uint32_t tagCount = 0;
    std::vector<uint32_t> tagsToRemove;
    std::vector<uint32_t> tagsToRemove;


@@ -511,7 +495,6 @@ void CameraMetadata::dump(int fd, int verbosity, int indentation) const {
}
}


status_t CameraMetadata::resizeIfNeeded(size_t extraEntries, size_t extraData) {
status_t CameraMetadata::resizeIfNeeded(size_t extraEntries, size_t extraData) {
    ATRACE_CALL();
    if (mBuffer == NULL) {
    if (mBuffer == NULL) {
        mBuffer = allocate_camera_metadata(extraEntries * 2, extraData * 2);
        mBuffer = allocate_camera_metadata(extraEntries * 2, extraData * 2);
        if (mBuffer == NULL) {
        if (mBuffer == NULL) {
@@ -551,7 +534,7 @@ status_t CameraMetadata::resizeIfNeeded(size_t extraEntries, size_t extraData) {


status_t CameraMetadata::readFromParcel(const Parcel& data,
status_t CameraMetadata::readFromParcel(const Parcel& data,
                                        camera_metadata_t** out) {
                                        camera_metadata_t** out) {
    ATRACE_CALL();

    status_t err = OK;
    status_t err = OK;


    camera_metadata_t* metadata = NULL;
    camera_metadata_t* metadata = NULL;
@@ -642,7 +625,6 @@ status_t CameraMetadata::readFromParcel(const Parcel& data,


status_t CameraMetadata::writeToParcel(Parcel& data,
status_t CameraMetadata::writeToParcel(Parcel& data,
                                       const camera_metadata_t* metadata) {
                                       const camera_metadata_t* metadata) {
    ATRACE_CALL();
    status_t res = OK;
    status_t res = OK;


    /**
    /**
@@ -737,7 +719,7 @@ status_t CameraMetadata::writeToParcel(Parcel& data,
}
}


status_t CameraMetadata::readFromParcel(const Parcel *parcel) {
status_t CameraMetadata::readFromParcel(const Parcel *parcel) {
    ATRACE_CALL();

    ALOGV("%s: parcel = %p", __FUNCTION__, parcel);
    ALOGV("%s: parcel = %p", __FUNCTION__, parcel);


    status_t res = OK;
    status_t res = OK;
@@ -769,7 +751,7 @@ status_t CameraMetadata::readFromParcel(const Parcel *parcel) {
}
}


status_t CameraMetadata::writeToParcel(Parcel *parcel) const {
status_t CameraMetadata::writeToParcel(Parcel *parcel) const {
    ATRACE_CALL();

    ALOGV("%s: parcel = %p", __FUNCTION__, parcel);
    ALOGV("%s: parcel = %p", __FUNCTION__, parcel);


    if (parcel == NULL) {
    if (parcel == NULL) {
@@ -798,7 +780,7 @@ void CameraMetadata::swap(CameraMetadata& other) {


status_t CameraMetadata::getTagFromName(const char *name,
status_t CameraMetadata::getTagFromName(const char *name,
        const VendorTagDescriptor* vTags, uint32_t *tag) {
        const VendorTagDescriptor* vTags, uint32_t *tag) {
    ATRACE_CALL();

    if (name == nullptr || tag == nullptr) return BAD_VALUE;
    if (name == nullptr || tag == nullptr) return BAD_VALUE;


    size_t nameLength = strlen(name);
    size_t nameLength = strlen(name);
+7 −5
Original line number Original line Diff line number Diff line
@@ -1897,11 +1897,13 @@ typedef enum acamera_metadata_tag {
     * <p>By using this control, the application gains a simpler way to control zoom, which can
     * <p>By using this control, the application gains a simpler way to control zoom, which can
     * be a combination of optical and digital zoom. For example, a multi-camera system may
     * be a combination of optical and digital zoom. For example, a multi-camera system may
     * contain more than one lens with different focal lengths, and the user can use optical
     * contain more than one lens with different focal lengths, and the user can use optical
     * zoom by switching between lenses. Using zoomRatio has benefits in the scenarios below:
     * zoom by switching between lenses. Using zoomRatio has benefits in the scenarios below:</p>
     * <em> Zooming in from a wide-angle lens to a telephoto lens: A floating-point ratio provides
     * <ul>
     *   better precision compared to an integer value of ACAMERA_SCALER_CROP_REGION.
     * <li>Zooming in from a wide-angle lens to a telephoto lens: A floating-point ratio provides
     * </em> Zooming out from a wide lens to an ultrawide lens: zoomRatio supports zoom-out whereas
     *   better precision compared to an integer value of ACAMERA_SCALER_CROP_REGION.</li>
     *   ACAMERA_SCALER_CROP_REGION doesn't.</p>
     * <li>Zooming out from a wide lens to an ultrawide lens: zoomRatio supports zoom-out whereas
     *   ACAMERA_SCALER_CROP_REGION doesn't.</li>
     * </ul>
     * <p>To illustrate, here are several scenarios of different zoom ratios, crop regions,
     * <p>To illustrate, here are several scenarios of different zoom ratios, crop regions,
     * and output streams, for a hypothetical camera device with an active array of size
     * and output streams, for a hypothetical camera device with an active array of size
     * <code>(2000,1500)</code>.</p>
     * <code>(2000,1500)</code>.</p>