diff options
-rw-r--r-- | src/com/android/camera/Camera.java | 47 | ||||
-rwxr-xr-x | tests/src/com/android/camera/stress/CameraLatency.java | 16 |
2 files changed, 24 insertions, 39 deletions
diff --git a/src/com/android/camera/Camera.java b/src/com/android/camera/Camera.java index 013ff7c..ac93641 100644 --- a/src/com/android/camera/Camera.java +++ b/src/com/android/camera/Camera.java @@ -188,10 +188,6 @@ public class Camera extends NoSearchActivity implements View.OnClickListener, private LocationManager mLocationManager = null; - // Use OneShotPreviewCallback to measure the time between - // JpegPictureCallback and preview. - private final OneShotPreviewCallback mOneShotPreviewCallback = - new OneShotPreviewCallback(); private final ShutterCallback mShutterCallback = new ShutterCallback(); private final PostViewPictureCallback mPostViewPictureCallback = new PostViewPictureCallback(); @@ -218,7 +214,7 @@ public class Camera extends NoSearchActivity implements View.OnClickListener, public long mShutterLag; public long mShutterToPictureDisplayedTime; public long mPictureDisplayedToJpegCallbackTime; - public long mJpegCallbackToFirstFrameTime; + public long mJpegCallbackFinishTime; // Add for test public static boolean mMediaServerDied = false; @@ -240,6 +236,13 @@ public class Camera extends NoSearchActivity implements View.OnClickListener, switch (msg.what) { case RESTART_PREVIEW: { restartPreview(); + if (mJpegPictureCallbackTime != 0) { + long now = System.currentTimeMillis(); + mJpegCallbackFinishTime = now - mJpegPictureCallbackTime; + Log.v(TAG, "mJpegCallbackFinishTime = " + + mJpegCallbackFinishTime + "ms"); + mJpegPictureCallbackTime = 0; + } break; } @@ -582,22 +585,6 @@ public class Camera extends NoSearchActivity implements View.OnClickListener, } } - private final class OneShotPreviewCallback - implements android.hardware.Camera.PreviewCallback { - public void onPreviewFrame(byte[] data, - android.hardware.Camera camera) { - long now = System.currentTimeMillis(); - if (mJpegPictureCallbackTime != 0) { - mJpegCallbackToFirstFrameTime = now - mJpegPictureCallbackTime; - Log.v(TAG, "mJpegCallbackToFirstFrameTime = " - + mJpegCallbackToFirstFrameTime + "ms"); - mJpegPictureCallbackTime = 0; - } else { - Log.v(TAG, "Got first frame"); - } - } - } - private final class ShutterCallback implements android.hardware.Camera.ShutterCallback { public void onShutter() { @@ -680,6 +667,14 @@ public class Camera extends NoSearchActivity implements View.OnClickListener, if (mPicturesRemaining < 1) { updateStorageHint(mPicturesRemaining); } + + if (!mHandler.hasMessages(RESTART_PREVIEW)) { + long now = System.currentTimeMillis(); + mJpegCallbackFinishTime = now - mJpegPictureCallbackTime; + Log.v(TAG, "mJpegCallbackFinishTime = " + + mJpegCallbackFinishTime + "ms"); + mJpegPictureCallbackTime = 0; + } } } @@ -1606,8 +1601,6 @@ public class Camera extends NoSearchActivity implements View.OnClickListener, final long wallTimeStart = SystemClock.elapsedRealtime(); final long threadTimeStart = Debug.threadCpuTimeNanos(); - // Set one shot preview callback for latency measurement. - mCameraDevice.setOneShotPreviewCallback(mOneShotPreviewCallback); mCameraDevice.setErrorCallback(mErrorCallback); try { @@ -1620,14 +1613,6 @@ public class Camera extends NoSearchActivity implements View.OnClickListener, mPreviewing = true; mZoomState = ZOOM_STOPPED; mStatus = IDLE; - - long threadTimeEnd = Debug.threadCpuTimeNanos(); - long wallTimeEnd = SystemClock.elapsedRealtime(); - if ((wallTimeEnd - wallTimeStart) > 3000) { - Log.w(TAG, "startPreview() to " + (wallTimeEnd - wallTimeStart) - + " ms. Thread time was" - + (threadTimeEnd - threadTimeStart) / 1000000 + " ms."); - } } private void stopPreview() { diff --git a/tests/src/com/android/camera/stress/CameraLatency.java b/tests/src/com/android/camera/stress/CameraLatency.java index 550d938..5c6d308 100755 --- a/tests/src/com/android/camera/stress/CameraLatency.java +++ b/tests/src/com/android/camera/stress/CameraLatency.java @@ -42,12 +42,12 @@ public class CameraLatency extends ActivityInstrumentationTestCase2 <Camera> { private long mTotalShutterLag; private long mTotalShutterToPictureDisplayedTime; private long mTotalPictureDisplayedToJpegCallbackTime; - private long mTotalJpegCallbackToFirstFrameTime; + private long mTotalJpegCallbackFinishTime; private long mAvgAutoFocusTime; private long mAvgShutterLag = mTotalShutterLag; private long mAvgShutterToPictureDisplayedTime; private long mAvgPictureDisplayedToJpegCallbackTime; - private long mAvgJpegCallbackToFirstFrameTime; + private long mAvgJpegCallbackFinishTime; public CameraLatency() { super("com.google.android.camera", Camera.class); @@ -83,7 +83,7 @@ public class CameraLatency extends ActivityInstrumentationTestCase2 <Camera> { c.mShutterToPictureDisplayedTime; mTotalPictureDisplayedToJpegCallbackTime += c.mPictureDisplayedToJpegCallbackTime; - mTotalJpegCallbackToFirstFrameTime += c.mJpegCallbackToFirstFrameTime; + mTotalJpegCallbackFinishTime += c.mJpegCallbackFinishTime; } } } catch (Exception e) { @@ -101,8 +101,8 @@ public class CameraLatency extends ActivityInstrumentationTestCase2 <Camera> { mTotalShutterToPictureDisplayedTime / numberofRun; mAvgPictureDisplayedToJpegCallbackTime = mTotalPictureDisplayedToJpegCallbackTime / numberofRun; - mAvgJpegCallbackToFirstFrameTime = - mTotalJpegCallbackToFirstFrameTime / numberofRun; + mAvgJpegCallbackFinishTime = + mTotalJpegCallbackFinishTime / numberofRun; try { FileWriter fstream = null; @@ -116,8 +116,8 @@ public class CameraLatency extends ActivityInstrumentationTestCase2 <Camera> { + mAvgShutterToPictureDisplayedTime + "\n"); out.write("Avg mPictureDisplayedToJpegCallbackTime = " + mAvgPictureDisplayedToJpegCallbackTime + "\n"); - out.write("Avg mJpegCallbackToFirstFrameTime = " + - mAvgJpegCallbackToFirstFrameTime + "\n"); + out.write("Avg mJpegCallbackFinishTime = " + + mAvgJpegCallbackFinishTime + "\n"); out.close(); fstream.close(); } catch (Exception e) { @@ -131,7 +131,7 @@ public class CameraLatency extends ActivityInstrumentationTestCase2 <Camera> { + mAvgShutterToPictureDisplayedTime); Log.v(TAG, "Avg mPictureDisplayedToJpegCallbackTime = " + mAvgPictureDisplayedToJpegCallbackTime); - Log.v(TAG, "Avg mJpegCallbackToFirstFrameTime = " + mAvgJpegCallbackToFirstFrameTime); + Log.v(TAG, "Avg mJpegCallbackFinishTime = " + mAvgJpegCallbackFinishTime); assertTrue("testImageCapture", true); } } |