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 [email protected]
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
-~----------~----~----~----~------~----~------~--~---