Update PIEX

* Adjust the max thumbnail size to 512 pixel
* Reads the correct full dimensions for DNGs which are stored in DefaultCropSize of the main image

Cherry-pick of be908191d0a6883a95333bdc0bca749c9b830969 from public AOSP

This change should fix the issue of Skia getPixels() / getAndroidPixels()
It is already tested and used by the up-stream Skia since http://crrev.com/1883783002

Bug: 28162811, Bug: 28119810
Change-Id: I78caa62eb79ae0b6c8cf718a2ba82c0b6bde9f27
diff --git a/src/tiff_parser.cc b/src/tiff_parser.cc
index 697e320..00bb944 100644
--- a/src/tiff_parser.cc
+++ b/src/tiff_parser.cc
@@ -556,7 +556,22 @@
     }
   }
 
-  if (tiff_directory.Has(kExifTagWidth) && tiff_directory.Has(kExifTagHeight)) {
+  if (tiff_directory.Has(kExifTagDefaultCropSize)) {
+    std::vector<std::uint32_t> crop(2);
+    std::vector<Rational> crop_rational(2);
+    if (tiff_directory.Get(kExifTagDefaultCropSize, &crop)) {
+      *width = crop[0];
+      *height = crop[1];
+    } else if (tiff_directory.Get(kExifTagDefaultCropSize, &crop_rational) &&
+               crop_rational[0].denominator != 0 &&
+               crop_rational[1].denominator != 0) {
+      *width = crop_rational[0].numerator / crop_rational[0].denominator;
+      *height = crop_rational[1].numerator / crop_rational[1].denominator;
+    } else {
+      return false;
+    }
+  } else if (tiff_directory.Has(kExifTagWidth) &&
+             tiff_directory.Has(kExifTagHeight)) {
     if (!tiff_directory.Get(kExifTagWidth, width) ||
         !tiff_directory.Get(kExifTagHeight, height)) {
       return false;
@@ -585,20 +600,6 @@
     } else {
       return false;
     }
-  } else if (tiff_directory.Has(kExifTagDefaultCropSize)) {
-    std::vector<std::uint32_t> crop(2);
-    std::vector<Rational> crop_rational(2);
-    if (tiff_directory.Get(kExifTagDefaultCropSize, &crop)) {
-      *width = crop[0];
-      *height = crop[1];
-    } else if (tiff_directory.Get(kExifTagDefaultCropSize, &crop_rational) &&
-               crop_rational[0].denominator != 0 &&
-               crop_rational[1].denominator != 0) {
-      *width = crop_rational[0].numerator / crop_rational[0].denominator;
-      *height = crop_rational[1].numerator / crop_rational[1].denominator;
-    } else {
-      return false;
-    }
   }
   return true;
 }
diff --git a/src/tiff_parser.h b/src/tiff_parser.h
index a19b71e..3cb9d7e 100644
--- a/src/tiff_parser.h
+++ b/src/tiff_parser.h
@@ -28,7 +28,7 @@
 namespace piex {
 
 // Specifies the maximum number of pixels for thumbnails in each direction.
-const int kThumbnailMaxDimension = 256;
+const int kThumbnailMaxDimension = 512;
 
 // Specifies all tags that might be of interest to get the preview data.
 enum GpsTags {