From f97e5f7353ef3da67d869792afc8d7787d5704ac Mon Sep 17 00:00:00 2001 From: Andrey Kamaev Date: Thu, 14 Jul 2011 13:39:25 +0000 Subject: [PATCH] Modified Android samples --- .../src/org/opencv/samples/s1/Sample1View.java | 4 ++-- .../src/org/opencv/samples/s1/SampleViewBase.java | 24 ++++++++++++++-------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/samples/android/1-java/src/org/opencv/samples/s1/Sample1View.java b/samples/android/1-java/src/org/opencv/samples/s1/Sample1View.java index f04a26f..2ae461c 100644 --- a/samples/android/1-java/src/org/opencv/samples/s1/Sample1View.java +++ b/samples/android/1-java/src/org/opencv/samples/s1/Sample1View.java @@ -50,7 +50,7 @@ class Sample1View extends SampleViewBase implements SurfaceHolder.Callback { @Override protected Bitmap processFrame(byte[] data) { - Log.e("SAMP1", "processFrame begin"); + //Log.e("SAMP1", "processFrame begin"); mYuv.put(0, 0, data); @@ -83,7 +83,7 @@ class Sample1View extends SampleViewBase implements SurfaceHolder.Callback { Bitmap bmp = Bitmap.createBitmap(mFrameWidth, mFrameHeight, Bitmap.Config.ARGB_8888); android.MatToBitmap(mRgba, bmp); - Log.e("SAMP1", "processFrame end"); + //Log.e("SAMP1", "processFrame end"); return bmp; } diff --git a/samples/android/1-java/src/org/opencv/samples/s1/SampleViewBase.java b/samples/android/1-java/src/org/opencv/samples/s1/SampleViewBase.java index 56ba970..44efe91 100644 --- a/samples/android/1-java/src/org/opencv/samples/s1/SampleViewBase.java +++ b/samples/android/1-java/src/org/opencv/samples/s1/SampleViewBase.java @@ -52,15 +52,16 @@ public abstract class SampleViewBase extends SurfaceView implements SurfaceHolde } public void surfaceCreated(SurfaceHolder holder) { + Log.i("SAMP1", "surfaceCreated"); mCamera = Camera.open(); mCamera.setPreviewCallback( new PreviewCallback() { public void onPreviewFrame(byte[] data, Camera camera) { synchronized(SampleViewBase.this) { mFrame = data; - Log.i("SAMP1", "before notify"); + //Log.i("SAMP1", "before notify"); SampleViewBase.this.notify(); - Log.i("SAMP1", "after notify"); + //Log.i("SAMP1", "after notify"); } } } @@ -69,6 +70,7 @@ public abstract class SampleViewBase extends SurfaceView implements SurfaceHolde } public void surfaceDestroyed(SurfaceHolder holder) { + Log.i("SAMP1", "surfaceDestroyed"); mThreadRun = false; if(mCamera != null) { synchronized(this) { @@ -87,22 +89,26 @@ public abstract class SampleViewBase extends SurfaceView implements SurfaceHolde Log.i(TAG, "Starting thread"); Bitmap bmp = null; while(mThreadRun) { - Log.i("SAMP1", "before synchronized"); + //Log.i("SAMP1", "before synchronized"); synchronized(this) { - Log.i("SAMP1", "in synchronized"); + //Log.i("SAMP1", "in synchronized"); try { this.wait(); - Log.i("SAMP1", "before processFrame"); + //Log.i("SAMP1", "before processFrame"); bmp = processFrame(mFrame); - Log.i("SAMP1", "after processFrame"); + //Log.i("SAMP1", "after processFrame"); } catch (InterruptedException e) { e.printStackTrace(); } } - Canvas canvas = mHolder.lockCanvas(); - canvas.drawBitmap(bmp, (canvas.getWidth()-mFrameWidth)/2, (canvas.getHeight()-mFrameHeight)/2, null); - mHolder.unlockCanvasAndPost(canvas); + if (bmp != null){ + Canvas canvas = mHolder.lockCanvas(); + if (canvas != null){ + canvas.drawBitmap(bmp, (canvas.getWidth()-mFrameWidth)/2, (canvas.getHeight()-mFrameHeight)/2, null); + mHolder.unlockCanvasAndPost(canvas); + } + } } } } \ No newline at end of file -- 2.7.4