From 7a852366559b42e3187fb9798cdfee12ffcac771 Mon Sep 17 00:00:00 2001 From: tofunmi Date: Thu, 10 Aug 2023 10:38:11 +0000 Subject: [PATCH] Update Mimetypes to include supported image mimetypes PiperOrigin-RevId: 555433856 --- .../androidx/media3/common/MimeTypes.java | 3 +++ .../androidx/media3/common/MimeTypesTest.java | 24 ++++++++++++------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/libraries/common/src/main/java/androidx/media3/common/MimeTypes.java b/libraries/common/src/main/java/androidx/media3/common/MimeTypes.java index b1d60d9c79..efbaed2b00 100644 --- a/libraries/common/src/main/java/androidx/media3/common/MimeTypes.java +++ b/libraries/common/src/main/java/androidx/media3/common/MimeTypes.java @@ -156,6 +156,9 @@ public final class MimeTypes { public static final String IMAGE_JPEG = BASE_TYPE_IMAGE + "/jpeg"; @UnstableApi public static final String IMAGE_PNG = BASE_TYPE_IMAGE + "/png"; + @UnstableApi public static final String IMAGE_HEIF = BASE_TYPE_IMAGE + "/heif"; + @UnstableApi public static final String IMAGE_BMP = BASE_TYPE_IMAGE + "/bmp"; + @UnstableApi public static final String IMAGE_WEBP = BASE_TYPE_IMAGE + "/webp"; /** * A non-standard codec string for E-AC3-JOC. Use of this constant allows for disambiguation diff --git a/libraries/common/src/test/java/androidx/media3/common/MimeTypesTest.java b/libraries/common/src/test/java/androidx/media3/common/MimeTypesTest.java index 579b96fa77..fa82caeca3 100644 --- a/libraries/common/src/test/java/androidx/media3/common/MimeTypesTest.java +++ b/libraries/common/src/test/java/androidx/media3/common/MimeTypesTest.java @@ -111,15 +111,21 @@ public final class MimeTypesTest { assertThat(MimeTypes.isText(MimeTypes.VIDEO_H264)).isFalse(); assertThat(MimeTypes.isText(MimeTypes.AUDIO_MP4)).isFalse(); assertThat(MimeTypes.isText(MimeTypes.AUDIO_AAC)).isFalse(); + assertThat(MimeTypes.isText(MimeTypes.IMAGE_JPEG)).isFalse(); assertThat(MimeTypes.isText("application/custom")).isFalse(); } @Test public void isImage_returnsCorrectResult() { assertThat(MimeTypes.isImage(MimeTypes.IMAGE_JPEG)).isTrue(); + assertThat(MimeTypes.isImage(MimeTypes.IMAGE_PNG)).isTrue(); + assertThat(MimeTypes.isImage(MimeTypes.IMAGE_HEIF)).isTrue(); + assertThat(MimeTypes.isImage(MimeTypes.IMAGE_BMP)).isTrue(); + assertThat(MimeTypes.isImage(MimeTypes.IMAGE_WEBP)).isTrue(); assertThat(MimeTypes.isImage("image/custom")).isTrue(); assertThat(MimeTypes.isImage(MimeTypes.VIDEO_MP4)).isFalse(); + assertThat(MimeTypes.isImage(MimeTypes.AUDIO_AAC)).isFalse(); assertThat(MimeTypes.isImage("application/custom")).isFalse(); } @@ -259,15 +265,6 @@ public final class MimeTypesTest { assert_getObjectTypeFromMp4aRFC6381CodecString_for_returns("mp4a.D0.9", 0xd0, 9); } - private static void assert_getObjectTypeFromMp4aRFC6381CodecString_for_returns( - String codec, int expectedObjectTypeIndicator, int expectedAudioObjectTypeIndicator) { - @Nullable - MimeTypes.Mp4aObjectType objectType = MimeTypes.getObjectTypeFromMp4aRFC6381CodecString(codec); - assertThat(objectType).isNotNull(); - assertThat(objectType.objectTypeIndication).isEqualTo(expectedObjectTypeIndicator); - assertThat(objectType.audioObjectTypeIndication).isEqualTo(expectedAudioObjectTypeIndicator); - } - @Test public void allSamplesAreSyncSamples_forAac_usesCodec() { assertThat(MimeTypes.allSamplesAreSyncSamples(MimeTypes.AUDIO_AAC, "mp4a.40." + AACObjectHE)) @@ -280,4 +277,13 @@ public final class MimeTypesTest { assertThat(MimeTypes.allSamplesAreSyncSamples(MimeTypes.AUDIO_AAC, /* codec= */ null)) .isFalse(); } + + private static void assert_getObjectTypeFromMp4aRFC6381CodecString_for_returns( + String codec, int expectedObjectTypeIndicator, int expectedAudioObjectTypeIndicator) { + @Nullable + MimeTypes.Mp4aObjectType objectType = MimeTypes.getObjectTypeFromMp4aRFC6381CodecString(codec); + assertThat(objectType).isNotNull(); + assertThat(objectType.objectTypeIndication).isEqualTo(expectedObjectTypeIndicator); + assertThat(objectType.audioObjectTypeIndication).isEqualTo(expectedAudioObjectTypeIndicator); + } }