summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/camera/Camera.java47
-rwxr-xr-xtests/src/com/android/camera/stress/CameraLatency.java16
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);
}
}