Assert Export output mime type by retrieving output file metadata

PiperOrigin-RevId: 603333340
This commit is contained in:
sheenachhabra 2024-02-01 04:45:26 -08:00 committed by Copybara-Service
parent e3e57c9b99
commit 198e3fb166
2 changed files with 21 additions and 13 deletions

View File

@ -16,6 +16,7 @@
package androidx.media3.test.utils; package androidx.media3.test.utils;
import static androidx.media3.common.util.Assertions.checkState;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import android.content.Context; import android.content.Context;
@ -43,7 +44,7 @@ public final class FileUtil {
*/ */
public static void assertFileHasColorTransfer( public static void assertFileHasColorTransfer(
Context context, @Nullable String filePath, @C.ColorTransfer int expectedColorTransfer) { Context context, @Nullable String filePath, @C.ColorTransfer int expectedColorTransfer) {
Format videoTrackFormat = retrieveVideoTrackFormat(context, filePath); Format videoTrackFormat = retrieveTrackFormat(context, filePath, C.TRACK_TYPE_VIDEO);
@Nullable ColorInfo colorInfo = videoTrackFormat.colorInfo; @Nullable ColorInfo colorInfo = videoTrackFormat.colorInfo;
@C.ColorTransfer @C.ColorTransfer
int actualColorTransfer = int actualColorTransfer =
@ -53,7 +54,9 @@ public final class FileUtil {
assertThat(actualColorTransfer).isEqualTo(expectedColorTransfer); assertThat(actualColorTransfer).isEqualTo(expectedColorTransfer);
} }
private static Format retrieveVideoTrackFormat(Context context, @Nullable String filePath) { /** Returns {@linkplain Format track format} from the media file. */
public static Format retrieveTrackFormat(
Context context, @Nullable String filePath, @C.TrackType int trackType) {
TrackGroupArray trackGroupArray; TrackGroupArray trackGroupArray;
try { try {
trackGroupArray = trackGroupArray =
@ -68,12 +71,12 @@ public final class FileUtil {
for (int i = 0; i < trackGroupArray.length; i++) { for (int i = 0; i < trackGroupArray.length; i++) {
TrackGroup trackGroup = trackGroupArray.get(i); TrackGroup trackGroup = trackGroupArray.get(i);
if (trackGroup.type == C.TRACK_TYPE_VIDEO) { if (trackGroup.type == trackType) {
assertThat(trackGroup.length).isEqualTo(1); checkState(trackGroup.length == 1);
return trackGroup.getFormat(0); return trackGroup.getFormat(0);
} }
} }
throw new IllegalStateException("Couldn't find video track"); throw new IllegalStateException("Couldn't find track");
} }
private FileUtil() {} private FileUtil() {}

View File

@ -17,6 +17,7 @@ package androidx.media3.transformer;
import static androidx.media3.common.util.Assertions.checkNotNull; import static androidx.media3.common.util.Assertions.checkNotNull;
import static androidx.media3.common.util.Util.isRunningOnEmulator; import static androidx.media3.common.util.Util.isRunningOnEmulator;
import static androidx.media3.test.utils.FileUtil.retrieveTrackFormat;
import static androidx.media3.transformer.AndroidTestUtil.JPG_ASSET_URI_STRING; import static androidx.media3.transformer.AndroidTestUtil.JPG_ASSET_URI_STRING;
import static androidx.media3.transformer.AndroidTestUtil.MP3_ASSET_URI_STRING; import static androidx.media3.transformer.AndroidTestUtil.MP3_ASSET_URI_STRING;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_FORMAT; import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_FORMAT;
@ -943,13 +944,15 @@ public class TransformerEndToEndTest {
Transformer transformer = Transformer transformer =
new Transformer.Builder(context).setVideoMimeType(MimeTypes.VIDEO_AV1).build(); new Transformer.Builder(context).setVideoMimeType(MimeTypes.VIDEO_AV1).build();
ExportResult exportResult = ExportTestResult exportTestResult =
new TransformerAndroidTestRunner.Builder(context, transformer) new TransformerAndroidTestRunner.Builder(context, transformer)
.build() .build()
.run(testId, editedMediaItem) .run(testId, editedMediaItem);
.exportResult; ExportResult exportResult = exportTestResult.exportResult;
// TODO: b/322954582 - Also assert by probing output file. String actualMimeType =
retrieveTrackFormat(context, exportTestResult.filePath, C.TRACK_TYPE_VIDEO).sampleMimeType;
assertThat(actualMimeType).isEqualTo(MimeTypes.VIDEO_AV1);
assertThat(exportResult.exportException).isNull(); assertThat(exportResult.exportException).isNull();
assertThat(exportResult.durationMs).isGreaterThan(0); assertThat(exportResult.durationMs).isGreaterThan(0);
assertThat(exportResult.videoMimeType).isEqualTo(MimeTypes.VIDEO_AV1); assertThat(exportResult.videoMimeType).isEqualTo(MimeTypes.VIDEO_AV1);
@ -963,13 +966,15 @@ public class TransformerEndToEndTest {
Transformer transformer = Transformer transformer =
new Transformer.Builder(context).setAudioMimeType(MimeTypes.AUDIO_AAC).build(); new Transformer.Builder(context).setAudioMimeType(MimeTypes.AUDIO_AAC).build();
ExportResult exportResult = ExportTestResult exportTestResult =
new TransformerAndroidTestRunner.Builder(context, transformer) new TransformerAndroidTestRunner.Builder(context, transformer)
.build() .build()
.run(testId, editedMediaItem) .run(testId, editedMediaItem);
.exportResult; ExportResult exportResult = exportTestResult.exportResult;
// TODO: b/322954582 - Also assert by probing output file. String actualMimeType =
retrieveTrackFormat(context, exportTestResult.filePath, C.TRACK_TYPE_AUDIO).sampleMimeType;
assertThat(actualMimeType).isEqualTo(MimeTypes.AUDIO_AAC);
assertThat(exportResult.exportException).isNull(); assertThat(exportResult.exportException).isNull();
assertThat(exportResult.durationMs).isGreaterThan(0); assertThat(exportResult.durationMs).isGreaterThan(0);
assertThat(exportResult.audioMimeType).isEqualTo(MimeTypes.AUDIO_AAC); assertThat(exportResult.audioMimeType).isEqualTo(MimeTypes.AUDIO_AAC);