am 69e2ef47: Merge change I9f93ce61 into eclair

Merge commit '69e2ef473cd47404ee711bf2464cbfc7c8c83e42' into eclair-mr2

* commit '69e2ef473cd47404ee711bf2464cbfc7c8c83e42':
  Throttle camera preview frames to the app. Bug 2180302.
This commit is contained in:
Dave Sparks
2009-10-13 09:56:26 -07:00
committed by Android Git Automerger

View File

@@ -229,7 +229,9 @@ public class Camera {
public final void setPreviewCallback(PreviewCallback cb) {
mPreviewCallback = cb;
mOneShot = false;
setHasPreviewCallback(cb != null, false);
// Always use one-shot mode. We fake camera preview mode by
// doing one-shot preview continuously.
setHasPreviewCallback(cb != null, true);
}
/**
@@ -280,10 +282,19 @@ public class Camera {
case CAMERA_MSG_PREVIEW_FRAME:
if (mPreviewCallback != null) {
mPreviewCallback.onPreviewFrame((byte[])msg.obj, mCamera);
PreviewCallback cb = mPreviewCallback;
if (mOneShot) {
// Clear the callback variable before the callback
// in case the app calls setPreviewCallback from
// the callback function
mPreviewCallback = null;
} else {
// We're faking the camera preview mode to prevent
// the app from being flooded with preview frames.
// Set to oneshot mode again.
setHasPreviewCallback(true, true);
}
cb.onPreviewFrame((byte[])msg.obj, mCamera);
}
return;