summaryrefslogtreecommitdiff
path: root/tests/RenderScriptTests/LivePreview
diff options
context:
space:
mode:
author Jason Sams <jsams@google.com> 2012-07-10 14:18:45 -0700
committer Jason Sams <jsams@google.com> 2012-07-10 14:18:45 -0700
commit702fb2c502ee6bab5cced1835005e0e225533751 (patch)
tree8461420b18fd10f666609246369e0d5a6017ae3a /tests/RenderScriptTests/LivePreview
parent2ff5ff24a79b57a60c0db52bcd02428ea3ef12e6 (diff)
Cleanup filter preview test.
Change-Id: I626a1261affb86499ec398678523b0fe9e5fe679
Diffstat (limited to 'tests/RenderScriptTests/LivePreview')
-rw-r--r--tests/RenderScriptTests/LivePreview/Android.mk2
-rw-r--r--tests/RenderScriptTests/LivePreview/src/com/android/rs/livepreview/CameraPreviewActivity.java56
-rw-r--r--tests/RenderScriptTests/LivePreview/src/com/android/rs/livepreview/yuv.rs29
3 files changed, 44 insertions, 43 deletions
diff --git a/tests/RenderScriptTests/LivePreview/Android.mk b/tests/RenderScriptTests/LivePreview/Android.mk
index be7ab6ec812c..1b45573e9619 100644
--- a/tests/RenderScriptTests/LivePreview/Android.mk
+++ b/tests/RenderScriptTests/LivePreview/Android.mk
@@ -17,7 +17,7 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_TAGS := tests
LOCAL_SRC_FILES := $(call all-java-files-under, src) $(call all-renderscript-files-under, src)
diff --git a/tests/RenderScriptTests/LivePreview/src/com/android/rs/livepreview/CameraPreviewActivity.java b/tests/RenderScriptTests/LivePreview/src/com/android/rs/livepreview/CameraPreviewActivity.java
index bba3b5bbcae9..f21331f76be1 100644
--- a/tests/RenderScriptTests/LivePreview/src/com/android/rs/livepreview/CameraPreviewActivity.java
+++ b/tests/RenderScriptTests/LivePreview/src/com/android/rs/livepreview/CameraPreviewActivity.java
@@ -299,6 +299,38 @@ public class CameraPreviewActivity extends Activity
}
+ private class ProcessPreviewDataTask extends AsyncTask<byte[], Void, Boolean> {
+ protected Boolean doInBackground(byte[]... datas) {
+ byte[] data = datas[0];
+
+ long t1 = java.lang.System.currentTimeMillis();
+
+ mFilterYuv.execute(data);
+ mFilterYuv.copyOut(mCallbackBitmap);
+
+ long t2 = java.lang.System.currentTimeMillis();
+ mTiming[mTimingSlot++] = t2 - t1;
+ if (mTimingSlot >= mTiming.length) {
+ float total = 0;
+ for (int i=0; i<mTiming.length; i++) {
+ total += (float)mTiming[i];
+ }
+ total /= mTiming.length;
+ Log.e(TAG, "time + " + total);
+ mTimingSlot = 0;
+ }
+
+ mCamera.addCallbackBuffer(data);
+ mProcessInProgress = false;
+ return true;
+ }
+
+ protected void onPostExecute(Boolean result) {
+ mFormatView.invalidate();
+ }
+
+ }
+
private long mTiming[] = new long[50];
private int mTimingSlot = 0;
@@ -307,6 +339,9 @@ public class CameraPreviewActivity extends Activity
mCamera.addCallbackBuffer(data);
return;
}
+ if (data == null) {
+ return;
+ }
int expectedBytes = mPreviewSize.width * mPreviewSize.height *
ImageFormat.getBitsPerPixel(ImageFormat.NV21) / 8;
@@ -328,33 +363,16 @@ public class CameraPreviewActivity extends Activity
Bitmap.createBitmap(
mPreviewSize.width, mPreviewSize.height,
Bitmap.Config.ARGB_8888);
- mFormatView.setImageBitmap(mCallbackBitmap);
mFilterYuv = new RsYuv(mRS, getResources(), mPreviewSize.width, mPreviewSize.height);
mFormatView.setImageBitmap(mCallbackBitmap);
}
- long t1 = java.lang.System.currentTimeMillis();
-
- mFilterYuv.execute(data);
- mFilterYuv.copyOut(mCallbackBitmap);
-
- long t2 = java.lang.System.currentTimeMillis();
- mTiming[mTimingSlot++] = t2 - t1;
- if (mTimingSlot >= mTiming.length) {
- float total = 0;
- for (int i=0; i<mTiming.length; i++) {
- total += (float)mTiming[i];
- }
- total /= mTiming.length;
- Log.e(TAG, "time + " + total);
- mTimingSlot = 0;
- }
-
mFormatView.invalidate();
mCamera.addCallbackBuffer(data);
- mProcessInProgress = false;
+ mProcessInProgress = true;
+ new ProcessPreviewDataTask().execute(data);
}
diff --git a/tests/RenderScriptTests/LivePreview/src/com/android/rs/livepreview/yuv.rs b/tests/RenderScriptTests/LivePreview/src/com/android/rs/livepreview/yuv.rs
index b81cf930b065..6057effe2f6c 100644
--- a/tests/RenderScriptTests/LivePreview/src/com/android/rs/livepreview/yuv.rs
+++ b/tests/RenderScriptTests/LivePreview/src/com/android/rs/livepreview/yuv.rs
@@ -65,47 +65,31 @@ static float4 colortemp(float4 color) {
return new_color;
}
-//float vignetteCenter = (img_width/2.0, img_height/2.0)
-
static float vignette_dist_mod;
+int2 vignette_half_dims;
static uchar4 vignette(uchar4 color, uint32_t x, uint32_t y) {
- x -= gWidth >> 1;
- y -= gHeight >> 1;
-
- uint32_t dist = (x * x + y * y);
- //float d = sqrt((float)dist) * vignette_dist_mod;
- float d = vignette_dist_mod * dist;
-
- //RS_DEBUG(d);
+ int2 xy = {x, y};
+ xy -= vignette_half_dims;
+ xy *= xy;
+ float d = vignette_dist_mod * (xy.x + xy.y);
ushort4 c = convert_ushort4(color);
c *= vignette_table[(int)d];
c >>= (ushort4)8;
return convert_uchar4(c);
}
-
-
void root(uchar4 *out, uint32_t x, uint32_t y) {
uchar Y = gYuvIn[(y * gWidth) + x];
uchar *uv = &gYuvIn[gWidth * gHeight];
uv += (((x>>1)<<1) + (y>>1) * gWidth);
-#if 0
- float4 p = toRGB_F(Y, uv[1], uv[0]);
- p = crossProcess(p);
- p = colortemp(p);
- out->rgba = rsPackColorTo8888(p);
-
-#else
uchar4 p = rsYuvToRGBA_uchar4(Y, uv[1], uv[0]);
p = crossProcess_i(p);
p = vignette(p, x, y);
out->rgba = p;
-#endif
-
out->a = 0xff;
}
@@ -131,7 +115,6 @@ static void precompute() {
lumen = clamp(lumen, 0.f, 1.f);
vignette_table[i] = (uchar)(lumen * 255.f + 0.5f);
- RS_DEBUG(lumen);
}
}
@@ -142,7 +125,7 @@ void init() {
void setSize(int w, int h) {
gWidth = w;
gHeight = h;
-
+ vignette_half_dims = (int2){w / 2, h / 2};
vignette_dist_mod = 512.f;
vignette_dist_mod /= (float)(w*w + h*h) / 4.f;