summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEarl Ou <shunhsingou@google.com>2012-08-28 18:29:09 +0800
committerEarl Ou <shunhsingou@google.com>2012-08-29 15:11:31 +0800
commitebc26da861cbe7b9725e9c8828730ee4c9d5e3de (patch)
tree6044405d545707f19629439b9fb04f54c1eed46d
parent45d791d5271e7283550140cfaca5b4bdfa0c0d14 (diff)
downloadandroid_packages_apps_Snap-ebc26da861cbe7b9725e9c8828730ee4c9d5e3de.tar.gz
android_packages_apps_Snap-ebc26da861cbe7b9725e9c8828730ee4c9d5e3de.tar.bz2
android_packages_apps_Snap-ebc26da861cbe7b9725e9c8828730ee4c9d5e3de.zip
Save ByteOrder in the ExifData
This is useful for decoding undefined data. Change-Id: Ied6864c4d3a8e05ca47215bf5358bd4196f2d3a0
-rw-r--r--src/com/android/gallery3d/exif/ExifData.java13
-rw-r--r--src/com/android/gallery3d/exif/ExifParser.java7
-rw-r--r--src/com/android/gallery3d/exif/ExifReader.java2
3 files changed, 21 insertions, 1 deletions
diff --git a/src/com/android/gallery3d/exif/ExifData.java b/src/com/android/gallery3d/exif/ExifData.java
index 5b0e3d8e4..14d482221 100644
--- a/src/com/android/gallery3d/exif/ExifData.java
+++ b/src/com/android/gallery3d/exif/ExifData.java
@@ -16,6 +16,7 @@
package com.android.gallery3d.exif;
+import java.nio.ByteOrder;
import java.util.ArrayList;
/**
@@ -28,6 +29,11 @@ public class ExifData {
private final IfdData[] mIfdDatas = new IfdData[IfdId.TYPE_IFD_COUNT];
private byte[] mThumbnail;
private ArrayList<byte[]> mStripBytes = new ArrayList<byte[]>();
+ private final ByteOrder mByteOrder;
+
+ public ExifData(ByteOrder order) {
+ mByteOrder = order;
+ }
/**
* Gets the IFD data of the specified IFD.
@@ -101,4 +107,11 @@ public class ExifData {
public byte[] getStrip(int index) {
return mStripBytes.get(index);
}
+
+ /**
+ * Gets the byte order.
+ */
+ public ByteOrder getByteOrder() {
+ return mByteOrder;
+ }
} \ No newline at end of file
diff --git a/src/com/android/gallery3d/exif/ExifParser.java b/src/com/android/gallery3d/exif/ExifParser.java
index bd8a97dac..268c989b0 100644
--- a/src/com/android/gallery3d/exif/ExifParser.java
+++ b/src/com/android/gallery3d/exif/ExifParser.java
@@ -713,4 +713,11 @@ public class ExifParser {
this.isRequested = isRequireByUser;
}
}
+
+ /**
+ * Gets the byte order of the current InputStream.
+ */
+ public ByteOrder getByteOrder() {
+ return mTiffStream.getByteOrder();
+ }
} \ No newline at end of file
diff --git a/src/com/android/gallery3d/exif/ExifReader.java b/src/com/android/gallery3d/exif/ExifReader.java
index c259461f2..d8083b2dd 100644
--- a/src/com/android/gallery3d/exif/ExifReader.java
+++ b/src/com/android/gallery3d/exif/ExifReader.java
@@ -31,7 +31,7 @@ public class ExifReader {
public ExifData read(InputStream inputStream) throws ExifInvalidFormatException,
IOException {
ExifParser parser = ExifParser.parse(inputStream);
- ExifData exifData = new ExifData();
+ ExifData exifData = new ExifData(parser.getByteOrder());
int event = parser.next();
while (event != ExifParser.EVENT_END) {