CodecDecoderSurfaceTest: Don't test P010 when vendor version is under T
P010 is implemented both in framework and vendor from T. Test P010 only
when both framework and vendor are T or above.
Bug: 235610661
Change-Id: Id96aee44d8ddfabeab2c76b19d5bb50fd8c039fd
diff --git a/tests/media/src/android/mediav2/cts/CodecDecoderSurfaceTest.java b/tests/media/src/android/mediav2/cts/CodecDecoderSurfaceTest.java
index e8243f8..f03fa90 100644
--- a/tests/media/src/android/mediav2/cts/CodecDecoderSurfaceTest.java
+++ b/tests/media/src/android/mediav2/cts/CodecDecoderSurfaceTest.java
@@ -198,18 +198,20 @@
@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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
@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 @@
@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);