QCamera2: HAL3: More verbose log message for buffer loss

Print out stream size, format, and last frame number for buffer loss.

Bug: 28427118
Change-Id: I5568d1a38a54243f094a679d80872a4c9d1b6523
diff --git a/camera/QCamera2/HAL3/QCamera3HWI.cpp b/camera/QCamera2/HAL3/QCamera3HWI.cpp
index fe08065..e4f45db 100644
--- a/camera/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/camera/QCamera2/HAL3/QCamera3HWI.cpp
@@ -299,6 +299,7 @@
         CDBG("%s: Raw dump from Camera HAL enabled", __func__);
 
     mPendingBuffersMap.num_buffers = 0;
+    mPendingBuffersMap.last_frame_number = -1;
 }
 
 /*===========================================================================
@@ -362,6 +363,13 @@
         memset(mParameters, 0, sizeof(parm_buffer_t));
         // Check if there is still pending buffer not yet returned.
         if (hasPendingBuffers) {
+            for (auto& pendingBuffer : mPendingBuffersMap.mPendingBufferList) {
+                ALOGE("%s: Buffer not yet returned for stream. Frame number %d, format 0x%x, width %d, height %d",
+                        __func__, pendingBuffer.frame_number, pendingBuffer.stream->format, pendingBuffer.stream->width,
+                        pendingBuffer.stream->height);
+            }
+            ALOGE("%s: Last requested frame number is %d", __func__, mPendingBuffersMap.last_frame_number);
+
             uint8_t restart = TRUE;
             AddSetParmEntryToBatch(mParameters, CAM_INTF_META_DAEMON_RESTART,
                     sizeof(restart), &restart);
@@ -2448,6 +2456,7 @@
     CDBG("%s: mPendingBuffersMap.num_buffers = %d",
           __func__, mPendingBuffersMap.num_buffers);
 
+    mPendingBuffersMap.last_frame_number = frameNumber;
     mPendingRequestsList.push_back(pendingRequest);
 
     if(mFlush) {
diff --git a/camera/QCamera2/HAL3/QCamera3HWI.h b/camera/QCamera2/HAL3/QCamera3HWI.h
index d59be92..5c3ba41 100644
--- a/camera/QCamera2/HAL3/QCamera3HWI.h
+++ b/camera/QCamera2/HAL3/QCamera3HWI.h
@@ -305,6 +305,8 @@
         uint32_t num_buffers;
         // List of pending buffers
         List<PendingBufferInfo> mPendingBufferList;
+        // Last frame number requested
+        uint32_t last_frame_number;
     } PendingBuffersMap;
 
     typedef struct {