summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2022-06-16 17:16:12 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2022-06-16 17:16:12 +0000
commit36dbac9f8e72e2ac48bda08a8e292be96ff0a6e8 (patch)
tree6a3d3fc5b0acd5d4439b544e3f78da9be8c10a8c
parent30283e66855562eb91dd5eac089505b4ae182eda (diff)
parent72d9f4fabe24d81dfceae09c9c6426a5194b9d9c (diff)
downloadcts-36dbac9f8e72e2ac48bda08a8e292be96ff0a6e8.tar.gz
Merge "CodecDecoderSurfaceTest: Don't test P010 when vendor version is under T" into tm-dev
-rw-r--r--tests/media/src/android/mediav2/cts/CodecDecoderSurfaceTest.java163
1 files changed, 99 insertions, 64 deletions
diff --git a/tests/media/src/android/mediav2/cts/CodecDecoderSurfaceTest.java b/tests/media/src/android/mediav2/cts/CodecDecoderSurfaceTest.java
index e8243f8aeb2..f03fa90bb0d 100644
--- a/tests/media/src/android/mediav2/cts/CodecDecoderSurfaceTest.java
+++ b/tests/media/src/android/mediav2/cts/CodecDecoderSurfaceTest.java
@@ -198,18 +198,20 @@ public class CodecDecoderSurfaceTest extends CodecDecoderTestBase {
@Test(timeout = PER_TEST_TIMEOUT_LARGE_TEST_MS)
public void testSimpleDecodeToSurface() throws IOException, InterruptedException {
boolean[] boolStates = {true, false};
- OutputManager ref;
+ OutputManager ref = null;
OutputManager test = new OutputManager();
final long pts = 0;
final int mode = MediaExtractor.SEEK_TO_CLOSEST_SYNC;
{
- decodeAndSavePts(mTestFile, mCodecName, pts, mode, Integer.MAX_VALUE);
- ref = mOutputBuff;
- // TODO: Timestamps for deinterlaced content are under review. (E.g. can decoders
- // produce multiple progressive frames?) For now, do not verify timestamps.
- if (!mIsInterlaced) {
- assertTrue("input pts list and output pts list are not identical",
- ref.isOutPtsListIdenticalToInpPtsList(false));
+ if (!mSkipChecksumVerification || VNDK_IS_AT_LEAST_T) {
+ decodeAndSavePts(mTestFile, mCodecName, pts, mode, Integer.MAX_VALUE);
+ ref = mOutputBuff;
+ // TODO: Timestamps for deinterlaced content are under review. (E.g. can decoders
+ // produce multiple progressive frames?) For now, do not verify timestamps.
+ if (!mIsInterlaced) {
+ assertTrue("input pts list and output pts list are not identical",
+ ref.isOutPtsListIdenticalToInpPtsList(false));
+ }
}
MediaFormat format = setUpSource(mTestFile);
mCodec = MediaCodec.createByCodecName(mCodecName);
@@ -231,12 +233,15 @@ public class CodecDecoderSurfaceTest extends CodecDecoderTestBase {
assertTrue(log + " unexpected error", !mAsyncHandle.hasSeenError());
assertTrue(log + "no input sent", 0 != mInputCount);
assertTrue(log + "output received", 0 != mOutputCount);
- // TODO: Timestamps for deinterlaced content are under review. (E.g. can decoders
- // produce multiple progressive frames?) For now, do not verify timestamps.
- if (mIsInterlaced) {
- assertTrue(log + "decoder output is flaky", ref.equalsInterlaced(test));
- } else {
- assertTrue(log + "decoder output is flaky", ref.equals(test));
+ if (ref != null) {
+ // TODO: Timestamps for deinterlaced content are under review.
+ // (E.g. can decoders produce multiple progressive frames?)
+ // For now, do not verify timestamps.
+ if (mIsInterlaced) {
+ assertTrue(log + "decoder output is flaky", ref.equalsInterlaced(test));
+ } else {
+ assertTrue(log + "decoder output is flaky", ref.equals(test));
+ }
}
}
mCodec.release();
@@ -266,13 +271,16 @@ public class CodecDecoderSurfaceTest extends CodecDecoderTestBase {
boolean[] boolStates = {true, false};
OutputManager test = new OutputManager();
{
- decodeAndSavePts(mTestFile, mCodecName, pts, mode, Integer.MAX_VALUE);
- OutputManager ref = mOutputBuff;
- // TODO: Timestamps for deinterlaced content are under review. (E.g. can decoders
- // produce multiple progressive frames?) For now, do not verify timestamps.
- if (!mIsInterlaced) {
- assertTrue("input pts list and output pts list are not identical",
- ref.isOutPtsListIdenticalToInpPtsList(false));
+ OutputManager ref = null;
+ if (!mSkipChecksumVerification || VNDK_IS_AT_LEAST_T) {
+ decodeAndSavePts(mTestFile, mCodecName, pts, mode, Integer.MAX_VALUE);
+ ref = mOutputBuff;
+ // TODO: Timestamps for deinterlaced content are under review. (E.g. can decoders
+ // produce multiple progressive frames?) For now, do not verify timestamps.
+ if (!mIsInterlaced) {
+ assertTrue("input pts list and output pts list are not identical",
+ ref.isOutPtsListIdenticalToInpPtsList(false));
+ }
}
mOutputBuff = test;
setUpSource(mTestFile);
@@ -312,12 +320,15 @@ public class CodecDecoderSurfaceTest extends CodecDecoderTestBase {
assertTrue(log + " unexpected error", !mAsyncHandle.hasSeenError());
assertTrue(log + "no input sent", 0 != mInputCount);
assertTrue(log + "output received", 0 != mOutputCount);
- // TODO: Timestamps for deinterlaced content are under review. (E.g. can decoders
- // produce multiple progressive frames?) For now, do not verify timestamps.
- if (mIsInterlaced) {
- assertTrue(log + "decoder output is flaky", ref.equalsInterlaced(test));
- } else {
- assertTrue(log + "decoder output is flaky", ref.equals(test));
+ if (ref != null) {
+ // TODO: Timestamps for deinterlaced content are under review.
+ // (E.g. can decoders produce multiple progressive frames?)
+ // For now, do not verify timestamps.
+ if (mIsInterlaced) {
+ assertTrue(log + "decoder output is flaky", ref.equalsInterlaced(test));
+ } else {
+ assertTrue(log + "decoder output is flaky", ref.equals(test));
+ }
}
/* test flush in eos state */
@@ -334,12 +345,15 @@ public class CodecDecoderSurfaceTest extends CodecDecoderTestBase {
assertTrue(log + " unexpected error", !mAsyncHandle.hasSeenError());
assertTrue(log + "no input sent", 0 != mInputCount);
assertTrue(log + "output received", 0 != mOutputCount);
- // TODO: Timestamps for deinterlaced content are under review. (E.g. can decoders
- // produce multiple progressive frames?) For now, do not verify timestamps.
- if (mIsInterlaced) {
- assertTrue(log + "decoder output is flaky", ref.equalsInterlaced(test));
- } else {
- assertTrue(log + "decoder output is flaky", ref.equals(test));
+ if (ref != null) {
+ // TODO: Timestamps for deinterlaced content are under review.
+ // (E.g. can decoders produce multiple progressive frames?)
+ // For now, do not verify timestamps.
+ if (mIsInterlaced) {
+ assertTrue(log + "decoder output is flaky", ref.equalsInterlaced(test));
+ } else {
+ assertTrue(log + "decoder output is flaky", ref.equals(test));
+ }
}
}
mCodec.release();
@@ -368,19 +382,24 @@ public class CodecDecoderSurfaceTest extends CodecDecoderTestBase {
boolean[] boolStates = {true, false};
OutputManager test = new OutputManager();
{
- decodeAndSavePts(mTestFile, mCodecName, pts, mode, Integer.MAX_VALUE);
- OutputManager ref = mOutputBuff;
- if (!mIsInterlaced) {
- assertTrue("input pts list and reference pts list are not identical",
- ref.isOutPtsListIdenticalToInpPtsList(false));
- }
- decodeAndSavePts(mReconfigFile, mCodecName, pts, mode, Integer.MAX_VALUE);
- OutputManager configRef = mOutputBuff;
- // TODO: Timestamps for deinterlaced content are under review. (E.g. can decoders
- // produce multiple progressive frames?) For now, do not verify timestamps.
- if (!mIsInterlaced) {
- assertTrue("input pts list and reconfig ref output pts list are not identical",
- configRef.isOutPtsListIdenticalToInpPtsList(false));
+ OutputManager ref = null;
+ OutputManager configRef = null;
+
+ if (!mSkipChecksumVerification || VNDK_IS_AT_LEAST_T) {
+ decodeAndSavePts(mTestFile, mCodecName, pts, mode, Integer.MAX_VALUE);
+ ref = mOutputBuff;
+ if (!mIsInterlaced) {
+ assertTrue("input pts list and reference pts list are not identical",
+ ref.isOutPtsListIdenticalToInpPtsList(false));
+ }
+ decodeAndSavePts(mReconfigFile, mCodecName, pts, mode, Integer.MAX_VALUE);
+ configRef = mOutputBuff;
+ // TODO: Timestamps for deinterlaced content are under review. (E.g. can decoders
+ // produce multiple progressive frames?) For now, do not verify timestamps.
+ if (!mIsInterlaced) {
+ assertTrue("input pts list and reconfig ref output pts list are not identical",
+ configRef.isOutPtsListIdenticalToInpPtsList(false));
+ }
}
mOutputBuff = test;
mCodec = MediaCodec.createByCodecName(mCodecName);
@@ -415,12 +434,15 @@ public class CodecDecoderSurfaceTest extends CodecDecoderTestBase {
assertTrue(log + " unexpected error", !mAsyncHandle.hasSeenError());
assertTrue(log + "no input sent", 0 != mInputCount);
assertTrue(log + "output received", 0 != mOutputCount);
- // TODO: Timestamps for deinterlaced content are under review. (E.g. can decoders
- // produce multiple progressive frames?) For now, do not verify timestamps.
- if (mIsInterlaced) {
- assertTrue(log + "decoder output is flaky", ref.equalsInterlaced(test));
- } else {
- assertTrue(log + "decoder output is flaky", ref.equals(test));
+ if (ref != null) {
+ // TODO: Timestamps for deinterlaced content are under review.
+ // (E.g. can decoders produce multiple progressive frames?)
+ // For now, do not verify timestamps.
+ if (mIsInterlaced) {
+ assertTrue(log + "decoder output is flaky", ref.equalsInterlaced(test));
+ } else {
+ assertTrue(log + "decoder output is flaky", ref.equals(test));
+ }
}
/* test reconfigure codec at eos state */
reConfigureCodec(format, !isAsync, false, false);
@@ -436,12 +458,15 @@ public class CodecDecoderSurfaceTest extends CodecDecoderTestBase {
assertTrue(log + " unexpected error", !mAsyncHandle.hasSeenError());
assertTrue(log + "no input sent", 0 != mInputCount);
assertTrue(log + "output received", 0 != mOutputCount);
- // TODO: Timestamps for deinterlaced content are under review. (E.g. can decoders
- // produce multiple progressive frames?) For now, do not verify timestamps.
- if (mIsInterlaced) {
- assertTrue(log + "decoder output is flaky", ref.equalsInterlaced(test));
- } else {
- assertTrue(log + "decoder output is flaky", ref.equals(test));
+ if (ref != null) {
+ // TODO: Timestamps for deinterlaced content are under review.
+ // (E.g. can decoders produce multiple progressive frames?)
+ // For now, do not verify timestamps.
+ if (mIsInterlaced) {
+ assertTrue(log + "decoder output is flaky", ref.equalsInterlaced(test));
+ } else {
+ assertTrue(log + "decoder output is flaky", ref.equals(test));
+ }
}
mExtractor.release();
@@ -463,12 +488,16 @@ public class CodecDecoderSurfaceTest extends CodecDecoderTestBase {
assertTrue(log + " unexpected error", !mAsyncHandle.hasSeenError());
assertTrue(log + "no input sent", 0 != mInputCount);
assertTrue(log + "output received", 0 != mOutputCount);
- // TODO: Timestamps for deinterlaced content are under review. (E.g. can decoders
- // produce multiple progressive frames?) For now, do not verify timestamps.
- if (mIsInterlaced) {
- assertTrue(log + "decoder output is flaky", configRef.equalsInterlaced(test));
- } else {
- assertTrue(log + "decoder output is flaky", configRef.equals(test));
+ if (configRef != null) {
+ // TODO: Timestamps for deinterlaced content are under review.
+ // (E.g. can decoders produce multiple progressive frames?)
+ // For now, do not verify timestamps.
+ if (mIsInterlaced) {
+ assertTrue(log + "decoder output is flaky",
+ configRef.equalsInterlaced(test));
+ } else {
+ assertTrue(log + "decoder output is flaky", configRef.equals(test));
+ }
}
mExtractor.release();
}
@@ -482,6 +511,9 @@ public class CodecDecoderSurfaceTest extends CodecDecoderTestBase {
@LargeTest
@Test(timeout = PER_TEST_TIMEOUT_LARGE_TEST_MS)
public void testSimpleDecodeToSurfaceNative() throws IOException {
+ if (mSkipChecksumVerification) {
+ Assume.assumeTrue("vendor should be T or higher", VNDK_IS_AT_LEAST_T);
+ }
MediaFormat format = setUpSource(mTestFile);
mExtractor.release();
mActivity.setScreenParams(getWidth(format), getHeight(format), false);
@@ -496,6 +528,9 @@ public class CodecDecoderSurfaceTest extends CodecDecoderTestBase {
@LargeTest
@Test(timeout = PER_TEST_TIMEOUT_LARGE_TEST_MS)
public void testFlushNative() throws IOException {
+ if (mSkipChecksumVerification) {
+ Assume.assumeTrue("vendor should be T or higher", VNDK_IS_AT_LEAST_T);
+ }
MediaFormat format = setUpSource(mTestFile);
mExtractor.release();
mActivity.setScreenParams(getWidth(format), getHeight(format), true);