Camera: Call cancel_buffers on min undequeued buffers

Call cancel_buffers on min undequeued buffers after dequeuing all buffers
before stating prewview.

Bug: 8371899
Change-Id: I9cf911f57044b034f77e185a827953d260ac1786
Signed-off-by: Iliyan Malchev <malchev@google.com>
diff --git a/camera/QCameraHWI_Preview.cpp b/camera/QCameraHWI_Preview.cpp
index 302afac..cc85c3d 100644
--- a/camera/QCameraHWI_Preview.cpp
+++ b/camera/QCameraHWI_Preview.cpp
@@ -232,6 +232,13 @@
         mHalCamCtrl->mPreviewMemory.private_buffer_handle[cnt]->offset);
     }
 
+    //Cancel min_undequeued_buffer buffers back to the window
+    for (int i = 0;  i < numMinUndequeuedBufs; i ++) {
+        if( mHalCamCtrl->mPreviewMemory.local_flag[i] != BUFFER_NOT_OWNED) {
+            err = mPreviewWindow->cancel_buffer(mPreviewWindow, mHalCamCtrl->mPreviewMemory.buffer_handle[i]);
+        }
+        mHalCamCtrl->mPreviewMemory.local_flag[i] = BUFFER_NOT_OWNED;
+    }
 
     memset(&mHalCamCtrl->mMetadata, 0, sizeof(mHalCamCtrl->mMetadata));
     memset(mHalCamCtrl->mFace, 0, sizeof(mHalCamCtrl->mFace));
@@ -920,8 +927,8 @@
         }
     } else {
         ALOGE("%s: buffer to be enqueued is not locked", __FUNCTION__);
-	    //mHalCamCtrl->mPreviewMemoryLock.unlock();
-        //return -EINVAL;
+	    mHalCamCtrl->mPreviewMemoryLock.unlock();
+        return -EINVAL;
     }
 
 #ifdef USE_ION