From c2615a679f2aa265ea16ffe97970fe68fe9d7428 Mon Sep 17 00:00:00 2001 From: sheenachhabra Date: Fri, 21 Jul 2023 17:24:07 +0100 Subject: [PATCH] Skip tests if device needs disable 8k workaround PiperOrigin-RevId: 549967326 --- .../java/androidx/media3/transformer/AndroidTestUtil.java | 4 +++- .../androidx/media3/transformer/DefaultDecoderFactory.java | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java index 0508b38731..93c522a35a 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java @@ -21,6 +21,7 @@ import static androidx.media3.common.MimeTypes.VIDEO_H264; import static androidx.media3.common.MimeTypes.VIDEO_H265; import static androidx.media3.common.util.Assertions.checkNotNull; import static androidx.media3.common.util.Assertions.checkState; +import static androidx.media3.transformer.DefaultDecoderFactory.deviceNeedsDisableDecoding8kWorkaround; import android.content.Context; import android.graphics.Bitmap; @@ -853,7 +854,8 @@ public final class AndroidTestUtil { MediaFormatUtil.maybeSetInteger( mediaFormat, MediaFormat.KEY_PROFILE, codecProfileAndLevel.first); } - return EncoderUtil.findCodecForFormat(mediaFormat, /* isDecoder= */ true) != null; + return EncoderUtil.findCodecForFormat(mediaFormat, /* isDecoder= */ true) != null + && !deviceNeedsDisableDecoding8kWorkaround(format); } private static boolean canEncode(Format format) { diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultDecoderFactory.java b/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultDecoderFactory.java index 2165207d2a..e5f7301423 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultDecoderFactory.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultDecoderFactory.java @@ -114,7 +114,7 @@ public final class DefaultDecoderFactory implements Codec.DecoderFactory { format, /* reason= */ "Decoding HDR is not supported on this device."); } } - if (deviceNeedsDisable8kWorkaround(format)) { + if (deviceNeedsDisableDecoding8kWorkaround(format)) { throw createExportException( format, /* reason= */ "Decoding 8k is not supported on this device."); } @@ -159,7 +159,8 @@ public final class DefaultDecoderFactory implements Codec.DecoderFactory { context, format, mediaFormat, mediaCodecName, /* isDecoder= */ true, outputSurface); } - private static boolean deviceNeedsDisable8kWorkaround(Format format) { + @VisibleForTesting + public static boolean deviceNeedsDisableDecoding8kWorkaround(Format format) { // Fixed on API 31+. See http://b/278234847#comment40 for more information. return SDK_INT < 31 && format.width >= 7680