camera2: Add noiseModel when saving DNG tag.
Bug: 16369384
Change-Id: I3c84dd3e5f3279bcfe56637b23f37c3b6984774d
diff --git a/core/jni/android_hardware_camera2_DngCreator.cpp b/core/jni/android_hardware_camera2_DngCreator.cpp
index 3a3328f..eaadfb2 100644
--- a/core/jni/android_hardware_camera2_DngCreator.cpp
+++ b/core/jni/android_hardware_camera2_DngCreator.cpp
@@ -1173,8 +1173,8 @@
calibrationTransform1[ctr++] = entry1.data.r[i].denominator;
}
- BAIL_IF_INVALID(writer->addEntry(TAG_CAMERACALIBRATION1, entry1.count, calibrationTransform1,
- TIFF_IFD_0), env, TAG_CAMERACALIBRATION1, writer);
+ BAIL_IF_INVALID(writer->addEntry(TAG_CAMERACALIBRATION1, entry1.count,
+ calibrationTransform1, TIFF_IFD_0), env, TAG_CAMERACALIBRATION1, writer);
if (!singleIlluminant) {
camera_metadata_entry entry2 =
@@ -1188,8 +1188,8 @@
calibrationTransform2[ctr++] = entry2.data.r[i].denominator;
}
- BAIL_IF_INVALID(writer->addEntry(TAG_CAMERACALIBRATION2, entry2.count, calibrationTransform1,
- TIFF_IFD_0), env, TAG_CAMERACALIBRATION2, writer);
+ BAIL_IF_INVALID(writer->addEntry(TAG_CAMERACALIBRATION2, entry2.count,
+ calibrationTransform1, TIFF_IFD_0), env, TAG_CAMERACALIBRATION2, writer);
}
}
@@ -1294,6 +1294,21 @@
}
{
+ // Setup sensor noise model
+ camera_metadata_entry entry =
+ results.find(ANDROID_SENSOR_NOISE_PROFILE);
+
+ if (entry.count > 0) {
+ BAIL_IF_INVALID(writer->addEntry(TAG_NOISEPROFILE, entry.count,
+ entry.data.d, TIFF_IFD_0), env,
+ TAG_NOISEPROFILE, writer);
+ } else {
+ ALOGW("%s: No noise profile found in result metadata. Image quality may be reduced.",
+ __FUNCTION__);
+ }
+ }
+
+ {
// Setup opcode List 2
camera_metadata_entry entry1 =
characteristics.find(ANDROID_LENS_INFO_SHADING_MAP_SIZE);