Also, try rotating the device (Ctrl-Alt-Pg. down). The ratio (frames/ sec) is much slower in landscape mode than in portrait mode.
I suppose it is just an emulator issue and it will not be a problem with the actual devices, so I'm not too much worried about it... On 4 abr, 15:05, Franco <[EMAIL PROTECTED]> wrote: > Hi, > Using the CameraPreview example and doing some image processing I > found a strange slow behavior in the Emulator. I have little > experience with java and Android (C/C++ background) so I do not know > if it is a true issue of the emulator or some strange memory/thread > handling that I am not aware. > > When the application starts after the emulator starts, the application > is very slow (228 ms per frame). > If I press the "Back" button and then press the application icon, The > applications is about 4 times faster (64ms per frame). > > This fast framerate will continue to work and will not go back to the > slow behavior. > I tried launching the emulator from Eclipse and stand alone. Also in > Windows and OSX and the behavior is always the same and happens every > time. > > To recreate the slow behavior I just added a couple of lines (intense > CPU usage) to the CameraPreview sample provided by the SDK.The > modified run() part is: > > @Override > public void run() { > // We first open the CameraDevice and configure it. > CameraDevice camera = CameraDevice.open(); > if (camera != null) { > CameraDevice.CaptureParams param = new > CameraDevice.CaptureParams(); > param.type = 1; // preview > param.srcWidth = 1280; > param.srcHeight = 960; > param.leftPixel = 0; > param.topPixel = 0; > param.outputWidth = 320; > param.outputHeight = 240; > param.dataFormat = 2; // RGB_565 > camera.setCaptureParams(param); > } > > // This is our main acquisition thread's loop, we go until > // asked to quit. > SurfaceHolder holder = mHolder; > > // > =========================================================== > // Added to check strange behavior > // > =========================================================== > long timeMillis = > java.lang.System.currentTimeMillis(); > Paint paint = new Paint(); > paint.setTextSize(20); > paint.setARGB(255, 255, 0, 0); > > while (!mDone) { > // Lock the surface, this returns a Canvas that can > // be used to render into. > Canvas canvas = holder.lockCanvas(); > > // Capture directly into the Surface > if (camera != null) { > camera.capture(canvas); > > // > =========================================================== > // Added to check strange behavior > // > =========================================================== > int b=3; > for(int i=0; i<100000; i++) > b=b+1; > > long timeNew = > java.lang.System.currentTimeMillis(); > canvas.drawText("ms=" + (timeNew - > timeMillis), 10, 20, > paint); > timeMillis = timeNew; > } > > // And finally unlock and post the surface. > holder.unlockCanvasAndPost(canvas); > } > > // Make sure to release the CameraDevice > if (camera != null) > camera.close(); > } > Can someone test it and see if the results are the same? Any ideas? > Thanks > Franco --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] Announcing the new M5 SDK! http://android-developers.blogspot.com/2008/02/android-sdk-m5-rc14-now-available.html For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---