AdaptivePlaybackTest: dequeue more output buffers at the end.

Some devices may have higher initial decode latency. After all
input buffers are queued, we should dequeue all available output
buffers.

BUG=b:31980561
TEST=Run AdaptivePlaybackTest on elm.

Change-Id: I78fa2f258423a5761b4fb5dd7d061759f09f1ea3
diff --git a/tests/tests/media/src/android/media/cts/AdaptivePlaybackTest.java b/tests/tests/media/src/android/media/cts/AdaptivePlaybackTest.java
index ee5635c..82ca062 100644
--- a/tests/tests/media/src/android/media/cts/AdaptivePlaybackTest.java
+++ b/tests/tests/media/src/android/media/cts/AdaptivePlaybackTest.java
@@ -1092,7 +1092,9 @@
             boolean sawOutputEos = false;
             int deadDecoderCounter = 0;
             ArrayList<String> frames = new ArrayList<String>();
-            while ((waitForEos && !sawOutputEos) || frameIx < frameEndIx) {
+            String buf = null;
+            // After all input buffers are queued, dequeue as many output buffers as possible.
+            while ((waitForEos && !sawOutputEos) || frameIx < frameEndIx || buf != null) {
                 if (frameIx < frameEndIx) {
                     if (queueInputBuffer(
                             media,
@@ -1103,7 +1105,7 @@
                     }
                 }
 
-                String buf = dequeueAndReleaseOutputBuffer(info);
+                buf = dequeueAndReleaseOutputBuffer(info);
                 if (buf != null) {
                     // Some decoders output a 0-sized buffer at the end. Disregard those.
                     if (info.size > 0) {