OSDN Git Service

Camera2: Make sure aborting captures on an idle device works.
authorEino-Ville Talvala <etalvala@google.com>
Thu, 28 Aug 2014 00:05:29 +0000 (17:05 -0700)
committerEino-Ville Talvala <etalvala@google.com>
Thu, 28 Aug 2014 00:05:29 +0000 (17:05 -0700)
Check if device is already idle, and if so, don't actually flush,
just fire the busy/idle callbacks to the session.

Bug: 17306157
Change-Id: I7ba416c6014c7bc1edcad07910aa0aff232af8b0

core/java/android/hardware/camera2/impl/CameraDeviceImpl.java

index 513d222..d75dfe6 100644 (file)
@@ -721,6 +721,13 @@ public class CameraDeviceImpl extends CameraDevice {
             checkIfCameraClosedOrInError();
 
             mDeviceHandler.post(mCallOnBusy);
+
+            // If already idle, just do a busy->idle transition immediately, don't actually
+            // flush.
+            if (mIdle) {
+                mDeviceHandler.post(mCallOnIdle);
+                return;
+            }
             try {
                 LongParcelable lastFrameNumberRef = new LongParcelable();
                 mRemoteDevice.flush(/*out*/lastFrameNumberRef);