AdaptivePlaybackTest: verify flush doesn't trigger output format change

Bug: 149751672
Test: atest CtsMediaTestCases:AdaptivePlaybackTest
Change-Id: I313d1358fc9d87fb71e82b70580b80dc9584d18f
diff --git a/tests/tests/media/src/android/media/cts/AdaptivePlaybackTest.java b/tests/tests/media/src/android/media/cts/AdaptivePlaybackTest.java
index b814046..c7c6c5b 100644
--- a/tests/tests/media/src/android/media/cts/AdaptivePlaybackTest.java
+++ b/tests/tests/media/src/android/media/cts/AdaptivePlaybackTest.java
@@ -479,6 +479,9 @@
                             warn(mDecoder.getWarnings());
                             mDecoder.clearWarnings();
                             mDecoder.flush();
+                            // First run will trigger output format change exactly once,
+                            // and subsequent runs should not trigger format change.
+                            assertEquals(1, mDecoder.getOutputFormatChangeCount());
                         }
                     });
                 if (verify) {
@@ -897,6 +900,8 @@
         int mFramesNotifiedRendered;
         // True iff previous dequeue request returned INFO_OUTPUT_FORMAT_CHANGED.
         boolean mOutputFormatChanged;
+        // Number of output format change event
+        int mOutputFormatChangeCount;
         // Save the timestamps of the first frame of each sequence.
         // Note: this is the only time output format change could happen.
         ArrayList<Long> mFirstQueueTimestamps;
@@ -918,6 +923,7 @@
             mLastRenderNanoTime = System.nanoTime();
             mFramesNotifiedRendered = 0;
             mOutputFormatChanged = false;
+            mOutputFormatChangeCount = 0;
             mFirstQueueTimestamps = new ArrayList<Long>();
 
             codec.setOnFrameRenderedListener(this, null);
@@ -952,6 +958,10 @@
             mWarnings.clear();
         }
 
+        public int getOutputFormatChangeCount() {
+            return mOutputFormatChangeCount;
+        }
+
         public void configureAndStart(MediaFormat format, TestSurface surface) {
             mSurface = surface;
             Log.i(TAG, "configure(" + format + ", " + mSurface.getSurface() + ")");
@@ -1009,6 +1019,7 @@
                 int colorFormat = format.getInteger(MediaFormat.KEY_COLOR_FORMAT);
                 mDoChecksum = isRecognizedFormat(colorFormat);
                 mOutputFormatChanged = true;
+                ++mOutputFormatChangeCount;
                 return null;
             } else if (ix < 0) {
                 Log.v(TAG, "no output");