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);