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

Commit 13be06c3 authored by Yin-Chia Yeh's avatar Yin-Chia Yeh Committed by Android (Google) Code Review
Browse files

Merge "CameraNDK: add API to list all tags in metadata" into nyc-dev

parents 9322ba85 8aac03f4
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -79,7 +79,7 @@ const camera_metadata_t* CameraMetadata::getAndLock() const {
    return mBuffer;
    return mBuffer;
}
}


status_t CameraMetadata::unlock(const camera_metadata_t *buffer) {
status_t CameraMetadata::unlock(const camera_metadata_t *buffer) const {
    if (!mLocked) {
    if (!mLocked) {
        ALOGE("%s: Can't unlock a non-locked CameraMetadata!", __FUNCTION__);
        ALOGE("%s: Can't unlock a non-locked CameraMetadata!", __FUNCTION__);
        return INVALID_OPERATION;
        return INVALID_OPERATION;
+1 −0
Original line number Original line Diff line number Diff line
@@ -49,6 +49,7 @@ LOCAL_SHARED_LIBRARIES := \
    libcamera_client \
    libcamera_client \
    libstagefright_foundation \
    libstagefright_foundation \
    libcutils \
    libcutils \
    libcamera_metadata


LOCAL_CLANG := true
LOCAL_CLANG := true


+12 −0
Original line number Original line Diff line number Diff line
@@ -38,6 +38,18 @@ camera_status_t ACameraMetadata_getConstEntry(
    return acm->getConstEntry(tag, entry);
    return acm->getConstEntry(tag, entry);
}
}


EXPORT
camera_status_t ACameraMetadata_getAllTags(
        const ACameraMetadata* acm, /*out*/int32_t* numTags, /*out*/const uint32_t** tags) {
    ATRACE_CALL();
    if (acm == nullptr || numTags == nullptr || tags == nullptr) {
        ALOGE("%s: invalid argument! metadata %p, numTags %p, tags %p",
               __FUNCTION__, acm, numTags, tags);
        return ACAMERA_ERROR_INVALID_PARAMETER;
    }
    return acm->getTags(numTags, tags);
}

EXPORT
EXPORT
ACameraMetadata* ACameraMetadata_copy(const ACameraMetadata* src) {
ACameraMetadata* ACameraMetadata_copy(const ACameraMetadata* src) {
    ATRACE_CALL();
    ATRACE_CALL();
+12 −0
Original line number Original line Diff line number Diff line
@@ -87,6 +87,18 @@ camera_status_t ACaptureRequest_getConstEntry(
    return req->settings->getConstEntry(tag, entry);
    return req->settings->getConstEntry(tag, entry);
}
}


EXPORT
camera_status_t ACaptureRequest_getAllTags(
        const ACaptureRequest* req, /*out*/int32_t* numTags, /*out*/const uint32_t** tags) {
    ATRACE_CALL();
    if (req == nullptr || numTags == nullptr || tags == nullptr) {
        ALOGE("%s: invalid argument! request %p, numTags %p, tags %p",
               __FUNCTION__, req, numTags, tags);
        return ACAMERA_ERROR_INVALID_PARAMETER;
    }
    return req->settings->getTags(numTags, tags);
}

#define SET_ENTRY(NAME,NDK_TYPE)                                                        \
#define SET_ENTRY(NAME,NDK_TYPE)                                                        \
EXPORT                                                                                  \
EXPORT                                                                                  \
camera_status_t ACaptureRequest_setEntry_##NAME(                                        \
camera_status_t ACaptureRequest_setEntry_##NAME(                                        \
+3 −3
Original line number Original line Diff line number Diff line
@@ -76,8 +76,8 @@ CameraDevice::CameraDevice(
    mHandler = new CallbackHandler();
    mHandler = new CallbackHandler();
    mCbLooper->registerHandler(mHandler);
    mCbLooper->registerHandler(mHandler);


    CameraMetadata metadata = mChars->mData;
    const CameraMetadata& metadata = mChars->getInternalData();
    camera_metadata_entry entry = metadata.find(ANDROID_REQUEST_PARTIAL_RESULT_COUNT);
    camera_metadata_ro_entry entry = metadata.find(ANDROID_REQUEST_PARTIAL_RESULT_COUNT);
    if (entry.count != 1) {
    if (entry.count != 1) {
        ALOGW("%s: bad count %zu for partial result count", __FUNCTION__, entry.count);
        ALOGW("%s: bad count %zu for partial result count", __FUNCTION__, entry.count);
        mPartialResultCount = 1;
        mPartialResultCount = 1;
@@ -279,7 +279,7 @@ CameraDevice::allocateCaptureRequest(
        const ACaptureRequest* request, /*out*/sp<CaptureRequest>& outReq) {
        const ACaptureRequest* request, /*out*/sp<CaptureRequest>& outReq) {
    camera_status_t ret;
    camera_status_t ret;
    sp<CaptureRequest> req(new CaptureRequest());
    sp<CaptureRequest> req(new CaptureRequest());
    req->mMetadata = request->settings->mData;
    req->mMetadata = request->settings->getInternalData();
    req->mIsReprocess = false; // NDK does not support reprocessing yet
    req->mIsReprocess = false; // NDK does not support reprocessing yet


    for (auto outputTarget : request->targets->mOutputs) {
    for (auto outputTarget : request->targets->mOutputs) {
Loading