Set kTimeOutUs to 10ms in 4K byte buffer mode decoding case
Test : run cts -m CtsMediaTestCases -t android.media.cts.DecoderTest#testHEVCDecode30fps3840x2160
Bug:120755244
diff --git a/tests/tests/media/src/android/media/cts/DecoderTest.java b/tests/tests/media/src/android/media/cts/DecoderTest.java
index 2193d33..6192c0f 100755
--- a/tests/tests/media/src/android/media/cts/DecoderTest.java
+++ b/tests/tests/media/src/android/media/cts/DecoderTest.java
@@ -2442,7 +2442,19 @@
// start decode loop
MediaCodec.BufferInfo info = new MediaCodec.BufferInfo();
- final long kTimeOutUs = 5000; // 5ms timeout
+ MediaFormat outFormat = codec.getOutputFormat();
+ long kTimeOutUs = 5000; // 5ms timeout
+ String outMime = format.getString(MediaFormat.KEY_MIME);
+ if ((surface == null) && (outMime != null) && outMime.startsWith("video/")) {
+ int outWidth = outFormat.getInteger(MediaFormat.KEY_WIDTH);
+ int outHeight = outFormat.getInteger(MediaFormat.KEY_HEIGHT);
+ // in the 4K decoding case in byte buffer mode, set kTimeOutUs to 10ms as decode may
+ // involve a memcpy
+ if (outWidth * outHeight >= 8000000) {
+ kTimeOutUs = 10000;
+ }
+ }
+
boolean sawInputEOS = false;
boolean sawOutputEOS = false;
int deadDecoderCounter = 0;