OSDN Git Service

modules: camera: only wait on valid acquire fence
authorAlex Ray <aray@google.com>
Thu, 30 May 2013 07:19:04 +0000 (00:19 -0700)
committerAlex Ray <aray@google.com>
Wed, 3 Jul 2013 21:32:59 +0000 (14:32 -0700)
Change-Id: I4f51e509d86722c18308f4f1312ca3379cffd795

modules/camera/Camera.cpp

index 137c5f6..10464cb 100644 (file)
@@ -582,14 +582,17 @@ bool Camera::isValidReprocessSettings(const camera_metadata_t* /*settings*/)
 int Camera::processCaptureBuffer(const camera3_stream_buffer_t *in,
         camera3_stream_buffer_t *out)
 {
-    int res = sync_wait(in->acquire_fence, CAMERA_SYNC_TIMEOUT);
-    if (res == -ETIME) {
-        ALOGE("%s:%d: Timeout waiting on buffer acquire fence", __func__, mId);
-        return res;
-    } else if (res) {
-        ALOGE("%s:%d: Error waiting on buffer acquire fence: %s(%d)",
-                __func__, mId, strerror(-res), res);
-        return res;
+    if (in->acquire_fence != -1) {
+        int res = sync_wait(in->acquire_fence, CAMERA_SYNC_TIMEOUT);
+        if (res == -ETIME) {
+            ALOGE("%s:%d: Timeout waiting on buffer acquire fence",
+                    __func__, mId);
+            return res;
+        } else if (res) {
+            ALOGE("%s:%d: Error waiting on buffer acquire fence: %s(%d)",
+                    __func__, mId, strerror(-res), res);
+            return res;
+        }
     }
 
     out->stream = in->stream;