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) {