diff options
| author | 2016-03-10 04:26:51 +0000 | |
|---|---|---|
| committer | 2016-03-10 04:26:52 +0000 | |
| commit | e834dd78d4bcc7667429236d37f7b875c23c640c (patch) | |
| tree | 469efdfb4cdcff6c8ac5038768cb2615ce24b977 | |
| parent | cf4c7f58b068ec1021dcd1dd7b52167ecb2247d0 (diff) | |
| parent | ad76dc2e6286ffdfa5eca6bfac67e574cbecd04e (diff) | |
Merge "ExifInterface: fix a bug in readExifEntryValue" into nyc-dev
| -rw-r--r-- | media/java/android/media/ExifInterface.java | 2 | ||||
| -rw-r--r-- | media/tests/MediaFrameworkTest/assets/volantis.jpg | bin | 0 -> 304645 bytes | |||
| -rw-r--r-- | media/tests/MediaFrameworkTest/res/raw/volantis.jpg | bin | 0 -> 304645 bytes | |||
| -rw-r--r-- | media/tests/MediaFrameworkTest/res/values/exifinterface.xml | 30 | ||||
| -rw-r--r-- | media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/ExifInterfaceTest.java | 13 |
5 files changed, 40 insertions, 5 deletions
diff --git a/media/java/android/media/ExifInterface.java b/media/java/android/media/ExifInterface.java index 3fa078f51ac7..dff466f17cfb 100644 --- a/media/java/android/media/ExifInterface.java +++ b/media/java/android/media/ExifInterface.java @@ -1560,8 +1560,6 @@ public class ExifInterface { StringBuilder stringBuilder = new StringBuilder(); while (true) { int ch = bytes[index]; - if (ch < 0) - throw new EOFException(); if (ch == 0) break; if (ch >= 32) diff --git a/media/tests/MediaFrameworkTest/assets/volantis.jpg b/media/tests/MediaFrameworkTest/assets/volantis.jpg Binary files differnew file mode 100644 index 000000000000..cfe300f4eafc --- /dev/null +++ b/media/tests/MediaFrameworkTest/assets/volantis.jpg diff --git a/media/tests/MediaFrameworkTest/res/raw/volantis.jpg b/media/tests/MediaFrameworkTest/res/raw/volantis.jpg Binary files differnew file mode 100644 index 000000000000..cfe300f4eafc --- /dev/null +++ b/media/tests/MediaFrameworkTest/res/raw/volantis.jpg diff --git a/media/tests/MediaFrameworkTest/res/values/exifinterface.xml b/media/tests/MediaFrameworkTest/res/values/exifinterface.xml index eb13ff37632b..d556ad33c04a 100644 --- a/media/tests/MediaFrameworkTest/res/values/exifinterface.xml +++ b/media/tests/MediaFrameworkTest/res/values/exifinterface.xml @@ -105,4 +105,34 @@ <item>1</item> <item /> </array> + <array name="volantis_jpg"> + <item>false</item> + <item>0</item> + <item>0</item> + <item>true</item> + <item>37.423</item> + <item>-122.162</item> + <item>0.0</item> + <item>htc</item> + <item>Nexus 9</item> + <item>1.2904</item> + <item>2016:03:09 17:36:42</item> + <item>0.0083</item> + <item>64</item> + <item>3097/1000</item> + <item /> + <item /> + <item>2016:03:09</item> + <item>37/1,25/1,2291/100</item> + <item>N</item> + <item>122/1,9/1,4330/100</item> + <item>W</item> + <item /> + <item>08:35:34</item> + <item>720</item> + <item>1280</item> + <item>175</item> + <item>1</item> + <item>0</item> + </array> </resources> diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/ExifInterfaceTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/ExifInterfaceTest.java index cff18cf6da0f..5bd607922c81 100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/ExifInterfaceTest.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/ExifInterfaceTest.java @@ -51,10 +51,12 @@ public class ExifInterfaceTest extends AndroidTestCase { private static final String EXIF_BYTE_ORDER_II_JPEG = "image_exif_byte_order_ii.jpg"; private static final String EXIF_BYTE_ORDER_MM_JPEG = "image_exif_byte_order_mm.jpg"; private static final String LG_G4_ISO_800_DNG = "lg_g4_iso_800.dng"; + private static final String VOLANTIS_JPEG = "volantis.jpg"; private static final int[] IMAGE_RESOURCES = new int[] { - R.raw.image_exif_byte_order_ii, R.raw.image_exif_byte_order_mm, R.raw.lg_g4_iso_800 }; + R.raw.image_exif_byte_order_ii, R.raw.image_exif_byte_order_mm, R.raw.lg_g4_iso_800, + R.raw.volantis }; private static final String[] IMAGE_FILENAMES = new String[] { - EXIF_BYTE_ORDER_II_JPEG, EXIF_BYTE_ORDER_MM_JPEG, LG_G4_ISO_800_DNG }; + EXIF_BYTE_ORDER_II_JPEG, EXIF_BYTE_ORDER_MM_JPEG, LG_G4_ISO_800_DNG, VOLANTIS_JPEG }; private static final String[] EXIF_TAGS = { ExifInterface.TAG_MAKE, @@ -415,7 +417,7 @@ public class ExifInterfaceTest extends AndroidTestCase { testExifInterfaceForRaw(LG_G4_ISO_800_DNG, R.array.lg_g4_iso_800_dng); } - public void testCorruptedImage() { + public void testCorruptedImage() throws Throwable { byte[] bytes = new byte[1024]; try { new ExifInterface(new ByteArrayInputStream(bytes)); @@ -424,4 +426,9 @@ public class ExifInterfaceTest extends AndroidTestCase { // Success } } + + public void testReadExifDataFromVolantisJpg() throws Throwable { + // Test if it is possible to parse the volantis generated JPEG smoothly. + testExifInterfaceForJpeg(VOLANTIS_JPEG, R.array.volantis_jpg); + } } |