diff options
author | Igor Murashkin <iam@google.com> | 2014-04-22 15:05:50 -0700 |
---|---|---|
committer | Igor Murashkin <iam@google.com> | 2014-05-13 15:28:24 -0700 |
commit | 3c40a046cf0ea7b6af01ec93e5276eccb3234bfe (patch) | |
tree | b78afeb203d25c370995da98601eca721fbcd7e6 /core/jni/android_hardware_camera2_CameraMetadata.cpp | |
parent | bee74c2b479153bb6a4b9e03f068658042a5fdfc (diff) | |
download | frameworks_base-3c40a046cf0ea7b6af01ec93e5276eccb3234bfe.zip frameworks_base-3c40a046cf0ea7b6af01ec93e5276eccb3234bfe.tar.gz frameworks_base-3c40a046cf0ea7b6af01ec93e5276eccb3234bfe.tar.bz2 |
camera2: Update native<->managed camera metadata marshalers
* Improve existing marshalers:
- each managed/native type combination can be queried marshal support
- marshalers can recursively call other marshalers for nested types
- support marshaling/unmarshaling generic classes by using super type tokens
* Add new marshalers for:
- ColorSpaceTransform
- MeteringRectangle
- Parcelable
- Range<T>
- ReprocessFormatsMap
- RggbChannelVector
- SizeF
- StreamConfiguration
- StreamConfigurationDuration
Batteries included; so are unit tests.
Bug: 14628001
Change-Id: I38d3e646ccfb3953898cd6f750c33e4097328482
Diffstat (limited to 'core/jni/android_hardware_camera2_CameraMetadata.cpp')
-rw-r--r-- | core/jni/android_hardware_camera2_CameraMetadata.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/core/jni/android_hardware_camera2_CameraMetadata.cpp b/core/jni/android_hardware_camera2_CameraMetadata.cpp index 05a99a3..fa2cfe3 100644 --- a/core/jni/android_hardware_camera2_CameraMetadata.cpp +++ b/core/jni/android_hardware_camera2_CameraMetadata.cpp @@ -489,8 +489,13 @@ static jint CameraMetadata_getTagFromKey(JNIEnv *env, jobject thiz, jstring keyN sp<VendorTagDescriptor> vTags = VendorTagDescriptor::getGlobalVendorTagDescriptor(); - SortedVector<String8> vendorSections = vTags->getAllSectionNames(); - size_t vendorSectionCount = vendorSections.size(); + SortedVector<String8> vendorSections; + size_t vendorSectionCount = 0; + + if (vTags != 0) { + vendorSections = vTags->getAllSectionNames(); + vendorSectionCount = vendorSections.size(); + } // First, find the section by the longest string match const char *section = NULL; @@ -561,7 +566,7 @@ static jint CameraMetadata_getTagFromKey(JNIEnv *env, jobject thiz, jstring keyN "Could not find tag name for key '%s')", key); return 0; } - } else { + } else if (vTags != 0) { // Match vendor tags (typically com.*) const String8 sectionName(section); const String8 tagName(keyTagName); |