CtsDeviceVideoPerf: limit bitrate to main or baseline profiles
Bug: 21781528
Change-Id: I49011417eade715dcddcab31d85927481578c943
diff --git a/suite/cts/deviceTests/videoperf/src/com/android/cts/videoperf/CodecInfo.java b/suite/cts/deviceTests/videoperf/src/com/android/cts/videoperf/CodecInfo.java
index b7d1d27..5daf73d 100644
--- a/suite/cts/deviceTests/videoperf/src/com/android/cts/videoperf/CodecInfo.java
+++ b/suite/cts/deviceTests/videoperf/src/com/android/cts/videoperf/CodecInfo.java
@@ -86,6 +86,20 @@
if (mimeType.equals(VIDEO_AVC)) {
info.mFps = vidCap.getSupportedFrameRatesFor(w, h).getUpper().intValue();
info.mBitRate = vidCap.getBitrateRange().getUpper();
+
+ // we don't parse bitrate-range on L, so need to adjust bitrate to supported
+ // baseline or main profiles only.
+ int maxBitRate = 0;
+ for (CodecProfileLevel pl : cap.profileLevels) {
+ if (pl.profile == pl.AVCProfileBaseline || pl.profile == pl.AVCProfileMain) {
+ VideoCapabilities vidCapPL =
+ CodecCapabilities.createFromProfileLevel(mimeType, pl.profile, pl.level)
+ .getVideoCapabilities();
+ maxBitRate = Math.max(maxBitRate, vidCapPL.getBitrateRange().getUpper());
+ }
+ }
+ info.mBitRate = Math.min(info.mBitRate, maxBitRate);
+
Log.i(TAG, "AVC bit rate " + info.mBitRate + " fps " + info.mFps);
}
return info;