diff options
Diffstat (limited to 'src/org/codeaurora/snapcam/filter')
-rw-r--r-- | src/org/codeaurora/snapcam/filter/ClearSightImageProcessor.java | 5 | ||||
-rw-r--r-- | src/org/codeaurora/snapcam/filter/ClearSightNativeEngine.java | 27 |
2 files changed, 26 insertions, 6 deletions
diff --git a/src/org/codeaurora/snapcam/filter/ClearSightImageProcessor.java b/src/org/codeaurora/snapcam/filter/ClearSightImageProcessor.java index b2a81389d..f26caf717 100644 --- a/src/org/codeaurora/snapcam/filter/ClearSightImageProcessor.java +++ b/src/org/codeaurora/snapcam/filter/ClearSightImageProcessor.java @@ -1543,11 +1543,14 @@ public class ClearSightImageProcessor { ByteBuffer vuBuffer = planes[2].getBuffer(); int sizeY = yBuffer.capacity(); int sizeVU = vuBuffer.capacity(); - byte[] data = new byte[sizeY + sizeVU]; + int stride = image.getPlanes()[0].getRowStride(); + int height = image.getHeight(); + byte[] data = new byte[stride * height*3/2]; yBuffer.rewind(); yBuffer.get(data, 0, sizeY); vuBuffer.rewind(); vuBuffer.get(data, sizeY, sizeVU); + int[] strides = new int[] { planes[0].getRowStride(), planes[2].getRowStride() }; diff --git a/src/org/codeaurora/snapcam/filter/ClearSightNativeEngine.java b/src/org/codeaurora/snapcam/filter/ClearSightNativeEngine.java index 8b30ca032..5ba0fd951 100644 --- a/src/org/codeaurora/snapcam/filter/ClearSightNativeEngine.java +++ b/src/org/codeaurora/snapcam/filter/ClearSightNativeEngine.java @@ -41,8 +41,12 @@ import android.media.Image; import android.media.Image.Plane; import android.util.Log; +import com.android.camera.util.PersistUtil; + public class ClearSightNativeEngine { - private static final boolean DEBUG = false; + private static final boolean DEBUG = + (PersistUtil.getCamera2Debug() == PersistUtil.CAMERA2_DEBUG_DUMP_LOG) || + (PersistUtil.getCamera2Debug() == PersistUtil.CAMERA2_DEBUG_DUMP_ALL); private static final String TAG = "ClearSightNativeEngine"; static { try { @@ -75,8 +79,14 @@ public class ClearSightNativeEngine { private ArrayList<SourceImage> mCache = new ArrayList<SourceImage>(); private ArrayList<SourceImage> mSrcColor = new ArrayList<SourceImage>(); private ArrayList<SourceImage> mSrcMono = new ArrayList<SourceImage>(); + private final float mBrIntensity; + private final float mSmoothingIntensity; + private final boolean mIsVerticallyAlignedSensor; private ClearSightNativeEngine() { + mBrIntensity = PersistUtil.getDualCameraBrIntensity(); + mSmoothingIntensity = PersistUtil.getDualCameraSmoothingIntensity(); + mIsVerticallyAlignedSensor = PersistUtil.getDualCameraSensorAlign(); } public static void createInstance() { @@ -296,10 +306,16 @@ public class ClearSightNativeEngine { exposure /= 100000; Log.d(TAG, "processImage - iso: " + iso + " exposure ms: " + exposure); - return nativeClearSightProcessInit(numImages, + if (DEBUG) { + Log.d(TAG,"processImage - mBrIntensity :" + mBrIntensity + + ", mSmoothingIntensity :" + mSmoothingIntensity + + ", mIsVerticallyAlignedSensor :" + mIsVerticallyAlignedSensor); + } + return nativeClearSightProcessInit2(numImages, srcColorY, srcColorVU, metadataColor, mImageWidth, mImageHeight, mYStride, mVUStride, srcMonoY, metadataMono, mImageWidth, mImageHeight, - mYStride, mOtpCalibData, (int)exposure, iso); + mYStride, mOtpCalibData, (int)exposure, iso, + mBrIntensity, mSmoothingIntensity, mIsVerticallyAlignedSensor); } public boolean processImage(ClearsightImage csImage) { @@ -326,12 +342,13 @@ public class ClearSightNativeEngine { int strideY, int strideVU, ByteBuffer dstY, ByteBuffer dstVU, float[] metadata); - private native final boolean nativeClearSightProcessInit(int numImagePairs, + private native final boolean nativeClearSightProcessInit2(int numImagePairs, ByteBuffer[] srcColorY, ByteBuffer[] srcColorVU, float[][] metadataColor, int srcColorWidth, int srcColorHeight, int srcColorStrideY, int srcColorStrideVU, ByteBuffer[] srcMonoY, float[][] metadataMono, int srcMonoWidth, int srcMonoHeight, - int srcMonoStrideY, byte[] otp, int exposureMs, int iso); + int srcMonoStrideY, byte[] otp, int exposureMs, int iso, + float brIntensity, float smoothingIntensity, boolean isVerticallyAlignedSensor); private native final boolean nativeClearSightProcess(ByteBuffer dstY, ByteBuffer dstVU, int dstStrideY, int dstStrideVU, int[] roiRect); |