diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2022-06-16 17:16:12 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2022-06-16 17:16:12 +0000 |
commit | 36dbac9f8e72e2ac48bda08a8e292be96ff0a6e8 (patch) | |
tree | 6a3d3fc5b0acd5d4439b544e3f78da9be8c10a8c | |
parent | 30283e66855562eb91dd5eac089505b4ae182eda (diff) | |
parent | 72d9f4fabe24d81dfceae09c9c6426a5194b9d9c (diff) | |
download | cts-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.java | 163 |
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); |