summaryrefslogtreecommitdiffstats
path: root/camera
diff options
context:
space:
mode:
authorRuben Brunk <rubenbrunk@google.com>2014-05-03 00:28:33 +0000
committerRuben Brunk <rubenbrunk@google.com>2014-05-03 00:28:33 +0000
commit6770260f83f5576b041b7b3a2536d082a631f9b0 (patch)
treeafcf4bf640ea8ad973e2e613d4d5fee2e21377d3 /camera
parent4764324d2704f1b08bb7407014bf203924ff2363 (diff)
downloadframeworks_av-6770260f83f5576b041b7b3a2536d082a631f9b0.zip
frameworks_av-6770260f83f5576b041b7b3a2536d082a631f9b0.tar.gz
frameworks_av-6770260f83f5576b041b7b3a2536d082a631f9b0.tar.bz2
Revert "camera3: Update CameraMetadata vendor tag handling."
This reverts commit 4764324d2704f1b08bb7407014bf203924ff2363. Change-Id: I86d7fcc11423502b73fab2a82af6aa89804f0b76
Diffstat (limited to 'camera')
-rw-r--r--camera/Android.mk5
-rw-r--r--camera/VendorTagDescriptor.cpp162
2 files changed, 12 insertions, 155 deletions
diff --git a/camera/Android.mk b/camera/Android.mk
index 18800b4..5774b6f 100644
--- a/camera/Android.mk
+++ b/camera/Android.mk
@@ -52,11 +52,6 @@ LOCAL_C_INCLUDES += \
system/media/camera/include \
system/media/private/camera/include
-## Enable asserts for 'eng' builds
-ifeq ($(TARGET_BUILD_VARIANT),eng)
-LOCAL_CFLAGS += -UNDEBUG
-endif
-
LOCAL_MODULE:= libcamera_client
include $(BUILD_SHARED_LIBRARY)
diff --git a/camera/VendorTagDescriptor.cpp b/camera/VendorTagDescriptor.cpp
index d9a7a54..a0a6a51 100644
--- a/camera/VendorTagDescriptor.cpp
+++ b/camera/VendorTagDescriptor.cpp
@@ -21,13 +21,11 @@
#include <utils/Log.h>
#include <utils/Mutex.h>
#include <utils/Vector.h>
-#include <utils/SortedVector.h>
#include <system/camera_metadata.h>
#include <camera_metadata_hidden.h>
#include "camera/VendorTagDescriptor.h"
-#include <stdio.h>
#include <string.h>
namespace android {
@@ -47,13 +45,7 @@ static Mutex sLock;
static sp<VendorTagDescriptor> sGlobalVendorTagDescriptor;
VendorTagDescriptor::VendorTagDescriptor() {}
-
-VendorTagDescriptor::~VendorTagDescriptor() {
- size_t len = mReverseMapping.size();
- for (size_t i = 0; i < len; ++i) {
- delete mReverseMapping[i];
- }
-}
+VendorTagDescriptor::~VendorTagDescriptor() {}
status_t VendorTagDescriptor::createDescriptorFromOps(const vendor_tag_ops_t* vOps,
/*out*/
@@ -78,9 +70,6 @@ status_t VendorTagDescriptor::createDescriptorFromOps(const vendor_tag_ops_t* vO
sp<VendorTagDescriptor> desc = new VendorTagDescriptor();
desc->mTagCount = tagCount;
- SortedVector<String8> sections;
- KeyedVector<uint32_t, String8> tagToSectionMap;
-
for (size_t i = 0; i < static_cast<size_t>(tagCount); ++i) {
uint32_t tag = tagArray[i];
if (tag < CAMERA_METADATA_VENDOR_TAG_BOUNDARY) {
@@ -98,12 +87,7 @@ status_t VendorTagDescriptor::createDescriptorFromOps(const vendor_tag_ops_t* vO
ALOGE("%s: no section name defined for vendor tag %d.", __FUNCTION__, tag);
return BAD_VALUE;
}
-
- String8 sectionString(sectionName);
-
- sections.add(sectionString);
- tagToSectionMap.add(tag, sectionString);
-
+ desc->mTagToSectionMap.add(tag, String8(sectionName));
int tagType = vOps->get_tag_type(vOps, tag);
if (tagType < 0 || tagType >= NUM_TYPES) {
ALOGE("%s: tag type %d from vendor ops does not exist.", __FUNCTION__, tagType);
@@ -111,27 +95,6 @@ status_t VendorTagDescriptor::createDescriptorFromOps(const vendor_tag_ops_t* vO
}
desc->mTagToTypeMap.add(tag, tagType);
}
-
- desc->mSections = sections;
-
- for (size_t i = 0; i < static_cast<size_t>(tagCount); ++i) {
- uint32_t tag = tagArray[i];
- String8 sectionString = tagToSectionMap.valueFor(tag);
-
- // Set up tag to section index map
- ssize_t index = sections.indexOf(sectionString);
- assert(index >= 0);
- desc->mTagToSectionMap.add(tag, static_cast<uint32_t>(index));
-
- // Set up reverse mapping
- ssize_t reverseIndex = -1;
- if ((reverseIndex = desc->mReverseMapping.indexOfKey(sectionString)) < 0) {
- KeyedVector<String8, uint32_t>* nameMapper = new KeyedVector<String8, uint32_t>();
- reverseIndex = desc->mReverseMapping.add(sectionString, nameMapper);
- }
- desc->mReverseMapping[reverseIndex]->add(desc->mTagToNameMap[tag], tag);
- }
-
descriptor = desc;
return OK;
}
@@ -159,10 +122,8 @@ status_t VendorTagDescriptor::createFromParcel(const Parcel* parcel,
sp<VendorTagDescriptor> desc = new VendorTagDescriptor();
desc->mTagCount = tagCount;
- uint32_t tag, sectionIndex;
- uint32_t maxSectionIndex = 0;
+ uint32_t tag;
int32_t tagType;
- Vector<uint32_t> allTags;
for (int32_t i = 0; i < tagCount; ++i) {
if ((res = parcel->readInt32(reinterpret_cast<int32_t*>(&tag))) != OK) {
ALOGE("%s: could not read tag id from parcel for index %d", __FUNCTION__, i);
@@ -188,17 +149,15 @@ status_t VendorTagDescriptor::createFromParcel(const Parcel* parcel,
res = NOT_ENOUGH_DATA;
break;
}
-
- if ((res = parcel->readInt32(reinterpret_cast<int32_t*>(&sectionIndex))) != OK) {
- ALOGE("%s: could not read section index for tag %d.", __FUNCTION__, tag);
+ String8 sectionName = parcel->readString8();
+ if (sectionName.isEmpty()) {
+ ALOGE("%s: parcel section name was NULL for tag %d.", __FUNCTION__, tag);
+ res = NOT_ENOUGH_DATA;
break;
}
- maxSectionIndex = (maxSectionIndex >= sectionIndex) ? maxSectionIndex : sectionIndex;
-
- allTags.add(tag);
desc->mTagToNameMap.add(tag, tagName);
- desc->mTagToSectionMap.add(tag, sectionIndex);
+ desc->mTagToSectionMap.add(tag, sectionName);
desc->mTagToTypeMap.add(tag, tagType);
}
@@ -206,42 +165,6 @@ status_t VendorTagDescriptor::createFromParcel(const Parcel* parcel,
return res;
}
- size_t sectionCount;
- if (tagCount > 0) {
- if ((res = parcel->readInt32(reinterpret_cast<int32_t*>(&sectionCount))) != OK) {
- ALOGE("%s: could not read section count for.", __FUNCTION__);
- return res;
- }
- if (sectionCount < (maxSectionIndex + 1)) {
- ALOGE("%s: Incorrect number of sections defined, received %d, needs %d.",
- __FUNCTION__, sectionCount, (maxSectionIndex + 1));
- return BAD_VALUE;
- }
- assert(desc->mSections.setCapacity(sectionCount) > 0);
- for (size_t i = 0; i < sectionCount; ++i) {
- String8 sectionName = parcel->readString8();
- if (sectionName.isEmpty()) {
- ALOGE("%s: parcel section name was NULL for section %d.", __FUNCTION__, i);
- return NOT_ENOUGH_DATA;
- }
- desc->mSections.add(sectionName);
- }
- }
-
- assert(tagCount == allTags.size());
- // Set up reverse mapping
- for (size_t i = 0; i < static_cast<size_t>(tagCount); ++i) {
- uint32_t tag = allTags[i];
- String8 sectionString = desc->mSections[desc->mTagToSectionMap.valueFor(tag)];
-
- ssize_t reverseIndex = -1;
- if ((reverseIndex = desc->mReverseMapping.indexOfKey(sectionString)) < 0) {
- KeyedVector<String8, uint32_t>* nameMapper = new KeyedVector<String8, uint32_t>();
- reverseIndex = desc->mReverseMapping.add(sectionString, nameMapper);
- }
- desc->mReverseMapping[reverseIndex]->add(desc->mTagToNameMap[tag], tag);
- }
-
descriptor = desc;
return res;
}
@@ -266,7 +189,7 @@ const char* VendorTagDescriptor::getSectionName(uint32_t tag) const {
if (index < 0) {
return VENDOR_SECTION_NAME_ERR;
}
- return mSections[mTagToSectionMap.valueAt(index)].string();
+ return mTagToSectionMap.valueAt(index).string();
}
const char* VendorTagDescriptor::getTagName(uint32_t tag) const {
@@ -297,83 +220,22 @@ status_t VendorTagDescriptor::writeToParcel(Parcel* parcel) const {
}
size_t size = mTagToNameMap.size();
- uint32_t tag, sectionIndex;
+ uint32_t tag;
int32_t tagType;
for (size_t i = 0; i < size; ++i) {
tag = mTagToNameMap.keyAt(i);
String8 tagName = mTagToNameMap[i];
- sectionIndex = mTagToSectionMap.valueFor(tag);
+ String8 sectionName = mTagToSectionMap.valueFor(tag);
tagType = mTagToTypeMap.valueFor(tag);
if ((res = parcel->writeInt32(tag)) != OK) break;
if ((res = parcel->writeInt32(tagType)) != OK) break;
if ((res = parcel->writeString8(tagName)) != OK) break;
- if ((res = parcel->writeInt32(sectionIndex)) != OK) break;
- }
-
- size_t numSections = mSections.size();
- if (numSections > 0) {
- if ((res = parcel->writeInt32(numSections)) != OK) return res;
- for (size_t i = 0; i < numSections; ++i) {
- if ((res = parcel->writeString8(mSections[i])) != OK) return res;
- }
+ if ((res = parcel->writeString8(sectionName)) != OK) break;
}
return res;
}
-SortedVector<String8> VendorTagDescriptor::getAllSectionNames() const {
- return mSections;
-}
-
-status_t VendorTagDescriptor::lookupTag(String8 name, String8 section, /*out*/uint32_t* tag) const {
- ssize_t index = mReverseMapping.indexOfKey(section);
- if (index < 0) {
- ALOGE("%s: Section '%s' does not exist.", __FUNCTION__, section.string());
- return BAD_VALUE;
- }
-
- ssize_t nameIndex = mReverseMapping[index]->indexOfKey(name);
- if (nameIndex < 0) {
- ALOGE("%s: Tag name '%s' does not exist.", __FUNCTION__, name.string());
- return BAD_VALUE;
- }
-
- if (tag != NULL) {
- *tag = mReverseMapping[index]->valueAt(nameIndex);
- }
- return OK;
-}
-
-void VendorTagDescriptor::dump(int fd, int verbosity, int indentation) const {
-
- size_t size = mTagToNameMap.size();
- if (size == 0) {
- fdprintf(fd, "%*sDumping configured vendor tag descriptors: None set\n",
- indentation, "");
- return;
- }
-
- fdprintf(fd, "%*sDumping configured vendor tag descriptors: %zu entries\n",
- indentation, "", size);
- for (size_t i = 0; i < size; ++i) {
- uint32_t tag = mTagToNameMap.keyAt(i);
-
- if (verbosity < 1) {
- fdprintf(fd, "%*s0x%x\n", indentation + 2, "", tag);
- continue;
- }
- String8 name = mTagToNameMap.valueAt(i);
- uint32_t sectionId = mTagToSectionMap.valueFor(tag);
- String8 sectionName = mSections[sectionId];
- int type = mTagToTypeMap.valueFor(tag);
- const char* typeName = (type >= 0 && type < NUM_TYPES) ?
- camera_metadata_type_names[type] : "UNKNOWN";
- fdprintf(fd, "%*s0x%x (%s) with type %d (%s) defined in section %s\n", indentation + 2,
- "", tag, name.string(), type, typeName, sectionName.string());
- }
-
-}
-
status_t VendorTagDescriptor::setAsGlobalVendorTagDescriptor(const sp<VendorTagDescriptor>& desc) {
status_t res = OK;
Mutex::Autolock al(sLock);