summaryrefslogtreecommitdiffstats
path: root/src/org/codeaurora
diff options
context:
space:
mode:
authorJay Wang <jaywang@codeaurora.org>2016-05-25 13:00:19 -0700
committerSteve Kondik <steve@cyngn.com>2016-08-21 18:45:51 -0700
commit95a06e0ac119e1e8523db160ddf9666b9c3d8d9b (patch)
tree56947e966e52d402c94bc3f4faf1134b21d43053 /src/org/codeaurora
parentf3db9356da2a5cdb8372e186c597c83c52d421e6 (diff)
downloadandroid_packages_apps_Snap-95a06e0ac119e1e8523db160ddf9666b9c3d8d9b.zip
android_packages_apps_Snap-95a06e0ac119e1e8523db160ddf9666b9c3d8d9b.tar.gz
android_packages_apps_Snap-95a06e0ac119e1e8523db160ddf9666b9c3d8d9b.tar.bz2
SnapdragonCamera: Change file naming convention
Change logic to generate common file name to be used for all dumped frames. Decouple YUV and JPEG dump set props so that they can be toggled independently. CRs-Fixed: 993611 Change-Id: I3e985e2fe55e116529929e36fb26c3760f47a536
Diffstat (limited to 'src/org/codeaurora')
-rw-r--r--src/org/codeaurora/snapcam/filter/ClearSightImageProcessor.java75
-rw-r--r--src/org/codeaurora/snapcam/filter/ClearSightNativeEngine.java6
2 files changed, 40 insertions, 41 deletions
diff --git a/src/org/codeaurora/snapcam/filter/ClearSightImageProcessor.java b/src/org/codeaurora/snapcam/filter/ClearSightImageProcessor.java
index c337263..bafbbb8 100644
--- a/src/org/codeaurora/snapcam/filter/ClearSightImageProcessor.java
+++ b/src/org/codeaurora/snapcam/filter/ClearSightImageProcessor.java
@@ -30,7 +30,6 @@
package org.codeaurora.snapcam.filter;
import java.io.ByteArrayOutputStream;
-import java.io.File;
import java.nio.ByteBuffer;
import java.util.ArrayDeque;
import java.util.ArrayList;
@@ -69,7 +68,6 @@ import com.android.camera.MediaSaveService;
import com.android.camera.MediaSaveService.OnMediaSavedListener;
import com.android.camera.PhotoModule.NamedImages;
import com.android.camera.PhotoModule.NamedImages.NamedEntity;
-import com.android.camera.SDCard;
import com.android.camera.Storage;
public class ClearSightImageProcessor {
@@ -353,6 +351,7 @@ public class ClearSightImageProcessor {
private ArrayDeque<Image> mMonoImages = new ArrayDeque<Image>(
mNumBurstCount);
private ReprocessableImage mClearSightFrame;
+ private NamedEntity mNamedEntity;
private int[] mNumImagesToProcess = new int[NUM_CAM];
private ProcessState mState = ProcessState.IDLE;
@@ -491,6 +490,10 @@ public class ClearSightImageProcessor {
mCallback.onClearSightFailure();
return;
} else {
+ // Generate filename
+ mNamedImages.nameNewImage(System.currentTimeMillis());
+ mNamedEntity = mNamedImages.getNextNameEntity();
+
int frameCount = Math.min(mMonoFrames.size(), mBayerFrames.size());
sendReprocessRequests(CAM_TYPE_BAYER, frameCount);
sendReprocessRequests(CAM_TYPE_MONO, frameCount);
@@ -587,10 +590,12 @@ public class ClearSightImageProcessor {
Log.d(TAG, "reprocess - processNewImg");
if(mDumpImages) {
- saveDebugImageAsJpeg(mMediaSaveService, image, isBayer);
- if(mDumpYUV) {
- saveDebugImageAsNV21(image, isBayer);
- }
+ saveDebugImageAsJpeg(mMediaSaveService, image, isBayer, mNamedEntity,
+ ClearSightNativeEngine.getInstance().getImageCount(isBayer));
+ }
+ if(mDumpYUV) {
+ saveDebugImageAsNV21(image, isBayer, mNamedEntity,
+ ClearSightNativeEngine.getInstance().getImageCount(isBayer));
}
if (!ClearSightNativeEngine.getInstance()
@@ -664,11 +669,12 @@ public class ClearSightImageProcessor {
ClearSightNativeEngine.getInstance().reset();
mClearSightFrame = null;
mState = ProcessState.IDLE;
+ mNamedEntity = null;
}
private void sendEncodeRequests() {
mImageEncodeHandler.obtainMessage(
- MSG_START_CAPTURE, (mClearSightFrame != null)?1:0, 0).sendToTarget();
+ MSG_START_CAPTURE, (mClearSightFrame != null)?1:0, 0, mNamedEntity).sendToTarget();
// First Mono
CameraCaptureSession session = mCaptureSessions[CAM_TYPE_MONO];
@@ -745,6 +751,7 @@ public class ClearSightImageProcessor {
private Image mMonoImage;
private Image mBayerImage;
private Image mClearSightImage;
+ private NamedEntity mNamedEntity;
public ImageEncodeHandler(Looper looper) {
super(looper);
@@ -755,6 +762,7 @@ public class ClearSightImageProcessor {
switch (msg.what) {
case MSG_START_CAPTURE:
mClearsightEncode = (msg.arg1 == 1);
+ mNamedEntity = (NamedEntity) msg.obj;
break;
case MSG_NEW_IMG:
case MSG_NEW_RESULT:
@@ -786,10 +794,8 @@ public class ClearSightImageProcessor {
}
private void saveMpoImage() {
- mNamedImages.nameNewImage(System.currentTimeMillis());
- NamedEntity name = mNamedImages.getNextNameEntity();
- String title = (name == null) ? null : name.title;
- long date = (name == null) ? -1 : name.date;
+ String title = (mNamedEntity == null) ? null : mNamedEntity.title;
+ long date = (mNamedEntity == null) ? -1 : mNamedEntity.date;
int width = mBayerImage.getWidth();
int height = mBayerImage.getHeight();
@@ -813,63 +819,52 @@ public class ClearSightImageProcessor {
mClearSightImage.close();
mClearSightImage = null;
}
+ mNamedEntity = null;
}
}
public void saveDebugImageAsJpeg(MediaSaveService service, byte[] data,
- int width, int height, boolean isBayer) {
- mNamedImages.nameNewImage(System.currentTimeMillis());
- NamedEntity name = mNamedImages.getNextNameEntity();
- String title = (name == null) ? null : name.title;
- long date = (name == null) ? -1 : name.date;
-
- if (isBayer) {
- title += "_bayer";
- } else {
- title += "_mono";
- }
+ int width, int height, boolean isBayer, NamedEntity namedEntity, int count) {
+ String type = isBayer?"bayer":"mono";
+ long date = (namedEntity == null) ? -1 : namedEntity.date;
+ String title = String.format("%s_%s_%02d", namedEntity.title, type, count);
service.addImage(data, title, date, null,
width, height, 0, null, null,
service.getContentResolver(), "jpeg");
}
- public void saveDebugImageAsJpeg(MediaSaveService service, YuvImage image, boolean isBayer) {
+ public void saveDebugImageAsJpeg(MediaSaveService service, YuvImage image, boolean isBayer,
+ NamedEntity namedEntity, int count) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
image.compressToJpeg(
new Rect(0, 0, image.getWidth(), image.getHeight()), 100, baos);
saveDebugImageAsJpeg(service, baos.toByteArray(), image.getWidth(), image.getHeight(),
- isBayer);
+ isBayer, namedEntity, count);
}
- public void saveDebugImageAsJpeg(MediaSaveService service, Image image, boolean isBayer) {
+ public void saveDebugImageAsJpeg(MediaSaveService service, Image image, boolean isBayer,
+ NamedEntity namedEntity, int count) {
if(image.getFormat() == ImageFormat.YUV_420_888)
- saveDebugImageAsJpeg(service, createYuvImage(image), isBayer);
+ saveDebugImageAsJpeg(service, createYuvImage(image), isBayer, namedEntity, count);
else if (image.getFormat() == ImageFormat.JPEG) {
- saveDebugImageAsJpeg(service, getJpegData(image), image.getWidth(), image.getHeight(), isBayer);
+ saveDebugImageAsJpeg(service, getJpegData(image), image.getWidth(), image.getHeight(),
+ isBayer, namedEntity, count);
}
}
- public void saveDebugImageAsNV21(Image image, boolean isBayer) {
+ public void saveDebugImageAsNV21(Image image, boolean isBayer, NamedEntity namedEntity, int count) {
if(image.getFormat() != ImageFormat.YUV_420_888) {
Log.d(TAG, "saveDebugImageAsNV21 - invalid param");
}
- mNamedImages.nameNewImage(System.currentTimeMillis());
- NamedEntity name = mNamedImages.getNextNameEntity();
- StringBuilder pathSB = (name == null) ? new StringBuilder() : new StringBuilder(name.title);
- pathSB.append("_" + image.getWidth() + "x" + image.getHeight());
- pathSB.append("_NV21");
-
- if (isBayer) {
- pathSB.append("_bayer");
- } else {
- pathSB.append("_mono");
- }
+ String type = isBayer?"bayer":"mono";
+ String title = String.format("%s_%dx%d_NV21_%s_%02d", namedEntity.title,
+ image.getWidth(), image.getHeight(), type, count);
YuvImage yuv = createYuvImage(image);
- String path = Storage.generateFilepath(pathSB.toString(), "yuv");
+ String path = Storage.generateFilepath(title, "yuv");
Storage.writeFile(path, yuv.getYuvData(), null, "yuv");
}
diff --git a/src/org/codeaurora/snapcam/filter/ClearSightNativeEngine.java b/src/org/codeaurora/snapcam/filter/ClearSightNativeEngine.java
index 0fc23f1..f2793c8 100644
--- a/src/org/codeaurora/snapcam/filter/ClearSightNativeEngine.java
+++ b/src/org/codeaurora/snapcam/filter/ClearSightNativeEngine.java
@@ -157,7 +157,11 @@ public class ClearSightNativeEngine {
}
public boolean hasReferenceImage(boolean color) {
- return !(color ? mSrcColor.isEmpty() : mSrcMono.isEmpty());
+ return (getImageCount(color) > 0);
+ }
+
+ public int getImageCount(boolean color) {
+ return color ? mSrcColor.size() : mSrcMono.size();
}
public Image getReferenceImage(boolean color) {