Camera3: Make sure new metadata results signal other threads waiting

- Also adds a lot of logging around shuffling around metadata frames

Bug: 9007356
Change-Id: I4285f4f55b4b899ea4928d43062c705619c8248a
diff --git a/services/camera/libcameraservice/Camera3Device.cpp b/services/camera/libcameraservice/Camera3Device.cpp
index 6f4f4c8..1d38993 100644
--- a/services/camera/libcameraservice/Camera3Device.cpp
+++ b/services/camera/libcameraservice/Camera3Device.cpp
@@ -1329,6 +1329,10 @@
 
     // Finally, dispatch any 3A change events to listeners if we got metadata
 
+    if (result->result != NULL) {
+        mResultSignal.signal();
+    }
+
     if (result->result != NULL && listener != NULL) {
         if (new3aState.aeState != cur3aState.aeState) {
             ALOGVV("%s: AE state changed from 0x%x to 0x%x",