@Override
protected Bitmap processFrame(byte[] data)
{
- Log.e("SAMP1", "processFrame begin");
+ //Log.e("SAMP1", "processFrame begin");
mYuv.put(0, 0, data);
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;
}
}
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");
}
}
}
}
public void surfaceDestroyed(SurfaceHolder holder) {
+ Log.i("SAMP1", "surfaceDestroyed");
mThreadRun = false;
if(mCamera != null) {
synchronized(this) {
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