summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/imageprocessor/ZSLQueue.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/imageprocessor/ZSLQueue.java')
-rwxr-xr-x[-rw-r--r--]src/com/android/camera/imageprocessor/ZSLQueue.java24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/com/android/camera/imageprocessor/ZSLQueue.java b/src/com/android/camera/imageprocessor/ZSLQueue.java
index f50858a35..b9dea4e51 100644..100755
--- a/src/com/android/camera/imageprocessor/ZSLQueue.java
+++ b/src/com/android/camera/imageprocessor/ZSLQueue.java
@@ -87,7 +87,7 @@ public class ZSLQueue {
return -1;
}
- public void add(Image image) {
+ public void add(Image image, Image rawImage) {
int lastIndex = -1;
synchronized (mLock) {
if(mBuffer == null)
@@ -99,7 +99,7 @@ public class ZSLQueue {
}
if(mBuffer[mImageHead].getMetadata() != null) {
if((mBuffer[mImageHead].getMetadata().get(CaptureResult.SENSOR_TIMESTAMP)).longValue() == image.getTimestamp()) {
- mBuffer[mImageHead].setImage(image);
+ mBuffer[mImageHead].setImage(image,rawImage);
lastIndex = mImageHead;
mImageHead = (mImageHead + 1) % mBuffer.length;
} else if((mBuffer[mImageHead].getMetadata().get(CaptureResult.SENSOR_TIMESTAMP)).longValue() > image.getTimestamp()) {
@@ -107,17 +107,17 @@ public class ZSLQueue {
} else {
int i = findMeta(image.getTimestamp(), mImageHead);
if(i == -1) {
- mBuffer[mImageHead].setImage(image);
+ mBuffer[mImageHead].setImage(image, rawImage);
mBuffer[mImageHead].setMetadata(null);
mImageHead = (mImageHead + 1) % mBuffer.length;
} else {
lastIndex = mImageHead = i;
- mBuffer[mImageHead].setImage(image);
+ mBuffer[mImageHead].setImage(image, rawImage);
mImageHead = (mImageHead + 1) % mBuffer.length;
}
}
} else {
- mBuffer[mImageHead].setImage(image);
+ mBuffer[mImageHead].setImage(image, rawImage);
lastIndex = mImageHead;
mImageHead = (mImageHead + 1) % mBuffer.length;
}
@@ -156,7 +156,7 @@ public class ZSLQueue {
} else {
int i = findImage(timestamp, mMetaHead);
if(i == -1) {
- mBuffer[mMetaHead].setImage(null);
+ mBuffer[mMetaHead].setImage(null, null);
mBuffer[mMetaHead].setMetadata(metadata);
mMetaHead = (mMetaHead + 1) % mBuffer.length;
} else {
@@ -238,17 +238,24 @@ public class ZSLQueue {
static class ImageItem {
private Image mImage = null;
+ private Image mRawImage = null;
private TotalCaptureResult mMetadata = null;
public Image getImage() {
return mImage;
}
- public void setImage(Image image) {
+ public Image getRawImage() {return mRawImage;}
+
+ public void setImage(Image image, Image rawImage) {
if(mImage != null) {
mImage.close();
}
+ if(mRawImage != null) {
+ mRawImage.close();
+ }
mImage = image;
+ mRawImage =rawImage;
}
public TotalCaptureResult getMetadata() {
@@ -263,6 +270,9 @@ public class ZSLQueue {
if(mImage != null) {
mImage.close();
}
+ if(mRawImage != null) {
+ mRawImage.close();
+ }
mImage = null;
}