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);
}