diff options
Diffstat (limited to 'tests/mediapc/src/android/mediapc/cts/MultiEncoderPerfTest.java')
-rw-r--r-- | tests/mediapc/src/android/mediapc/cts/MultiEncoderPerfTest.java | 46 |
1 files changed, 22 insertions, 24 deletions
diff --git a/tests/mediapc/src/android/mediapc/cts/MultiEncoderPerfTest.java b/tests/mediapc/src/android/mediapc/cts/MultiEncoderPerfTest.java index 28c7fbd9307..66afa892425 100644 --- a/tests/mediapc/src/android/mediapc/cts/MultiEncoderPerfTest.java +++ b/tests/mediapc/src/android/mediapc/cts/MultiEncoderPerfTest.java @@ -16,24 +16,19 @@ package android.mediapc.cts; -import static org.junit.Assert.assertTrue; - import android.media.MediaFormat; +import android.mediapc.cts.common.PerformanceClassEvaluator; import android.mediapc.cts.common.Utils; -import android.os.Build; -import android.util.Log; import android.util.Pair; import androidx.test.filters.LargeTest; -import androidx.test.platform.app.InstrumentationRegistry; import com.android.compatibility.common.util.CddTest; -import com.android.compatibility.common.util.DeviceReportLog; -import com.android.compatibility.common.util.ResultType; -import com.android.compatibility.common.util.ResultUnit; import org.junit.Assume; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.TestName; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; @@ -62,6 +57,9 @@ public class MultiEncoderPerfTest extends MultiCodecPerfTestBase { mEncoderName = encoderName; } + @Rule + public final TestName mTestName = new TestName(); + // Returns the params list with the mime and their hardware encoders in // both sync and async modes. // Parameters {0}_{2}_{3} -- Mime_EncoderName_isAsync @@ -90,7 +88,7 @@ public class MultiEncoderPerfTest extends MultiCodecPerfTestBase { Assume.assumeTrue(Utils.isSPerfClass() || Utils.isRPerfClass() || !Utils.isPerfClass()); boolean hasVP9 = mMime.equals(MediaFormat.MIMETYPE_VIDEO_VP9); - int requiredMinInstances = getRequiredMinConcurrentInstances(hasVP9); + int requiredMinInstances = getRequiredMinConcurrentInstances720p(hasVP9); testCodec(720, 1280, 4000000, requiredMinInstances); } @@ -111,7 +109,7 @@ public class MultiEncoderPerfTest extends MultiCodecPerfTestBase { ArrayList<Pair<String, String>> mimeEncoderPairs = new ArrayList<>(); mimeEncoderPairs.add(Pair.create(mMime, mEncoderName)); int maxInstances = checkAndGetMaxSupportedInstancesForCodecCombinations(height, width, - mimeEncoderPairs); + mimeEncoderPairs, requiredMinInstances); double achievedFrameRate = 0.0; if (maxInstances >= requiredMinInstances) { ExecutorService pool = Executors.newFixedThreadPool(maxInstances); @@ -124,22 +122,22 @@ public class MultiEncoderPerfTest extends MultiCodecPerfTestBase { achievedFrameRate += result.get(); } } + PerformanceClassEvaluator pce = new PerformanceClassEvaluator(this.mTestName); + PerformanceClassEvaluator.ConcurrentCodecRequirement r5_1__H_1_3; + PerformanceClassEvaluator.ConcurrentCodecRequirement r5_1__H_1_4; // Achieved frame rate is not compared as this test runs in byte buffer mode. - if (Utils.isPerfClass()) { - assertTrue("Encoder " + mEncoderName + " unable to support minimum concurrent " + - "instances. act/exp: " + maxInstances + "/" + requiredMinInstances, - maxInstances >= requiredMinInstances); - Log.v(LOG_TAG, "Achieved fps: " + achievedFrameRate + - "\nAchieved frame rate is not compared as this test runs in byte buffer mode"); + if (height >= 1080) { + r5_1__H_1_3 = pce.addR5_1__H_1_3_1080p(); + r5_1__H_1_4 = pce.addR5_1__H_1_4_1080p(); + r5_1__H_1_3.setConcurrentInstances(maxInstances); + r5_1__H_1_4.setConcurrentFps(achievedFrameRate); } else { - int pc = maxInstances >= requiredMinInstances ? Build.VERSION_CODES.R : 0; - DeviceReportLog log = new DeviceReportLog("MediaPerformanceClassLogs", - "MultiEncoderPerf_" + mEncoderName); - log.addValue("encoder", mMime + "_" + mEncoderName, ResultType.NEUTRAL, - ResultUnit.NONE); - log.setSummary("CDD 2.2.7.1/5.1/H-1-3,H-1-4 performance_class", pc, ResultType.NEUTRAL, - ResultUnit.NONE); - log.submit(InstrumentationRegistry.getInstrumentation()); + r5_1__H_1_3 = pce.addR5_1__H_1_3_720p(mMime, mMime, height); + r5_1__H_1_4 = pce.addR5_1__H_1_4_720p(); + r5_1__H_1_3.setConcurrentInstances(maxInstances); + r5_1__H_1_4.setConcurrentFps(achievedFrameRate); } + + pce.submitAndCheck(); } } |