Loading camera/CameraMetadata.cpp +4 −22 Original line number Original line Diff line number Diff line Loading @@ -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> Loading @@ -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); } } Loading Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading Loading @@ -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__); Loading Loading @@ -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) { Loading @@ -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); Loading @@ -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) { Loading Loading @@ -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; Loading Loading @@ -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) { Loading Loading @@ -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; Loading Loading @@ -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; /** /** Loading Loading @@ -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; Loading Loading @@ -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) { Loading Loading @@ -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); Loading camera/ndk/include/camera/NdkCameraMetadataTags.h +7 −5 Original line number Original line Diff line number Diff line Loading @@ -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> Loading Loading
camera/CameraMetadata.cpp +4 −22 Original line number Original line Diff line number Diff line Loading @@ -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> Loading @@ -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); } } Loading Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading Loading @@ -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__); Loading Loading @@ -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) { Loading @@ -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); Loading @@ -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) { Loading Loading @@ -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; Loading Loading @@ -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) { Loading Loading @@ -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; Loading Loading @@ -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; /** /** Loading Loading @@ -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; Loading Loading @@ -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) { Loading Loading @@ -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); Loading
camera/ndk/include/camera/NdkCameraMetadataTags.h +7 −5 Original line number Original line Diff line number Diff line Loading @@ -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> Loading