DO NOT MERGE: Skip testPlay00 for less capable HW HEVC decoder
Symptom: run cst failed at HEVCR1080pAacLongPlayerTest#testPlay00
Root cause: It uses content exceeds CDD decoder requirement
Solution: Skip test if a device does not claim to support that.
Bug: 36115848
Change-Id: I6d5b5a23956d43f298e11b0115f5308cff79b7d5
diff --git a/tests/tests/mediastress/src/android/mediastress/cts/HEVCR1080pAacLongPlayerTest.java b/tests/tests/mediastress/src/android/mediastress/cts/HEVCR1080pAacLongPlayerTest.java
index f396706..42f5d43 100644
--- a/tests/tests/mediastress/src/android/mediastress/cts/HEVCR1080pAacLongPlayerTest.java
+++ b/tests/tests/mediastress/src/android/mediastress/cts/HEVCR1080pAacLongPlayerTest.java
@@ -16,6 +16,11 @@
package android.mediastress.cts;
+import android.media.MediaCodecList;
+import android.media.MediaCodecInfo;
+import android.media.MediaCodecInfo.CodecCapabilities;
+import android.media.MediaCodecInfo.VideoCapabilities;
+
public class HEVCR1080pAacLongPlayerTest extends MediaPlayerStressTest {
private static final String VIDEO_PATH_MIDDLE = "bbb_full/1920x1080/mp4_libx265_libfaac/";
private final String[] mMedias = {
@@ -23,9 +28,29 @@
};
public void testPlay00() throws Exception {
+ if (!isSupported()) {
+ return;
+ }
doTestVideoPlaybackLong(0);
}
+ private boolean isSupported() {
+ final int CONTEXT_BIT_RATE = 6500000;
+ MediaCodecList mcl = new MediaCodecList(MediaCodecList.REGULAR_CODECS);
+ for (MediaCodecInfo info : mcl.getCodecInfos()) {
+ if(info.getName().toLowerCase().equalsIgnoreCase("OMX.google.hevc.decoder")) {
+ try {
+ return info.getCapabilitiesForType("video/hevc").getVideoCapabilities().
+ getBitrateRange().contains(CONTEXT_BIT_RATE);
+ } catch (IllegalArgumentException e) {
+ continue;
+ }
+ }
+ }
+
+ return true;
+ }
+
@Override
protected String getFullVideoClipName(int mediaNumber) {
return VIDEO_TOP_DIR + VIDEO_PATH_MIDDLE + mMedias[mediaNumber];