mediapc: Add CDD section numbers for new requirements
Bug: 228104072
Test: atest CtsMediaPerformanceClassTestCases
Change-Id: I8dc133bf86d4b2d38091e1a237444ca22f56cc80
(cherry picked from commit dd5f970228fd612d3d0e5f267a75653f66f61eaf)
Merged-In: I8dc133bf86d4b2d38091e1a237444ca22f56cc80
diff --git a/tests/mediapc/common/src/android/mediapc/cts/common/PerformanceClassEvaluator.java b/tests/mediapc/common/src/android/mediapc/cts/common/PerformanceClassEvaluator.java
index 1c3a4dd..3766bef 100644
--- a/tests/mediapc/common/src/android/mediapc/cts/common/PerformanceClassEvaluator.java
+++ b/tests/mediapc/common/src/android/mediapc/cts/common/PerformanceClassEvaluator.java
@@ -90,36 +90,17 @@
.setId(RequirementConstants.LONG_RESOLUTION)
.setPredicate(RequirementConstants.INTEGER_GTE)
.addRequiredValue(Build.VERSION_CODES.S, 1920)
- .build();
- RequiredMeasurement<Integer> short_resolution = RequiredMeasurement
- .<Integer>builder()
- .setId(RequirementConstants.SHORT_RESOLUTION)
- .setPredicate(RequirementConstants.INTEGER_GTE)
- .addRequiredValue(Build.VERSION_CODES.S, 1080)
- .build();
-
- return new ResolutionRequirement(RequirementConstants.R7_1_1_1__H_2_1, long_resolution,
- short_resolution);
- }
-
- /**
- * [7.1.1.1/?] MUST have screen resolution of at least 1080p.
- */
- public static ResolutionRequirement createR7_1_1_1__TBD1() {
- RequiredMeasurement<Integer> long_resolution = RequiredMeasurement
- .<Integer>builder()
- .setId(RequirementConstants.LONG_RESOLUTION)
- .setPredicate(RequirementConstants.INTEGER_GTE)
.addRequiredValue(Build.VERSION_CODES.TIRAMISU, 1920)
.build();
RequiredMeasurement<Integer> short_resolution = RequiredMeasurement
.<Integer>builder()
.setId(RequirementConstants.SHORT_RESOLUTION)
.setPredicate(RequirementConstants.INTEGER_GTE)
+ .addRequiredValue(Build.VERSION_CODES.S, 1080)
.addRequiredValue(Build.VERSION_CODES.TIRAMISU, 1080)
.build();
- return new ResolutionRequirement(RequirementConstants.RTBD, long_resolution,
+ return new ResolutionRequirement(RequirementConstants.R7_1_1_1__H_2_1, long_resolution,
short_resolution);
}
}
@@ -159,27 +140,14 @@
.setId(RequirementConstants.DISPLAY_DENSITY)
.setPredicate(RequirementConstants.INTEGER_GTE)
.addRequiredValue(Build.VERSION_CODES.S, 400)
+ .addRequiredValue(Build.VERSION_CODES.TIRAMISU, 400)
.build();
return new DensityRequirement(RequirementConstants.R7_1_1_3__H_2_1, display_density);
}
-
- /**
- * [7.1.1.3/?] MUST have screen density of at least 400 dpi.
- */
- public static DensityRequirement createR7_1_1_3__TBD2() {
- RequiredMeasurement<Integer> display_density = RequiredMeasurement
- .<Integer>builder()
- .setId(RequirementConstants.DISPLAY_DENSITY)
- .setPredicate(RequirementConstants.INTEGER_GTE)
- .addRequiredValue(Build.VERSION_CODES.TIRAMISU, 400)
- .build();
-
- return new DensityRequirement(RequirementConstants.RTBD, display_density);
- }
}
- // used for requirements [7.6.1/H-1-1], [7.6.1/H-2-1], [7.6.1/H-3-1]
+ // used for requirements [7.6.1/H-1-1], [7.6.1/H-2-1]
public static class MemoryRequirement extends Requirement {
private static final String TAG = MemoryRequirement.class.getSimpleName();
@@ -208,39 +176,23 @@
}
/**
- * [7.6.1/H-2-1] MUST have at least 6 GB of physical memory.
+ * [7.6.1/H-2-1] MUST have at least 6/8 GB of physical memory.
*/
public static MemoryRequirement createR7_6_1__H_2_1() {
RequiredMeasurement<Long> physical_memory = RequiredMeasurement
.<Long>builder()
.setId(RequirementConstants.PHYSICAL_MEMORY)
.setPredicate(RequirementConstants.LONG_GTE)
- // Media performance requires 6 GB minimum RAM, but keeping the following to 5 GB
- // as activityManager.getMemoryInfo() returns around 5.4 GB on a 6 GB device.
+ // Media performance requires 6/8 GB minimum RAM, but keeping the following to
+ // 5/7 GB as activityManager.getMemoryInfo() returns around 5.4 GB on a 6 GB device.
.addRequiredValue(Build.VERSION_CODES.S, 5L * 1024L)
+ .addRequiredValue(Build.VERSION_CODES.TIRAMISU, 7L * 1024L)
.build();
return new MemoryRequirement(RequirementConstants.R7_6_1__H_2_1, physical_memory);
}
-
- /**
- * [7.6.1/H-3-1] MUST have at least 8 GB of physical memory.
- */
- public static MemoryRequirement createR7_6_1__H_3_1() {
- RequiredMeasurement<Long> physical_memory = RequiredMeasurement
- .<Long>builder()
- .setId(RequirementConstants.PHYSICAL_MEMORY)
- .setPredicate(RequirementConstants.LONG_GTE)
- // Media performance requires 8 GB minimum RAM, but keeping the following to 7 GB
- // as activityManager.getMemoryInfo() returns around 7.4 GB on a 8 GB device.
- .addRequiredValue(Build.VERSION_CODES.TIRAMISU, 7L * 1024L)
- .build();
-
- return new MemoryRequirement(RequirementConstants.R7_6_1__H_3_1, physical_memory);
- }
}
- // used for requirements [2.2.7.1/5.1/H-1-7], [2.2.7.1/5.1/H-1-8], [2.2.7.1/5.1/H-1-?]
public static class CodecInitLatencyRequirement extends Requirement {
private static final String TAG = CodecInitLatencyRequirement.class.getSimpleName();
@@ -293,40 +245,38 @@
codec_init_latency);
}
- // TODO(b/218771970): Update CDD section, change RequirementConstants.RTBD to appropirate
- // requirement id once finalized, ex: RequirementConstants.R5_1__H_1_<something>
/**
- * [2.2.7.1/5.1/H-1-?] Codec initialization latency of 40ms or less for a 1080p or
+ * [2.2.7.1/5.1/H-1-12] Codec initialization latency of 40ms or less for a 1080p or
* smaller video decoding session for all hardware video encoders when under load. Load
* here is defined as a concurrent 1080p to 720p video-only transcoding session using
* hardware video codecs together with the 1080p audio-video recording initialization.
*/
- public static CodecInitLatencyRequirement createR5_1__H_1_TBD1() {
+ public static CodecInitLatencyRequirement createR5_1__H_1_12() {
RequiredMeasurement<Long> codec_init_latency =
RequiredMeasurement.<Long>builder().setId(RequirementConstants.CODEC_INIT_LATENCY)
.setPredicate(RequirementConstants.LONG_LTE)
.addRequiredValue(Build.VERSION_CODES.TIRAMISU, 40L)
.build();
- return new CodecInitLatencyRequirement(RequirementConstants.RTBD, codec_init_latency);
+ return new CodecInitLatencyRequirement(RequirementConstants.R5_1__H_1_12,
+ codec_init_latency);
}
- // TODO(b/218771970): Update CDD section, change RequirementConstants.RTBD to appropirate
- // requirement id once finalized, ex: RequirementConstants.R5_1__H_1_<something>
/**
- * [2.2.7.1/5.1/H-1-?] Codec initialization latency of 30ms or less for a 128kbps or
+ * [2.2.7.1/5.1/H-1-13] Codec initialization latency of 30ms or less for a 128kbps or
* lower bitrate audio decoding session for all audio encoders when under load. Load here
* is defined as a concurrent 1080p to 720p video-only transcoding session using hardware
* video codecs together with the 1080p audio-video recording initialization.
*/
- public static CodecInitLatencyRequirement createR5_1__H_1_TBD2() {
+ public static CodecInitLatencyRequirement createR5_1__H_1_13() {
RequiredMeasurement<Long> codec_init_latency =
RequiredMeasurement.<Long>builder().setId(RequirementConstants.CODEC_INIT_LATENCY)
.setPredicate(RequirementConstants.LONG_LTE)
.addRequiredValue(Build.VERSION_CODES.TIRAMISU, 30L)
.build();
- return new CodecInitLatencyRequirement(RequirementConstants.RTBD, codec_init_latency);
+ return new CodecInitLatencyRequirement(RequirementConstants.R5_1__H_1_13,
+ codec_init_latency);
}
}
@@ -455,9 +405,6 @@
}
}
- // TODO(b/218771970): Add cdd annotation, change RequirementConstants.RTBD to appropirate
- // requirement id once finalized
- // used for requirements [?]
public static class VideoCodecRequirement extends Requirement {
private static final String TAG = VideoCodecRequirement.class.getSimpleName();
@@ -478,7 +425,7 @@
}
/**
- * [?] Must have at least 1 HW video decoder supporting 4K60
+ * [2.2.7.1/5.1/H-1-15] Must have at least 1 HW video decoder supporting 4K60
*/
public static VideoCodecRequirement createR4k60HwDecoder() {
RequiredMeasurement<Integer> requirement = RequiredMeasurement
@@ -488,11 +435,11 @@
.addRequiredValue(Build.VERSION_CODES.TIRAMISU, 1)
.build();
- return new VideoCodecRequirement(RequirementConstants.RTBD, requirement);
+ return new VideoCodecRequirement(RequirementConstants.R5_1__H_1_15, requirement);
}
/**
- * [?] Must have at least 1 HW video encoder supporting 4K60
+ * [2.2.7.1/5.1/H-1-16] Must have at least 1 HW video encoder supporting 4K60
*/
public static VideoCodecRequirement createR4k60HwEncoder() {
RequiredMeasurement<Integer> requirement = RequiredMeasurement
@@ -502,11 +449,11 @@
.addRequiredValue(Build.VERSION_CODES.TIRAMISU, 1)
.build();
- return new VideoCodecRequirement(RequirementConstants.RTBD, requirement);
+ return new VideoCodecRequirement(RequirementConstants.R5_1__H_1_16, requirement);
}
/**
- * [?] AV1 Hardware decoder: Main 10, Level 4.1, Film Grain
+ * [2.2.7.1/5.1/H-1-14] AV1 Hardware decoder: Main 10, Level 4.1, Film Grain
*/
public static VideoCodecRequirement createRAV1DecoderReq() {
RequiredMeasurement<Boolean> requirement = RequiredMeasurement
@@ -516,7 +463,7 @@
.addRequiredValue(Build.VERSION_CODES.TIRAMISU, true)
.build();
- return new VideoCodecRequirement(RequirementConstants.RTBD, requirement);
+ return new VideoCodecRequirement(RequirementConstants.R5_1__H_1_14, requirement);
}
}
@@ -593,8 +540,8 @@
}
/**
- * [?] Must support secure decoder when a corresponding AVC/VP9/HEVC or AV1 hardware
- * decoder is available
+ * [2.2.7.1/5.7/H-1-1] Must support secure decoder when a corresponding AVC/VP9/HEVC or AV1
+ * hardware decoder is available
*/
public static SecureCodecRequirement createRSecureDecodeSupport() {
RequiredMeasurement<Boolean> requirement = RequiredMeasurement
@@ -604,7 +551,7 @@
.addRequiredValue(Build.VERSION_CODES.TIRAMISU, true)
.build();
- return new SecureCodecRequirement(RequirementConstants.RTBD, requirement);
+ return new SecureCodecRequirement(RequirementConstants.R5_7__H_1_1, requirement);
}
}
@@ -633,25 +580,13 @@
ResolutionRequirement.createR7_1_1_1__H_2_1());
}
- public ResolutionRequirement addR7_1_1_1__TBD1() {
- return this.<ResolutionRequirement>addRequirement(
- ResolutionRequirement.createR7_1_1_1__TBD1());
- }
-
public DensityRequirement addR7_1_1_3__H_2_1() {
return this.<DensityRequirement>addRequirement(DensityRequirement.createR7_1_1_3__H_2_1());
}
- public DensityRequirement addR7_1_1_3__TBD2() {
- return this.<DensityRequirement>addRequirement(DensityRequirement.createR7_1_1_3__TBD2());
- }
-
public MemoryRequirement addR7_6_1__H_2_1() {
return this.<MemoryRequirement>addRequirement(MemoryRequirement.createR7_6_1__H_2_1());
}
- public MemoryRequirement addR7_6_1__H_3_1() {
- return this.<MemoryRequirement>addRequirement(MemoryRequirement.createR7_6_1__H_3_1());
- }
public FrameDropRequirement addR5_3__H_1_1_R() {
return this.addRequirement(FrameDropRequirement.createR5_3__H_1_1_R());
@@ -677,12 +612,12 @@
return this.addRequirement(CodecInitLatencyRequirement.createR5_1__H_1_8());
}
- public CodecInitLatencyRequirement addR5_1__H_1_TBD1() {
- return this.addRequirement(CodecInitLatencyRequirement.createR5_1__H_1_TBD1());
+ public CodecInitLatencyRequirement addR5_1__H_1_12() {
+ return this.addRequirement(CodecInitLatencyRequirement.createR5_1__H_1_12());
}
- public CodecInitLatencyRequirement addR5_1__H_1_TBD2() {
- return this.addRequirement(CodecInitLatencyRequirement.createR5_1__H_1_TBD2());
+ public CodecInitLatencyRequirement addR5_1__H_1_13() {
+ return this.addRequirement(CodecInitLatencyRequirement.createR5_1__H_1_13());
}
public VideoCodecRequirement addR4k60HwEncoder() {
diff --git a/tests/mediapc/common/src/android/mediapc/cts/common/RequirementConstants.java b/tests/mediapc/common/src/android/mediapc/cts/common/RequirementConstants.java
index 0de6a99..9e9990a 100644
--- a/tests/mediapc/common/src/android/mediapc/cts/common/RequirementConstants.java
+++ b/tests/mediapc/common/src/android/mediapc/cts/common/RequirementConstants.java
@@ -35,9 +35,18 @@
public static final String R5_1__H_1_6 = "r5_1__h_1_6"; // 5.1/H-1-6
public static final String R5_1__H_1_7 = "r5_1__h_1_7"; // 5.1/H-1-7
public static final String R5_1__H_1_8 = "r5_1__h_1_8"; // 5.1/H-1-8
+ public static final String R5_1__H_1_9 = "r5_1__h_1_9"; // 5.1/H-1-9
+ public static final String R5_1__H_1_10 = "r5_1__h_1_10"; // 5.1/H-1-10
+ public static final String R5_1__H_1_11 = "r5_1__h_1_11"; // 5.1/H-1-11
+ public static final String R5_1__H_1_12 = "r5_1__h_1_12"; // 5.1/H-1-12
+ public static final String R5_1__H_1_13 = "r5_1__h_1_13"; // 5.1/H-1-13
+ public static final String R5_1__H_1_14 = "r5_1__h_1_14"; // 5.1/H-1-14
+ public static final String R5_1__H_1_15 = "r5_1__h_1_15"; // 5.1/H-1-16
+ public static final String R5_1__H_1_16 = "r5_1__h_1_16"; // 5.1/H-1-16
public static final String R5_3__H_1_1 = "r5_3__h_1_1"; // 5.3/H-1-1
public static final String R5_3__H_1_2 = "r5_3__h_1_2"; // 5.3/H-1-2
public static final String R5_6__H_1_1 = "r5_6__h_1_1"; // 5.6/H-1-1
+ public static final String R5_7__H_1_1 = "r5_7__h_1_1"; // 5.7/H-1-1
public static final String R7_5__H_1_1 = "r7_5__h_1_1"; // 7.5/H-1-1
public static final String R7_5__H_1_2 = "r7_5__h_1_2"; // 7.5/H-1-2
public static final String R7_5__H_1_3 = "r7_5__h_1_3"; // 7.5/H-1-3
diff --git a/tests/mediapc/src/android/mediapc/cts/CodecInitializationLatencyTest.java b/tests/mediapc/src/android/mediapc/cts/CodecInitializationLatencyTest.java
index 0379090..33b6664 100644
--- a/tests/mediapc/src/android/mediapc/cts/CodecInitializationLatencyTest.java
+++ b/tests/mediapc/src/android/mediapc/cts/CodecInitializationLatencyTest.java
@@ -269,7 +269,6 @@
}
}
- // TODO(b/218771970): Add cdd annotation
/**
* This test validates the initialization latency (time for codec create + configure) for
* audio and hw video codecs.
@@ -282,7 +281,9 @@
@Test(timeout = CodecTestBase.PER_TEST_TIMEOUT_LARGE_TEST_MS)
@CddTest(requirements = {
"2.2.7.1/5.1/H-1-7",
- "2.2.7.1/5.1/H-1-8",})
+ "2.2.7.1/5.1/H-1-8",
+ "2.2.7.1/5.1/H-1-12",
+ "2.2.7.1/5.1/H-1-13",})
public void testInitializationLatency() throws Exception {
MediaCodec codec = MediaCodec.createByCodecName(mCodecName);
boolean isEncoder = codec.getCodecInfo().isEncoder();
@@ -347,7 +348,7 @@
PerformanceClassEvaluator pce = new PerformanceClassEvaluator(this.mTestName);
PerformanceClassEvaluator.CodecInitLatencyRequirement r5_1__H_1_Latency =
isEncoder ? isAudio ? pce.addR5_1__H_1_8() : pce.addR5_1__H_1_7()
- : isAudio ? pce.addR5_1__H_1_TBD2() : pce.addR5_1__H_1_TBD1();
+ : isAudio ? pce.addR5_1__H_1_13() : pce.addR5_1__H_1_12();
r5_1__H_1_Latency.setCodecInitLatencyMs(initializationLatency);
diff --git a/tests/mediapc/src/android/mediapc/cts/PerformanceClassTest.java b/tests/mediapc/src/android/mediapc/cts/PerformanceClassTest.java
index 24b22ea..402a956 100644
--- a/tests/mediapc/src/android/mediapc/cts/PerformanceClassTest.java
+++ b/tests/mediapc/src/android/mediapc/cts/PerformanceClassTest.java
@@ -190,19 +190,15 @@
PerformanceClassEvaluator.DensityRequirement r7_1_1_3__h_1_1 = pce.addR7_1_1_3__H_1_1();
PerformanceClassEvaluator.ResolutionRequirement r7_1_1_1__h_2_1 = pce.addR7_1_1_1__H_2_1();
PerformanceClassEvaluator.DensityRequirement r7_1_1_3__h_2_1 = pce.addR7_1_1_3__H_2_1();
- PerformanceClassEvaluator.ResolutionRequirement r7_1_1_1__tbd1 = pce.addR7_1_1_1__TBD1();
- PerformanceClassEvaluator.DensityRequirement r7_1_1_3__tbd2 = pce.addR7_1_1_3__TBD2();
r7_1_1_1__h_1_1.setLongResolution(longPix);
r7_1_1_1__h_2_1.setLongResolution(longPix);
- r7_1_1_1__tbd1.setLongResolution(longPix);
+
r7_1_1_1__h_1_1.setShortResolution(shortPix);
r7_1_1_1__h_2_1.setShortResolution(shortPix);
- r7_1_1_1__tbd1.setShortResolution(shortPix);
r7_1_1_3__h_1_1.setDisplayDensity(density);
r7_1_1_3__h_2_1.setDisplayDensity(density);
- r7_1_1_3__tbd2.setDisplayDensity(density);
pce.submitAndCheck();
}
@@ -210,8 +206,7 @@
@Test
@CddTest(requirements={
"2.2.7.3/7.6.1/H-1-1",
- "2.2.7.3/7.6.1/H-2-1",
- "2.2.7.3/7.6.1/H-3-1"})
+ "2.2.7.3/7.6.1/H-2-1",})
public void testMinimumMemory() {
Context context = InstrumentationRegistry.getInstrumentation().getContext();
@@ -224,11 +219,9 @@
PerformanceClassEvaluator pce = new PerformanceClassEvaluator(this.mTestName);
PerformanceClassEvaluator.MemoryRequirement r7_6_1_h_1_1 = pce.addR7_6_1__H_1_1();
PerformanceClassEvaluator.MemoryRequirement r7_6_1_h_2_1 = pce.addR7_6_1__H_2_1();
- PerformanceClassEvaluator.MemoryRequirement r7_6_1_h_3_1 = pce.addR7_6_1__H_3_1();
r7_6_1_h_1_1.setPhysicalMemory(totalMemoryMb);
r7_6_1_h_2_1.setPhysicalMemory(totalMemoryMb);
- r7_6_1_h_3_1.setPhysicalMemory(totalMemoryMb);
pce.submitAndCheck();
}
diff --git a/tests/mediapc/src/android/mediapc/cts/VideoCodecRequirementsTest.java b/tests/mediapc/src/android/mediapc/cts/VideoCodecRequirementsTest.java
index 4a9d39f..bbe26dc 100644
--- a/tests/mediapc/src/android/mediapc/cts/VideoCodecRequirementsTest.java
+++ b/tests/mediapc/src/android/mediapc/cts/VideoCodecRequirementsTest.java
@@ -29,6 +29,7 @@
import android.mediapc.cts.common.PerformanceClassEvaluator;
import android.util.Log;
import androidx.test.filters.LargeTest;
+import com.android.compatibility.common.util.CddTest;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
@@ -78,7 +79,7 @@
*/
@LargeTest
@Test(timeout = CodecTestBase.PER_TEST_TIMEOUT_LARGE_TEST_MS)
- // TODO(b/218771970) Add @CddTest annotation
+ @CddTest(requirement = "2.2.7.1/5.1/H-1-14")
public void testAV1HwDecoderRequirements() throws Exception {
MediaFormat format = MediaFormat.createVideoFormat(MIMETYPE_VIDEO_AV1, 1920, 1080);
format.setInteger(MediaFormat.KEY_FRAME_RATE, 60);
@@ -107,7 +108,7 @@
*/
@LargeTest
@Test(timeout = CodecTestBase.PER_TEST_TIMEOUT_LARGE_TEST_MS)
- // TODO(b/218771970) Add @CddTest annotation
+ @CddTest(requirement = "2.2.7.1/5.1/H-1-15")
public void test4k60Decoder() throws IOException {
Set<String> decoderSet = get4k60HwCodecSet(false);
@@ -123,7 +124,7 @@
*/
@LargeTest
@Test(timeout = CodecTestBase.PER_TEST_TIMEOUT_LARGE_TEST_MS)
- // TODO(b/218771970) Add @CddTest annotation
+ @CddTest(requirement = "2.2.7.1/5.1/H-1-16")
public void test4k60Encoder() throws IOException {
Set<String> encoderSet = get4k60HwCodecSet(true);