diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/HdrCapabilitiesUtil.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/HdrCapabilitiesUtil.java index fa1a78228c..e5eb9799e9 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/HdrCapabilitiesUtil.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/HdrCapabilitiesUtil.java @@ -38,26 +38,24 @@ public final class HdrCapabilitiesUtil { private static final String SKIP_REASON_NO_YUV = "Device lacks YUV extension support."; /** - * Returns whether the test should be skipped because the device is incapable of tone-mapping the - * {@code inputFormat} using OpenGL. + * Assumes that the device supports OpenGL tone-mapping for the {@code inputFormat}. * - *

If the test should be skipped, logs the reason for skipping. + * @throws AssumptionViolatedException if the device does not support OpenGL tone-mapping. */ - public static boolean skipAndLogIfOpenGlToneMappingUnsupported(String testId, Format inputFormat) + public static void assumeDeviceSupportsOpenGlToneMapping(String testId, Format inputFormat) throws JSONException, IOException, MediaCodecUtil.DecoderQueryException { Context context = getApplicationContext(); if (Util.SDK_INT < 29) { recordTestSkipped(context, testId, SKIP_REASON_NO_OPENGL_UNDER_API_29); - return true; + throw new AssumptionViolatedException(SKIP_REASON_NO_OPENGL_UNDER_API_29); } if (!GlUtil.isYuvTargetExtensionSupported()) { recordTestSkipped(context, testId, SKIP_REASON_NO_YUV); - return true; + throw new AssumptionViolatedException(SKIP_REASON_NO_YUV); } if (skipAndLogIfFormatsUnsupported(context, testId, inputFormat, /* outputFormat= */ null)) { - return true; + throw new AssumptionViolatedException("Input format is unsupported: " + inputFormat); } - return false; } /** diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/ToneMapHdrToSdrUsingOpenGlPixelTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/ToneMapHdrToSdrUsingOpenGlPixelTest.java index eb52060f3f..5308fe462f 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/ToneMapHdrToSdrUsingOpenGlPixelTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/ToneMapHdrToSdrUsingOpenGlPixelTest.java @@ -19,7 +19,7 @@ import static androidx.media3.common.MimeTypes.VIDEO_H265; import static androidx.media3.test.utils.BitmapPixelTestUtil.getBitmapAveragePixelAbsoluteDifferenceArgb8888; import static androidx.media3.test.utils.BitmapPixelTestUtil.readBitmap; import static androidx.media3.transformer.AndroidTestUtil.recordTestSkipped; -import static androidx.media3.transformer.mh.HdrCapabilitiesUtil.skipAndLogIfOpenGlToneMappingUnsupported; +import static androidx.media3.transformer.mh.HdrCapabilitiesUtil.assumeDeviceSupportsOpenGlToneMapping; import static androidx.media3.transformer.mh.UnoptimizedGlEffect.NO_OP_EFFECT; import static androidx.test.core.app.ApplicationProvider.getApplicationContext; import static com.google.common.truth.Truth.assertThat; @@ -137,9 +137,7 @@ public final class ToneMapHdrToSdrUsingOpenGlPixelTest { @Test public void toneMap_hlgFrame_matchesGoldenFile() throws Exception { - if (skipAndLogIfOpenGlToneMappingUnsupported(testId, HLG_ASSET_FORMAT)) { - return; - } + assumeDeviceSupportsOpenGlToneMapping(testId, HLG_ASSET_FORMAT); videoFrameProcessorTestRunner = getDefaultFrameProcessorTestRunnerBuilder(testId) .setVideoAssetPath(HLG_ASSET_STRING) @@ -174,9 +172,7 @@ public final class ToneMapHdrToSdrUsingOpenGlPixelTest { @Test public void toneMapWithNoOpEffect_hlgFrame_matchesGoldenFile() throws Exception { - if (skipAndLogIfOpenGlToneMappingUnsupported(testId, HLG_ASSET_FORMAT)) { - return; - } + assumeDeviceSupportsOpenGlToneMapping(testId, HLG_ASSET_FORMAT); videoFrameProcessorTestRunner = getDefaultFrameProcessorTestRunnerBuilder(testId) .setVideoAssetPath(HLG_ASSET_STRING) @@ -212,9 +208,7 @@ public final class ToneMapHdrToSdrUsingOpenGlPixelTest { @Test public void toneMap_pqFrame_matchesGoldenFile() throws Exception { - if (skipAndLogIfOpenGlToneMappingUnsupported(testId, PQ_ASSET_FORMAT)) { - return; - } + assumeDeviceSupportsOpenGlToneMapping(testId, PQ_ASSET_FORMAT); videoFrameProcessorTestRunner = getDefaultFrameProcessorTestRunnerBuilder(testId) @@ -250,9 +244,7 @@ public final class ToneMapHdrToSdrUsingOpenGlPixelTest { @Test public void toneMapWithNoOpEffect_pqFrame_matchesGoldenFile() throws Exception { - if (skipAndLogIfOpenGlToneMappingUnsupported(testId, PQ_ASSET_FORMAT)) { - return; - } + assumeDeviceSupportsOpenGlToneMapping(testId, PQ_ASSET_FORMAT); videoFrameProcessorTestRunner = getDefaultFrameProcessorTestRunnerBuilder(testId) diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/ToneMapHdrToSdrUsingOpenGlTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/ToneMapHdrToSdrUsingOpenGlTest.java index d169d85c7d..2f5de5564f 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/ToneMapHdrToSdrUsingOpenGlTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/ToneMapHdrToSdrUsingOpenGlTest.java @@ -22,7 +22,7 @@ import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_720P_4_SECON import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_720P_4_SECOND_HDR10_FORMAT; import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_DOLBY_VISION_HDR; import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_DOLBY_VISION_HDR_FORMAT; -import static androidx.media3.transformer.mh.HdrCapabilitiesUtil.skipAndLogIfOpenGlToneMappingUnsupported; +import static androidx.media3.transformer.mh.HdrCapabilitiesUtil.assumeDeviceSupportsOpenGlToneMapping; import static com.google.common.truth.Truth.assertThat; import android.content.Context; @@ -60,30 +60,24 @@ public class ToneMapHdrToSdrUsingOpenGlTest { @Test public void export_toneMap_hlg10File_toneMaps() throws Exception { - if (skipAndLogIfOpenGlToneMappingUnsupported( - testId, /* inputFormat= */ MP4_ASSET_1080P_5_SECOND_HLG10_FORMAT)) { - return; - } + assumeDeviceSupportsOpenGlToneMapping( + testId, /* inputFormat= */ MP4_ASSET_1080P_5_SECOND_HLG10_FORMAT); runTransformerWithOpenGlToneMapping(testId, MP4_ASSET_1080P_5_SECOND_HLG10); } @Test public void export_toneMap_hdr10File_toneMaps() throws Exception { - if (skipAndLogIfOpenGlToneMappingUnsupported( - testId, /* inputFormat= */ MP4_ASSET_720P_4_SECOND_HDR10_FORMAT)) { - return; - } + assumeDeviceSupportsOpenGlToneMapping( + testId, /* inputFormat= */ MP4_ASSET_720P_4_SECOND_HDR10_FORMAT); runTransformerWithOpenGlToneMapping(testId, MP4_ASSET_720P_4_SECOND_HDR10); } @Test public void export_toneMap_dolbyVisionFile_toneMaps() throws Exception { - if (skipAndLogIfOpenGlToneMappingUnsupported( - testId, /* inputFormat= */ MP4_ASSET_DOLBY_VISION_HDR_FORMAT)) { - return; - } + assumeDeviceSupportsOpenGlToneMapping( + testId, /* inputFormat= */ MP4_ASSET_DOLBY_VISION_HDR_FORMAT); runTransformerWithOpenGlToneMapping(testId, MP4_ASSET_DOLBY_VISION_HDR); } diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformerSequenceEffectTestWithHdr.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformerSequenceEffectTestWithHdr.java index 31e6bc8392..a973d6f78b 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformerSequenceEffectTestWithHdr.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformerSequenceEffectTestWithHdr.java @@ -28,7 +28,7 @@ import static androidx.media3.transformer.SequenceEffectTestUtil.assertBitmapsMa import static androidx.media3.transformer.SequenceEffectTestUtil.clippedVideo; import static androidx.media3.transformer.SequenceEffectTestUtil.createComposition; import static androidx.media3.transformer.mh.HdrCapabilitiesUtil.assumeDeviceSupportsHdrEditing; -import static androidx.media3.transformer.mh.HdrCapabilitiesUtil.skipAndLogIfOpenGlToneMappingUnsupported; +import static androidx.media3.transformer.mh.HdrCapabilitiesUtil.assumeDeviceSupportsOpenGlToneMapping; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assume.assumeFalse; @@ -80,9 +80,8 @@ public final class TransformerSequenceEffectTestWithHdr { @Test @RequiresNonNull("testId") public void export_withSdrThenHdr() throws Exception { - assumeFalse( - skipAndLogIfOpenGlToneMappingUnsupported( - testId, /* inputFormat= */ MP4_ASSET_720P_4_SECOND_HDR10_FORMAT)); + assumeDeviceSupportsOpenGlToneMapping( + testId, /* inputFormat= */ MP4_ASSET_720P_4_SECOND_HDR10_FORMAT); Composition composition = createComposition( Presentation.createForHeight(EXPORT_HEIGHT), @@ -157,9 +156,8 @@ public final class TransformerSequenceEffectTestWithHdr { @RequiresNonNull("testId") public void export_withHdrThenSdr_whenHdrEditingUnsupported() throws Exception { assumeDeviceSupportsHdrEditing(testId, MP4_ASSET_720P_4_SECOND_HDR10_FORMAT); - assumeFalse( - skipAndLogIfOpenGlToneMappingUnsupported( - testId, /* inputFormat= */ MP4_ASSET_720P_4_SECOND_HDR10_FORMAT)); + assumeDeviceSupportsOpenGlToneMapping( + testId, /* inputFormat= */ MP4_ASSET_720P_4_SECOND_HDR10_FORMAT); assumeFalse( skipAndLogIfFormatsUnsupported( context,