Camera2: Add support for preview callbacks

- Move camera overall state enum to be part of parameters
- No longer use ICameraLock to guard access to overall state enum
- Add callback flag management
- Add callback stream and management

Bug: 6243944

Change-Id: Ideb3dc523a23c05e440e429ebf838b1900a96573
diff --git a/services/camera/libcameraservice/MediaConsumer.cpp b/services/camera/libcameraservice/MediaConsumer.cpp
index 0d857cf..a5fe302 100644
--- a/services/camera/libcameraservice/MediaConsumer.cpp
+++ b/services/camera/libcameraservice/MediaConsumer.cpp
@@ -81,6 +81,7 @@
 
     if (!buffer) return BAD_VALUE;
     if (mCurrentLockedBuffers == mMaxLockedBuffers) {
+        MC_LOGV("Too many buffers (max %d)", mCurrentLockedBuffers);
         return INVALID_OPERATION;
     }
 
@@ -91,6 +92,7 @@
     err = mBufferQueue->acquireBuffer(&b);
     if (err != OK) {
         if (err == BufferQueue::NO_BUFFER_AVAILABLE) {
+            MC_LOGV("No buffer available");
             return BAD_VALUE;
         } else {
             MC_LOGE("Error acquiring buffer: %s (%d)", strerror(err), err);
@@ -117,7 +119,7 @@
     *timestamp = b.mTimestamp;
 
     mCurrentLockedBuffers++;
-
+    MC_LOGV("getNextBuffer: %d buffers in use", mCurrentLockedBuffers);
     return OK;
 }
 
@@ -143,8 +145,8 @@
                 buf);
         return err;
     }
-
     mCurrentLockedBuffers--;
+    MC_LOGV("freeBuffer: %d buffers in use", mCurrentLockedBuffers);
 
     return OK;
 }