From a7503b901490feb476a98eb4b6e138c4a43039bc Mon Sep 17 00:00:00 2001 From: Emilian Peev Date: Mon, 13 Aug 2018 12:46:05 +0100 Subject: [PATCH] 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 --- core/jni/android_hardware_camera2_DngCreator.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/core/jni/android_hardware_camera2_DngCreator.cpp b/core/jni/android_hardware_camera2_DngCreator.cpp index b1bb55516d34b..c977437f7df27 100644 --- a/core/jni/android_hardware_camera2_DngCreator.cpp +++ b/core/jni/android_hardware_camera2_DngCreator.cpp @@ -1971,8 +1971,14 @@ static sp DngCreator_setup(JNIEnv* env, jobject thiz, uint32_t image 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");