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;
import static androidx.media3.common.util.Assertions.checkState;
import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
@ -43,7 +44,7 @@ public final class FileUtil {
*/
public static void assertFileHasColorTransfer(
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;
@C.ColorTransfer
int actualColorTransfer =
@ -53,7 +54,9 @@ public final class FileUtil {
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;
try {
trackGroupArray =
@ -68,12 +71,12 @@ public final class FileUtil {
for (int i = 0; i < trackGroupArray.length; i++) {
TrackGroup trackGroup = trackGroupArray.get(i);
if (trackGroup.type == C.TRACK_TYPE_VIDEO) {
assertThat(trackGroup.length).isEqualTo(1);
if (trackGroup.type == trackType) {
checkState(trackGroup.length == 1);
return trackGroup.getFormat(0);
}
}
throw new IllegalStateException("Couldn't find video track");
throw new IllegalStateException("Couldn't find track");
}
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.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.MP3_ASSET_URI_STRING;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_FORMAT;
@ -943,13 +944,15 @@ public class TransformerEndToEndTest {
Transformer transformer =
new Transformer.Builder(context).setVideoMimeType(MimeTypes.VIDEO_AV1).build();
ExportResult exportResult =
ExportTestResult exportTestResult =
new TransformerAndroidTestRunner.Builder(context, transformer)
.build()
.run(testId, editedMediaItem)
.exportResult;
.run(testId, editedMediaItem);
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.durationMs).isGreaterThan(0);
assertThat(exportResult.videoMimeType).isEqualTo(MimeTypes.VIDEO_AV1);
@ -963,13 +966,15 @@ public class TransformerEndToEndTest {
Transformer transformer =
new Transformer.Builder(context).setAudioMimeType(MimeTypes.AUDIO_AAC).build();
ExportResult exportResult =
ExportTestResult exportTestResult =
new TransformerAndroidTestRunner.Builder(context, transformer)
.build()
.run(testId, editedMediaItem)
.exportResult;
.run(testId, editedMediaItem);
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.durationMs).isGreaterThan(0);
assertThat(exportResult.audioMimeType).isEqualTo(MimeTypes.AUDIO_AAC);