diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/TestUtil.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/TestUtil.java index 21fba35eee..c338868508 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/TestUtil.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/TestUtil.java @@ -375,6 +375,7 @@ public class TestUtil { public static Format retrieveTrackFormat( Context context, String fileUri, @C.TrackType int trackType) throws ExecutionException, InterruptedException { + checkState(new File(fileUri).length() > 0); TrackGroupArray trackGroupArray; trackGroupArray = MetadataRetriever.retrieveMetadata(context, MediaItem.fromUri(fileUri)).get(); for (int i = 0; i < trackGroupArray.length; i++) { diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/ForceEndOfStreamTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/ForceEndOfStreamTest.java index 2b51132011..62a82cba8b 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/ForceEndOfStreamTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/ForceEndOfStreamTest.java @@ -34,6 +34,7 @@ import androidx.media3.common.util.Util; import androidx.media3.decoder.DecoderInputBuffer; import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; +import java.io.File; import java.io.IOException; import java.nio.ByteBuffer; import org.json.JSONException; @@ -81,6 +82,7 @@ public class ForceEndOfStreamTest { assertThat(testResult.analysisException).isNull(); assertThat(testResult.exportResult.videoFrameCount) .isEqualTo(MP4_ASSET_FRAME_COUNT - framesToSkip); + assertThat(new File(testResult.filePath).length()).isGreaterThan(0); } @Test @@ -100,6 +102,7 @@ public class ForceEndOfStreamTest { assertThat(testResult.analysisException).isNull(); assertThat(testResult.exportResult.videoFrameCount).isEqualTo(MP4_ASSET_FRAME_COUNT); + assertThat(new File(testResult.filePath).length()).isGreaterThan(0); } private static boolean skipTestBelowApi29(Context context, String testId) diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java index aa39b99f06..7b5970402c 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java @@ -432,11 +432,7 @@ public class TransformerAndroidTestRunner { // No exceptions raised, export has succeeded. ExportTestResult.Builder testResultBuilder = - new ExportTestResult.Builder( - checkNotNull(exportResultReference.get()) - .buildUpon() - .setFileSizeBytes(outputVideoFile.length()) - .build()) + new ExportTestResult.Builder(checkNotNull(exportResultReference.get())) .setElapsedTimeMs(elapsedTimeMs) .setFallbackDetails(fallbackDetails) .setFilePath(outputVideoFile.getPath()); diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerEndToEndTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerEndToEndTest.java index 4f02c429df..216582b94f 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerEndToEndTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerEndToEndTest.java @@ -94,6 +94,7 @@ import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; +import java.io.File; import java.nio.ByteBuffer; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.junit.Before; @@ -186,6 +187,7 @@ public class TransformerEndToEndTest { // audioSequence duration: ~2s (2 inputs). // loopingAudioSequence: Matches max other sequence (~3.5s) -> 4 inputs of ~1s audio item. assertThat(result.exportResult.processedInputs).hasSize(9); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -226,6 +228,7 @@ public class TransformerEndToEndTest { // loopingAudioSequence: Matches other sequence (~0.5s) and is cut short. assertThat(result.exportResult.durationMs).isAtLeast(450); assertThat(result.exportResult.durationMs).isAtMost(500); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -250,6 +253,7 @@ public class TransformerEndToEndTest { // Expected timestamp of the last frame. assertThat(result.exportResult.durationMs) .isEqualTo((C.MILLIS_PER_SECOND / expectedFrameCount) * (expectedFrameCount - 1)); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -271,6 +275,7 @@ public class TransformerEndToEndTest { // Expected timestamp of the last frame. assertThat(result.exportResult.durationMs) .isEqualTo((C.MILLIS_PER_SECOND / expectedFrameCount) * (expectedFrameCount - 1)); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -325,6 +330,7 @@ public class TransformerEndToEndTest { assertThat(result.exportResult.videoFrameCount).isEqualTo(expectedFrameCount); // Expected timestamp of the last frame. assertThat(result.exportResult.durationMs).isEqualTo(C.MILLIS_PER_SECOND / 2); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -376,6 +382,7 @@ public class TransformerEndToEndTest { assertThat(result.exportResult.videoFrameCount).isEqualTo(expectedFrameCount); // Expected timestamp of the last frame. assertThat(result.exportResult.durationMs).isEqualTo(C.MILLIS_PER_SECOND / 2); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -402,6 +409,7 @@ public class TransformerEndToEndTest { .run(testId, editedMediaItem); assertThat(result.exportResult.videoFrameCount).isEqualTo(expectedFrameCount); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -437,6 +445,7 @@ public class TransformerEndToEndTest { .run(testId, editedMediaItem); assertThat(result.exportResult.videoFrameCount).isEqualTo(expectedFrameCount); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -461,6 +470,7 @@ public class TransformerEndToEndTest { .run(testId, editedMediaItem); assertThat(result.exportResult.durationMs).isEqualTo(expectedDurationMs); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -489,6 +499,7 @@ public class TransformerEndToEndTest { .run(testId, mediaItem); assertThat(result.exportResult.durationMs).isAtMost(clippingEndMs - clippingStartMs); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -565,6 +576,7 @@ public class TransformerEndToEndTest { assertThat(result.exportResult.durationMs).isAtMost(clippingEndMs - clippingStartMs); assertThat(result.exportResult.videoConversionProcess).isEqualTo(CONVERSION_PROCESS_TRANSCODED); assertThat(result.exportResult.audioConversionProcess).isEqualTo(CONVERSION_PROCESS_TRANSMUXED); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -646,6 +658,7 @@ public class TransformerEndToEndTest { assertThat(result.exportResult.durationMs).isAtMost(clippingEndMs - clippingStartMs); assertThat(result.exportResult.videoConversionProcess).isEqualTo(CONVERSION_PROCESS_TRANSCODED); assertThat(result.exportResult.audioConversionProcess).isEqualTo(CONVERSION_PROCESS_TRANSMUXED); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -680,6 +693,7 @@ public class TransformerEndToEndTest { assertThat(result.exportResult.durationMs).isAtMost(1_017); assertThat(result.exportResult.videoConversionProcess).isEqualTo(CONVERSION_PROCESS_TRANSCODED); assertThat(result.exportResult.audioConversionProcess).isEqualTo(CONVERSION_PROCESS_TRANSMUXED); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -714,6 +728,7 @@ public class TransformerEndToEndTest { assertThat(result.exportResult.videoConversionProcess) .isEqualTo(CONVERSION_PROCESS_TRANSMUXED_AND_TRANSCODED); assertThat(result.exportResult.audioConversionProcess).isEqualTo(CONVERSION_PROCESS_TRANSMUXED); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -873,6 +888,7 @@ public class TransformerEndToEndTest { .isEqualTo(OPTIMIZATION_ABANDONED_TRIM_AND_TRANSCODING_TRANSFORMATION_REQUESTED); assertThat(result.exportResult.videoConversionProcess).isEqualTo(CONVERSION_PROCESS_TRANSCODED); assertThat(result.exportResult.audioConversionProcess).isEqualTo(CONVERSION_PROCESS_TRANSMUXED); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -908,6 +924,7 @@ public class TransformerEndToEndTest { // 3 / 0.5 + 3 / 0.75 + 3 + 3 / 1.5 + 3.537 / 2 rounds up to 16_770 assertThat(result.exportResult.durationMs).isAtLeast(16_750); assertThat(result.exportResult.durationMs).isAtMost(16_770); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -949,6 +966,7 @@ public class TransformerEndToEndTest { // 3 / 0.5 + 3 / 0.75 + 3 + 3 / 1.5 + 3.537 / 2 rounds up to 16_770 assertThat(result.exportResult.durationMs).isAtLeast(16_720); assertThat(result.exportResult.durationMs).isAtMost(16_770); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -1003,6 +1021,7 @@ public class TransformerEndToEndTest { .run(testId, composition); assertThat(result.exportResult.durationMs).isEqualTo(10_351L); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -1032,6 +1051,7 @@ public class TransformerEndToEndTest { .run(testId, composition); assertThat(result.exportResult.durationMs).isAtMost(20_720L); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -1078,6 +1098,7 @@ public class TransformerEndToEndTest { assertThat(result.exportResult.videoFrameCount) .isEqualTo(expectedResult.exportResult.videoFrameCount); assertThat(result.exportResult.durationMs).isEqualTo(expectedResult.exportResult.durationMs); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -1117,6 +1138,7 @@ public class TransformerEndToEndTest { // will be seen in result.exportResult.durationMs. assertThat(result.exportResult.durationMs).isAtLeast(2970); assertThat(result.exportResult.durationMs).isAtMost(3020); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -1154,6 +1176,7 @@ public class TransformerEndToEndTest { // will be seen in result.exportResult.durationMs. assertThat(result.exportResult.durationMs).isAtLeast(3100); assertThat(result.exportResult.durationMs).isAtMost(3150); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -1190,6 +1213,7 @@ public class TransformerEndToEndTest { assertThat(result.exportResult.durationMs).isAtLeast(3120); assertThat(result.exportResult.durationMs).isAtMost(3140); assertThat(result.exportResult.videoFrameCount).isEqualTo(95); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -1223,6 +1247,7 @@ public class TransformerEndToEndTest { // will be seen in result.exportResult.durationMs. assertThat(result.exportResult.durationMs).isAtLeast(1000); assertThat(result.exportResult.durationMs).isAtMost(1050); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -1286,6 +1311,7 @@ public class TransformerEndToEndTest { .run(testId, composition); assertThat(result.exportResult.audioConversionProcess).isEqualTo(CONVERSION_PROCESS_TRANSMUXED); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -1306,6 +1332,7 @@ public class TransformerEndToEndTest { .run(testId, composition); assertThat(result.exportResult.audioConversionProcess).isEqualTo(CONVERSION_PROCESS_TRANSCODED); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -1592,6 +1619,7 @@ public class TransformerEndToEndTest { // will be seen in result.exportResult.durationMs. assertThat(result.exportResult.durationMs).isAtLeast(1_360); assertThat(result.exportResult.durationMs).isAtMost(1_400); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } private static AudioProcessor createSonic(float pitch) { diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerMixedInputEndToEndTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerMixedInputEndToEndTest.java index 8547c6c6fa..c5a643ad52 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerMixedInputEndToEndTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerMixedInputEndToEndTest.java @@ -34,6 +34,7 @@ import androidx.media3.effect.Presentation; import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.common.collect.ImmutableList; +import java.io.File; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -84,6 +85,7 @@ public class TransformerMixedInputEndToEndTest { assertThat(result.exportResult.videoFrameCount) .isEqualTo(imageFrameCount + MP4_ASSET_FRAME_COUNT); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -109,6 +111,7 @@ public class TransformerMixedInputEndToEndTest { assertThat(result.exportResult.videoFrameCount) .isEqualTo(imageFrameCount + MP4_ASSET_FRAME_COUNT); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -146,6 +149,7 @@ public class TransformerMixedInputEndToEndTest { assertThat(result.exportResult.videoFrameCount) .isEqualTo(3 * imageFrameCount + 4 * MP4_ASSET_FRAME_COUNT); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -183,6 +187,7 @@ public class TransformerMixedInputEndToEndTest { assertThat(result.exportResult.videoFrameCount) .isEqualTo(4 * imageFrameCount + 3 * MP4_ASSET_FRAME_COUNT); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } /** Creates an {@link EditedMediaItem} with image, with duration of one second. */ diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerMultiSequenceCompositionTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerMultiSequenceCompositionTest.java index b0314831ed..f8124d9f65 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerMultiSequenceCompositionTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerMultiSequenceCompositionTest.java @@ -46,6 +46,7 @@ import androidx.media3.effect.VideoCompositorSettings; import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.common.collect.ImmutableList; +import java.io.File; import java.io.IOException; import java.util.List; import org.junit.Before; @@ -108,8 +109,7 @@ public final class TransformerMultiSequenceCompositionTest { .build() .run(testId, composition); - assertThat(result.filePath).isNotEmpty(); - assertThat(result.exportResult.fileSizeBytes).isGreaterThan(0); + assertThat(new File(result.filePath).length()).isGreaterThan(0); assertBitmapsMatchExpected( extractBitmapsFromVideo(context, checkNotNull(result.filePath)), testId); } @@ -143,8 +143,7 @@ public final class TransformerMultiSequenceCompositionTest { .build() .run(testId, composition); - assertThat(result.filePath).isNotEmpty(); - assertThat(result.exportResult.fileSizeBytes).isGreaterThan(0); + assertThat(new File(result.filePath).length()).isGreaterThan(0); assertBitmapsMatchExpected( extractBitmapsFromVideo(context, checkNotNull(result.filePath)), testId); } @@ -200,8 +199,7 @@ public final class TransformerMultiSequenceCompositionTest { .build() .run(testId, composition); - assertThat(result.filePath).isNotEmpty(); - assertThat(result.exportResult.fileSizeBytes).isGreaterThan(0); + assertThat(new File(result.filePath).length()).isGreaterThan(0); assertBitmapsMatchExpected( extractBitmapsFromVideo(context, checkNotNull(result.filePath)), testId); } diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerPauseResumeTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerPauseResumeTest.java index cecb42b874..34ea085fe3 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerPauseResumeTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerPauseResumeTest.java @@ -42,6 +42,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.platform.app.InstrumentationRegistry; import com.google.common.base.Ascii; import com.google.common.collect.ImmutableList; +import java.io.File; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.List; @@ -97,13 +98,14 @@ public class TransformerPauseResumeTest { "Transformer timed out after " + DEFAULT_TIMEOUT_SECONDS + " seconds."); } InstrumentationRegistry.getInstrumentation().runOnMainSync(blockingTransformer::cancel); - TransformerAndroidTestRunner testRunner = - new TransformerAndroidTestRunner.Builder(context, new Transformer.Builder(context).build()) - .build(); // Resume the export. - ExportResult exportResult = testRunner.run(testId, composition, firstOutputPath).exportResult; + ExportTestResult result = + new TransformerAndroidTestRunner.Builder(context, new Transformer.Builder(context).build()) + .build() + .run(testId, composition, firstOutputPath); + ExportResult exportResult = result.exportResult; assertThat(exportResult.processedInputs).hasSize(4); assertThat(exportResult.videoFrameCount).isEqualTo(MP4_ASSET_FRAME_COUNT); // The first processed media item corresponds to remuxing previous output video. @@ -120,6 +122,7 @@ public class TransformerPauseResumeTest { // The fourth processed media item corresponds to transmuxing processed video. assertThat(exportResult.processedInputs.get(3).audioDecoderName).isNull(); assertThat(exportResult.processedInputs.get(3).videoDecoderName).isNull(); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -146,15 +149,16 @@ public class TransformerPauseResumeTest { }); // Resume the export. - ExportResult exportResult = + ExportTestResult result = new TransformerAndroidTestRunner.Builder(context, transformer) .build() - .run(testId, composition, firstOutputPath) - .exportResult; + .run(testId, composition, firstOutputPath); + ExportResult exportResult = result.exportResult; // The first export did not progress because of the immediate cancellation hence resuming // actually restarts the export. assertThat(exportResult.processedInputs).hasSize(1); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -190,12 +194,12 @@ public class TransformerPauseResumeTest { InstrumentationRegistry.getInstrumentation().runOnMainSync(blockingTransformer::cancel); // Resume the export. - ExportResult exportResultWithResume = + ExportTestResult resultWithResume = new TransformerAndroidTestRunner.Builder(context, new Transformer.Builder(context).build()) .build() - .run(testId, composition, firstOutputPath) - .exportResult; + .run(testId, composition, firstOutputPath); + ExportResult exportResultWithResume = resultWithResume.exportResult; assertThat(exportResultWithResume.processedInputs).hasSize(4); assertThat(exportResultWithResume.audioEncoderName) .isEqualTo(exportResultWithoutResume.audioEncoderName); @@ -208,6 +212,7 @@ public class TransformerPauseResumeTest { int maxDiffExpectedInDurationMs = 2; assertThat(exportResultWithResume.durationMs - exportResultWithoutResume.durationMs) .isLessThan(maxDiffExpectedInDurationMs); + assertThat(new File(resultWithResume.filePath).length()).isGreaterThan(0); } @Test @@ -244,12 +249,12 @@ public class TransformerPauseResumeTest { InstrumentationRegistry.getInstrumentation().runOnMainSync(blockingTransformer::cancel); // Resume the export. - ExportResult exportResultWithResume = + ExportTestResult resultWithResume = new TransformerAndroidTestRunner.Builder(context, new Transformer.Builder(context).build()) .build() - .run(testId, composition, firstOutputPath) - .exportResult; + .run(testId, composition, firstOutputPath); + ExportResult exportResultWithResume = resultWithResume.exportResult; assertThat(exportResultWithResume.processedInputs).hasSize(4); assertThat(exportResultWithResume.audioEncoderName) .isEqualTo(exportResultWithoutResume.audioEncoderName); @@ -260,6 +265,7 @@ public class TransformerPauseResumeTest { int maxDiffExpectedInDurationMs = 2; assertThat(exportResultWithResume.durationMs - exportResultWithoutResume.durationMs) .isLessThan(maxDiffExpectedInDurationMs); + assertThat(new File(resultWithResume.filePath).length()).isGreaterThan(0); } @Test @@ -286,12 +292,13 @@ public class TransformerPauseResumeTest { "Transformer timed out after " + DEFAULT_TIMEOUT_SECONDS + " seconds."); } InstrumentationRegistry.getInstrumentation().runOnMainSync(blockingTransformer::cancel); - TransformerAndroidTestRunner testRunner = + + ExportTestResult result = new TransformerAndroidTestRunner.Builder(context, new Transformer.Builder(context).build()) - .build(); - - ExportResult exportResult = testRunner.run(testId, composition, firstOutputPath).exportResult; + .build() + .run(testId, composition, firstOutputPath); + ExportResult exportResult = result.exportResult; assertThat(exportResult.processedInputs).hasSize(6); int expectedVideoFrameCount = 2 * MP4_ASSET_FRAME_COUNT; assertThat(exportResult.videoFrameCount).isEqualTo(expectedVideoFrameCount); @@ -313,6 +320,7 @@ public class TransformerPauseResumeTest { // The last processed media item corresponds to transmuxing processed video. assertThat(exportResult.processedInputs.get(5).audioDecoderName).isNull(); assertThat(exportResult.processedInputs.get(5).videoDecoderName).isNull(); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -346,13 +354,13 @@ public class TransformerPauseResumeTest { "Transformer timed out after " + DEFAULT_TIMEOUT_SECONDS + " seconds."); } InstrumentationRegistry.getInstrumentation().runOnMainSync(blockingTransformer::cancel); - TransformerAndroidTestRunner testRunner = + + ExportTestResult resultWithResume = new TransformerAndroidTestRunner.Builder(context, new Transformer.Builder(context).build()) - .build(); - - ExportResult exportResultWithResume = - testRunner.run(testId, composition, firstOutputPath).exportResult; + .build() + .run(testId, composition, firstOutputPath); + ExportResult exportResultWithResume = resultWithResume.exportResult; assertThat(exportResultWithResume.processedInputs).hasSize(6); assertThat(exportResultWithResume.audioEncoderName) .isEqualTo(exportResultWithoutResume.audioEncoderName); @@ -363,6 +371,7 @@ public class TransformerPauseResumeTest { int maxDiffExpectedInDurationMs = 2; assertThat(exportResultWithResume.durationMs - exportResultWithoutResume.durationMs) .isLessThan(maxDiffExpectedInDurationMs); + assertThat(new File(resultWithResume.filePath).length()).isGreaterThan(0); } private static Composition buildSingleSequenceComposition( diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerSequenceEffectTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerSequenceEffectTest.java index 890cefe9e1..c14e765890 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerSequenceEffectTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerSequenceEffectTest.java @@ -71,6 +71,7 @@ import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.common.base.Ascii; import com.google.common.collect.ImmutableList; +import java.io.File; import java.io.IOException; import java.util.List; import org.junit.After; @@ -140,8 +141,7 @@ public final class TransformerSequenceEffectTest { .build() .run(testId, composition); - assertThat(result.filePath).isNotEmpty(); - assertThat(result.exportResult.fileSizeBytes).isGreaterThan(0); + assertThat(new File(result.filePath).length()).isGreaterThan(0); assertBitmapsMatchExpectedAndSave( extractBitmapsFromVideo(context, checkNotNull(result.filePath)), testId); } @@ -174,7 +174,7 @@ public final class TransformerSequenceEffectTest { } atLeastOneDecoderSucceeds = true; - assertThat(checkNotNull(result).filePath).isNotNull(); + assertThat(new File(result.filePath).length()).isGreaterThan(0); assertFirstFrameMatchesExpectedPsnrAndSave( context, testId, checkNotNull(result.filePath), PSNR_THRESHOLD_HD); } @@ -214,7 +214,7 @@ public final class TransformerSequenceEffectTest { } atLeastOneDecoderSucceeds = true; - assertThat(checkNotNull(result).filePath).isNotNull(); + assertThat(new File(result.filePath).length()).isGreaterThan(0); assertFirstFrameMatchesExpectedPsnrAndSave( context, testId, checkNotNull(result.filePath), PSNR_THRESHOLD_HD); } @@ -252,7 +252,7 @@ public final class TransformerSequenceEffectTest { } atLeastOneDecoderSucceeds = true; - assertThat(checkNotNull(result).filePath).isNotNull(); + assertThat(new File(result.filePath).length()).isGreaterThan(0); assertFirstFrameMatchesExpectedPsnrAndSave( context, testId, checkNotNull(result.filePath), PSNR_THRESHOLD); } @@ -293,7 +293,7 @@ public final class TransformerSequenceEffectTest { } atLeastOneDecoderSucceeds = true; - assertThat(checkNotNull(result).filePath).isNotNull(); + assertThat(new File(result.filePath).length()).isGreaterThan(0); assertFirstFrameMatchesExpectedPsnrAndSave( context, testId, checkNotNull(result.filePath), PSNR_THRESHOLD_HD); } @@ -335,7 +335,7 @@ public final class TransformerSequenceEffectTest { } atLeastOneDecoderSucceeds = true; - assertThat(checkNotNull(result).filePath).isNotNull(); + assertThat(new File(result.filePath).length()).isGreaterThan(0); assertFirstFrameMatchesExpectedPsnrAndSave( context, testId, checkNotNull(result.filePath), PSNR_THRESHOLD); } @@ -388,7 +388,7 @@ public final class TransformerSequenceEffectTest { .build() .run(testId, composition); - assertThat(checkNotNull(result).filePath).isNotNull(); + assertThat(new File(result.filePath).length()).isGreaterThan(0); // The PSNR threshold was chosen based on: // Pixel 8 with coordinate rounding error during texture sampling, hits PSNR 23.4. With fix -> // 29.5 @@ -438,8 +438,7 @@ public final class TransformerSequenceEffectTest { .build() .run(testId, composition); - assertThat(result.filePath).isNotEmpty(); - assertThat(result.exportResult.fileSizeBytes).isGreaterThan(0); + assertThat(new File(result.filePath).length()).isGreaterThan(0); assertBitmapsMatchExpectedAndSave( extractBitmapsFromVideo(context, checkNotNull(result.filePath)), testId); } @@ -462,8 +461,7 @@ public final class TransformerSequenceEffectTest { .build() .run(testId, composition); - assertThat(result.filePath).isNotEmpty(); - assertThat(result.exportResult.fileSizeBytes).isGreaterThan(0); + assertThat(new File(result.filePath).length()).isGreaterThan(0); assertBitmapsMatchExpectedAndSave( extractBitmapsFromVideo(context, checkNotNull(result.filePath)), testId); } @@ -487,8 +485,7 @@ public final class TransformerSequenceEffectTest { .build() .run(testId, composition); - assertThat(result.filePath).isNotEmpty(); - assertThat(result.exportResult.fileSizeBytes).isGreaterThan(0); + assertThat(new File(result.filePath).length()).isGreaterThan(0); assertBitmapsMatchExpectedAndSave( extractBitmapsFromVideo(context, checkNotNull(result.filePath)), testId); } @@ -513,8 +510,7 @@ public final class TransformerSequenceEffectTest { .build() .run(testId, composition); - assertThat(result.filePath).isNotEmpty(); - assertThat(result.exportResult.fileSizeBytes).isGreaterThan(0); + assertThat(new File(result.filePath).length()).isGreaterThan(0); assertBitmapsMatchExpectedAndSave( extractBitmapsFromVideo(context, checkNotNull(result.filePath)), testId); } @@ -539,8 +535,7 @@ public final class TransformerSequenceEffectTest { .build() .run(testId, composition); - assertThat(result.filePath).isNotEmpty(); - assertThat(result.exportResult.fileSizeBytes).isGreaterThan(0); + assertThat(new File(result.filePath).length()).isGreaterThan(0); assertBitmapsMatchExpectedAndSave( extractBitmapsFromVideo(context, checkNotNull(result.filePath)), testId); } diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerUltraHdrTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerUltraHdrTest.java index fcd72c2776..f9c7363167 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerUltraHdrTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerUltraHdrTest.java @@ -24,7 +24,6 @@ import static androidx.media3.transformer.AndroidTestUtil.assumeFormatsSupported import static androidx.media3.transformer.Composition.HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL; import static androidx.media3.transformer.SequenceEffectTestUtil.NO_EFFECT; import static androidx.media3.transformer.SequenceEffectTestUtil.oneFrameFromImage; -import static com.google.common.truth.Truth.assertThat; import static org.junit.Assume.assumeTrue; import android.content.Context; @@ -94,8 +93,6 @@ public final class TransformerUltraHdrTest { .build() .run(testId, composition); - assertThat(result.filePath).isNotEmpty(); - assertThat(result.exportResult.fileSizeBytes).isGreaterThan(0); assertSdrColors(context, result.filePath); } @@ -116,8 +113,6 @@ public final class TransformerUltraHdrTest { .build() .run(testId, composition); - assertThat(result.filePath).isNotEmpty(); - assertThat(result.exportResult.fileSizeBytes).isGreaterThan(0); assertSdrColors(context, result.filePath); } @@ -139,8 +134,6 @@ public final class TransformerUltraHdrTest { .build() .run(testId, composition); - assertThat(result.filePath).isNotEmpty(); - assertThat(result.exportResult.fileSizeBytes).isGreaterThan(0); assertSdrColors(context, result.filePath); } @@ -155,8 +148,6 @@ public final class TransformerUltraHdrTest { .build() .run(testId, composition); - assertThat(result.filePath).isNotEmpty(); - assertThat(result.exportResult.fileSizeBytes).isGreaterThan(0); assertSdrColors(context, result.filePath); } @@ -173,8 +164,6 @@ public final class TransformerUltraHdrTest { .build() .run(testId, composition); - assertThat(result.filePath).isNotEmpty(); - assertThat(result.exportResult.fileSizeBytes).isGreaterThan(0); assertSdrColors(context, result.filePath); } diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerWithInAppMuxerEndToEndAndroidTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerWithInAppMuxerEndToEndAndroidTest.java index 73aa3ec717..7d1985e24e 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerWithInAppMuxerEndToEndAndroidTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerWithInAppMuxerEndToEndAndroidTest.java @@ -18,6 +18,7 @@ package androidx.media3.transformer; import static androidx.media3.common.util.Assertions.checkNotNull; import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_FORMAT; import static androidx.media3.transformer.AndroidTestUtil.assumeFormatsSupported; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assume.assumeTrue; import android.content.Context; @@ -29,6 +30,7 @@ import androidx.media3.common.audio.ChannelMixingMatrix; import androidx.media3.effect.RgbFilter; import androidx.test.core.app.ApplicationProvider; import com.google.common.collect.ImmutableList; +import java.io.File; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.junit.Test; import org.junit.runner.RunWith; @@ -71,9 +73,12 @@ public class TransformerWithInAppMuxerEndToEndAndroidTest { .setEffects(new Effects(/* audioProcessors= */ ImmutableList.of(), videoEffects)) .build(); - new TransformerAndroidTestRunner.Builder(context, transformer) - .build() - .run(testId, editedMediaItem); + ExportTestResult result = + new TransformerAndroidTestRunner.Builder(context, transformer) + .build() + .run(testId, editedMediaItem); + + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -98,8 +103,11 @@ public class TransformerWithInAppMuxerEndToEndAndroidTest { /* videoEffects= */ ImmutableList.of())) .build(); - new TransformerAndroidTestRunner.Builder(context, transformer) - .build() - .run(testId, editedMediaItem); + ExportTestResult result = + new TransformerAndroidTestRunner.Builder(context, transformer) + .build() + .run(testId, editedMediaItem); + + assertThat(new File(result.filePath).length()).isGreaterThan(0); } } diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/ExportTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/ExportTest.java index 5949d74935..f75dc4cfd3 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/ExportTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/ExportTest.java @@ -63,6 +63,7 @@ import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.common.base.Ascii; import com.google.common.collect.ImmutableList; +import java.io.File; import org.junit.AssumptionViolatedException; import org.junit.Before; import org.junit.Rule; @@ -93,7 +94,6 @@ public class ExportTest { testId, /* inputFormat= */ MP4_ASSET_WITH_INCREASING_TIMESTAMPS_FORMAT, /* outputFormat= */ null); - Transformer transformer = new Transformer.Builder(context) .setEncoderFactory(new ForceEncodeEncoderFactory(context)) @@ -103,10 +103,14 @@ public class ExportTest { boolean skipCalculateSsim = (Util.SDK_INT < 33 && (Util.MODEL.equals("SM-F711U1") || Util.MODEL.equals("SM-F926U1"))) || (Util.SDK_INT == 33 && Util.MODEL.equals("LE2121")); - new TransformerAndroidTestRunner.Builder(context, transformer) - .setRequestCalculateSsim(!skipCalculateSsim) - .build() - .run(testId, mediaItem); + + ExportTestResult result = + new TransformerAndroidTestRunner.Builder(context, transformer) + .setRequestCalculateSsim(!skipCalculateSsim) + .build() + .run(testId, mediaItem); + + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -116,7 +120,13 @@ public class ExportTest { MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_WITH_INCREASING_TIMESTAMPS_URI_STRING)); // No need to calculate SSIM because no decode/encoding, so input frames match output frames. - new TransformerAndroidTestRunner.Builder(context, transformer).build().run(testId, mediaItem); + + ExportTestResult result = + new TransformerAndroidTestRunner.Builder(context, transformer) + .build() + .run(testId, mediaItem); + + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -143,10 +153,14 @@ public class ExportTest { boolean skipCalculateSsim = (Util.SDK_INT < 33 && (Util.MODEL.equals("SM-F711U1") || Util.MODEL.equals("SM-F926U1"))) || (Util.SDK_INT == 33 && Util.MODEL.equals("LE2121")); - new TransformerAndroidTestRunner.Builder(context, transformer) - .setRequestCalculateSsim(!skipCalculateSsim) - .build() - .run(testId, editedMediaItem); + + ExportTestResult result = + new TransformerAndroidTestRunner.Builder(context, transformer) + .setRequestCalculateSsim(!skipCalculateSsim) + .build() + .run(testId, editedMediaItem); + + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -161,18 +175,21 @@ public class ExportTest { assumeFalse( "Skip due to over-reported encoder capabilities", Util.SDK_INT == 29 && Ascii.equalsIgnoreCase(Util.MODEL, "pixel 3")); - Transformer transformer = new Transformer.Builder(context) .setEncoderFactory(new ForceEncodeEncoderFactory(context)) .build(); MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_4K60_PORTRAIT_URI_STRING)); boolean skipCalculateSsim = Util.SDK_INT < 30 && Util.DEVICE.equals("joyeuse"); - new TransformerAndroidTestRunner.Builder(context, transformer) - .setRequestCalculateSsim(!skipCalculateSsim) - .setTimeoutSeconds(180) - .build() - .run(testId, mediaItem); + + ExportTestResult result = + new TransformerAndroidTestRunner.Builder(context, transformer) + .setRequestCalculateSsim(!skipCalculateSsim) + .setTimeoutSeconds(180) + .build() + .run(testId, mediaItem); + + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -184,11 +201,9 @@ public class ExportTest { || Ascii.equalsIgnoreCase(Util.MODEL, "sm-f916u1") || Ascii.equalsIgnoreCase(Util.MODEL, "sm-g981u1") || Ascii.equalsIgnoreCase(Util.MODEL, "le2121")); - Context context = ApplicationProvider.getApplicationContext(); assumeFormatsSupported( context, testId, /* inputFormat= */ MP4_ASSET_8K24_FORMAT, /* outputFormat= */ null); - Transformer transformer = new Transformer.Builder(context) .setEncoderFactory(new ForceEncodeEncoderFactory(context)) @@ -196,11 +211,15 @@ public class ExportTest { MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_8K24_URI_STRING)); // TODO: b/281824052 - have requestCalculateSsim always be true after linked bug is fixed. boolean requestCalculateSsim = !Util.MODEL.equals("SM-G991B"); - new TransformerAndroidTestRunner.Builder(context, transformer) - .setRequestCalculateSsim(requestCalculateSsim) - .setTimeoutSeconds(120) - .build() - .run(testId, mediaItem); + + ExportTestResult result = + new TransformerAndroidTestRunner.Builder(context, transformer) + .setRequestCalculateSsim(requestCalculateSsim) + .setTimeoutSeconds(120) + .build() + .run(testId, mediaItem); + + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -208,7 +227,6 @@ public class ExportTest { // This test is to cover devices that are able to either decode or encode 8K, but not transcode. int downscaledWidth = 320; int downscaledHeight = 240; - Context context = ApplicationProvider.getApplicationContext(); assumeFormatsSupported( context, @@ -220,21 +238,24 @@ public class ExportTest { .setHeight(downscaledHeight) .build()); - new TransformerAndroidTestRunner.Builder(context, new Transformer.Builder(context).build()) - .setTimeoutSeconds(120) - .build() - .run( - testId, - new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_8K24_URI_STRING))) - .setEffects( - new Effects( - /* audioProcessors= */ ImmutableList.of(), - /* videoEffects= */ ImmutableList.of( - Presentation.createForWidthAndHeight( - downscaledWidth, - downscaledHeight, - Presentation.LAYOUT_SCALE_TO_FIT)))) - .build()); + ExportTestResult result = + new TransformerAndroidTestRunner.Builder(context, new Transformer.Builder(context).build()) + .setTimeoutSeconds(120) + .build() + .run( + testId, + new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_8K24_URI_STRING))) + .setEffects( + new Effects( + /* audioProcessors= */ ImmutableList.of(), + /* videoEffects= */ ImmutableList.of( + Presentation.createForWidthAndHeight( + downscaledWidth, + downscaledHeight, + Presentation.LAYOUT_SCALE_TO_FIT)))) + .build()); + + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -245,7 +266,6 @@ public class ExportTest { testId, /* inputFormat= */ MP4_ASSET_WITH_INCREASING_TIMESTAMPS_FORMAT, /* outputFormat= */ null); - Transformer transformer = new Transformer.Builder(context) .setEncoderFactory(new ForceEncodeEncoderFactory(context)) @@ -257,10 +277,14 @@ public class ExportTest { boolean skipCalculateSsim = (Util.SDK_INT < 33 && (Util.MODEL.equals("SM-F711U1") || Util.MODEL.equals("SM-F926U1"))) || (Util.SDK_INT == 33 && Util.MODEL.equals("LE2121")); - new TransformerAndroidTestRunner.Builder(context, transformer) - .setRequestCalculateSsim(!skipCalculateSsim) - .build() - .run(testId, editedMediaItem); + + ExportTestResult result = + new TransformerAndroidTestRunner.Builder(context, transformer) + .setRequestCalculateSsim(!skipCalculateSsim) + .build() + .run(testId, editedMediaItem); + + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -274,27 +298,30 @@ public class ExportTest { new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_URI_STRING))) .setRemoveVideo(true) .build(); - new TransformerAndroidTestRunner.Builder(context, transformer) - .build() - .run(testId, editedMediaItem); + + ExportTestResult result = + new TransformerAndroidTestRunner.Builder(context, transformer) + .build() + .run(testId, editedMediaItem); + + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test public void exportSef() throws Exception { Context context = ApplicationProvider.getApplicationContext(); - if (SDK_INT < 25) { // TODO(b/210593256): Remove test skipping after using an in-app muxer that supports B-frames // before API 25. recordTestSkipped(context, testId, /* reason= */ "API version lacks muxing support"); return; } - Transformer transformer = new Transformer.Builder(context).build(); EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_SEF_URI_STRING))) .setFlattenForSlowMotion(true) .build(); + ExportTestResult result = new TransformerAndroidTestRunner.Builder(context, transformer) .build() @@ -302,27 +329,30 @@ public class ExportTest { assertThat(result.exportResult.durationMs).isGreaterThan(800); assertThat(result.exportResult.durationMs).isLessThan(950); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test public void exportSefH265() throws Exception { Context context = ApplicationProvider.getApplicationContext(); - if (SDK_INT < 25) { // TODO(b/210593256): Remove test skipping after using an in-app muxer that supports B-frames // before API 25. recordTestSkipped(context, testId, /* reason= */ "API version lacks muxing support"); return; } - Transformer transformer = new Transformer.Builder(context).build(); EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_SEF_H265_URI_STRING))) .setFlattenForSlowMotion(true) .build(); - new TransformerAndroidTestRunner.Builder(context, transformer) - .build() - .run(testId, editedMediaItem); + + ExportTestResult result = + new TransformerAndroidTestRunner.Builder(context, transformer) + .build() + .run(testId, editedMediaItem); + + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -333,7 +363,6 @@ public class ExportTest { testId, /* inputFormat= */ MP4_ASSET_WITH_INCREASING_TIMESTAMPS_FORMAT, /* outputFormat= */ null); - Transformer transformer = new Transformer.Builder(context).build(); MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_WITH_INCREASING_TIMESTAMPS_URI_STRING)); @@ -343,9 +372,12 @@ public class ExportTest { EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).setEffects(effects).build(); - new TransformerAndroidTestRunner.Builder(context, transformer) - .build() - .run(testId, editedMediaItem); + ExportTestResult result = + new TransformerAndroidTestRunner.Builder(context, transformer) + .build() + .run(testId, editedMediaItem); + + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -359,15 +391,17 @@ public class ExportTest { } assumeFormatsSupported( context, testId, /* inputFormat= */ MP4_ASSET_BT2020_SDR_FORMAT, /* outputFormat= */ null); - Transformer transformer = new Transformer.Builder(context).build(); MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_BT2020_SDR)); EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).setEffects(FORCE_TRANSCODE_VIDEO_EFFECTS).build(); - new TransformerAndroidTestRunner.Builder(context, transformer) - .build() - .run(testId, editedMediaItem); + ExportTestResult result = + new TransformerAndroidTestRunner.Builder(context, transformer) + .build() + .run(testId, editedMediaItem); + + assertThat(new File(result.filePath).length()).isGreaterThan(0); } @Test @@ -399,6 +433,7 @@ public class ExportTest { new TransformerAndroidTestRunner.Builder(context, transformer) .build() .run(testId, editedMediaItem); + Mp4Extractor mp4Extractor = new Mp4Extractor(new DefaultSubtitleParserFactory()); FakeExtractorOutput fakeExtractorOutput = TestUtil.extractAllSamplesFromFilePath(mp4Extractor, result.filePath); @@ -406,7 +441,6 @@ public class ExportTest { byte[] sps = videoTrack.lastFormat.initializationData.get(0); // Skip 7 bytes: NAL unit start code (4) and NAL unit type, profile, and reserved fields. int spsLevelIndex = 7; - assertThat(result.exportResult.optimizationResult).isEqualTo(OPTIMIZATION_SUCCEEDED); assertThat(result.exportResult.durationMs).isAtMost(700); assertThat(result.exportResult.videoConversionProcess) diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformerMhUltraHdrTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformerMhUltraHdrTest.java index 6711ec72ee..f33b1e9f2a 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformerMhUltraHdrTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformerMhUltraHdrTest.java @@ -83,8 +83,6 @@ public final class TransformerMhUltraHdrTest { .build() .run(testId, composition); - assertThat(result.filePath).isNotEmpty(); - assertThat(result.exportResult.fileSizeBytes).isGreaterThan(0); ColorInfo colorInfo = retrieveTrackFormat(context, result.filePath, C.TRACK_TYPE_VIDEO).colorInfo; assertThat(colorInfo.colorSpace).isEqualTo(C.COLOR_SPACE_BT2020); @@ -105,8 +103,6 @@ public final class TransformerMhUltraHdrTest { .build() .run(testId, composition); - assertThat(result.filePath).isNotEmpty(); - assertThat(result.exportResult.fileSizeBytes).isGreaterThan(0); ColorInfo colorInfo = retrieveTrackFormat(context, result.filePath, C.TRACK_TYPE_VIDEO).colorInfo; assertThat(colorInfo.colorSpace).isEqualTo(C.COLOR_SPACE_BT2020); @@ -127,8 +123,6 @@ public final class TransformerMhUltraHdrTest { .build() .run(testId, composition); - assertThat(result.filePath).isNotEmpty(); - assertThat(result.exportResult.fileSizeBytes).isGreaterThan(0); ColorInfo colorInfo = retrieveTrackFormat(context, result.filePath, C.TRACK_TYPE_VIDEO).colorInfo; assertThat(colorInfo.colorSpace).isEqualTo(C.COLOR_SPACE_BT2020); @@ -149,8 +143,6 @@ public final class TransformerMhUltraHdrTest { .build() .run(testId, composition); - assertThat(result.filePath).isNotEmpty(); - assertThat(result.exportResult.fileSizeBytes).isGreaterThan(0); assertSdrColors(context, result.filePath); } 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 6476190cd9..09e5d8c87b 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 @@ -59,6 +59,7 @@ import androidx.media3.transformer.TransformerAndroidTestRunner; import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.common.collect.ImmutableList; +import java.io.File; import java.util.List; import org.junit.Before; import org.junit.Rule; @@ -107,8 +108,7 @@ public final class TransformerSequenceEffectTestWithHdr { .build() .run(testId, composition); - assertThat(result.filePath).isNotEmpty(); - assertThat(result.exportResult.fileSizeBytes).isGreaterThan(0); + assertThat(new File(result.filePath).length()).isGreaterThan(0); // Expected bitmaps were generated on the Pixel 7 Pro, because emulators don't // support decoding HDR. assertBitmapsMatchExpectedAndSave( @@ -186,8 +186,7 @@ public final class TransformerSequenceEffectTestWithHdr { .build() .run(testId, composition); - assertThat(result.filePath).isNotEmpty(); - assertThat(result.exportResult.fileSizeBytes).isGreaterThan(0); + assertThat(new File(result.filePath).length()).isGreaterThan(0); // Expected bitmaps were generated on the Samsung S22 Ultra (US), because emulators don't // support decoding HDR, and the Pixel 7 Pro does support HDR editing. assertBitmapsMatchExpectedAndSave( diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformerWithInAppMuxerEndToEndMhTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformerWithInAppMuxerEndToEndMhTest.java index c5ddd2c2e3..546de622ca 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformerWithInAppMuxerEndToEndMhTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/TransformerWithInAppMuxerEndToEndMhTest.java @@ -34,6 +34,7 @@ import androidx.media3.transformer.TransformerAndroidTestRunner; import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.common.collect.ImmutableList; +import java.io.File; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -74,5 +75,6 @@ public class TransformerWithInAppMuxerEndToEndMhTest { .run(testId, editedMediaItem); assertThat(result.exportResult.exportException).isNull(); + assertThat(new File(result.filePath).length()).isGreaterThan(0); } }