VpxEncoderTest: Allow bitrate undershoot in VpxEncoderTest

Do not flag an error in VpxEncoderTest if achieved bitrate is smaller
than target bitrate in variable bitrate mode

Bug: 111646660
Test: run cts -m CtsMediaTestCases -t android.media.cts.VpxEncoderTest#testBasicVP9
Change-Id: I2550753dfca48aa837c37cea74be3b4e14ba70ea
diff --git a/tests/tests/media/src/android/media/cts/VpxEncoderTest.java b/tests/tests/media/src/android/media/cts/VpxEncoderTest.java
index f94a566..38a8403 100644
--- a/tests/tests/media/src/android/media/cts/VpxEncoderTest.java
+++ b/tests/tests/media/src/android/media/cts/VpxEncoderTest.java
@@ -107,10 +107,15 @@
 
             VpxEncodingStatistics statistics = computeEncodingStatistics(bufInfo);
 
-            assertEquals("Stream bitrate " + statistics.mAverageBitrate +
+            /* Allow achieved bitrate to be smaller than target bitrate for
+             * VIDEO_ControlRateVariable mode */
+            if ((params.bitrateType == VIDEO_ControlRateConstant) ||
+                (statistics.mAverageBitrate > targetBitrate)) {
+                assertEquals("Stream bitrate " + statistics.mAverageBitrate +
                     " is different from the target " + targetBitrate,
                     targetBitrate, statistics.mAverageBitrate,
                     MAX_BITRATE_VARIATION * targetBitrate);
+            }
 
             decode(params.outputIvfFilename, null, codecMimeType, FPS, params.forceGoogleEncoder);
         }