Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 69e2ef47 authored by Android (Google) Code Review's avatar Android (Google) Code Review
Browse files

Merge change I9f93ce61 into eclair

* changes:
  Throttle camera preview frames to the app. Bug 2180302.
parents 2e778c17 a6118c63
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -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;