DngCreator: Avoid moving absent tag entries
Tags 'TAG_OPCODELIST2' and 'TAG_OPCODELIST3' could be
absent from the main image IFD. Check for their presence
first before moving in the thumbnail sub IFD.
Bug: 112526551
Test: Camera CTS
Change-Id: I7039a533777ca95524d4c7d586ca4b40739cd2e5
diff --git a/core/jni/android_hardware_camera2_DngCreator.cpp b/core/jni/android_hardware_camera2_DngCreator.cpp
index b1bb555..c977437 100644
--- a/core/jni/android_hardware_camera2_DngCreator.cpp
+++ b/core/jni/android_hardware_camera2_DngCreator.cpp
@@ -1971,8 +1971,14 @@
tagsToMove.add(TAG_DEFAULTSCALE);
tagsToMove.add(TAG_DEFAULTCROPORIGIN);
tagsToMove.add(TAG_DEFAULTCROPSIZE);
- tagsToMove.add(TAG_OPCODELIST2);
- tagsToMove.add(TAG_OPCODELIST3);
+
+ if (nullptr != writer->getEntry(TAG_OPCODELIST2, TIFF_IFD_0).get()) {
+ tagsToMove.add(TAG_OPCODELIST2);
+ }
+
+ if (nullptr != writer->getEntry(TAG_OPCODELIST3, TIFF_IFD_0).get()) {
+ tagsToMove.add(TAG_OPCODELIST3);
+ }
if (moveEntries(writer, TIFF_IFD_0, TIFF_IFD_SUB1, tagsToMove) != OK) {
jniThrowException(env, "java/lang/IllegalStateException", "Failed to move entries");