add a way to query whether an ANativeWindow consumer is running ahead of the producer

Change-Id: Ibccfa1feb56db2ab11f0c0934ce2d570a2b65ae2
diff --git a/libs/gui/BufferQueue.cpp b/libs/gui/BufferQueue.cpp
index 5941dc2..39e9724 100644
--- a/libs/gui/BufferQueue.cpp
+++ b/libs/gui/BufferQueue.cpp
@@ -252,6 +252,9 @@
         value = mSynchronousMode ?
                 (mMinUndequeuedBuffers-1) : mMinUndequeuedBuffers;
         break;
+    case NATIVE_WINDOW_CONSUMER_RUNNING_BEHIND:
+        value = (mQueue.size() >= 2);
+        break;
     default:
         return BAD_VALUE;
     }
@@ -615,7 +618,8 @@
         mBufferHasBeenQueued = true;
         mDequeueCondition.broadcast();
 
-        output->inflate(mDefaultWidth, mDefaultHeight, mTransformHint);
+        output->inflate(mDefaultWidth, mDefaultHeight, mTransformHint,
+                mQueue.size());
 
         ATRACE_INT(mConsumerName.string(), mQueue.size());
     } // scope for the lock
@@ -678,7 +682,8 @@
                 err = -EINVAL;
             } else {
                 mConnectedApi = api;
-                output->inflate(mDefaultWidth, mDefaultHeight, mDefaultHeight);
+                output->inflate(mDefaultWidth, mDefaultHeight, mTransformHint,
+                        mQueue.size());
             }
             break;
         default: