Update supported image formats in line with platform standards
This treats heic as a separate mimetype to heif (even though heic files are a subset of heif files). This is in line with other platform classes like android.content.ContentResolver https://developer.android.com/media/platform/supported-formats#image-formats was updated to include avif support or API level 34, so added this MimeType as well and updated our associated util. solves Issue: androidx/media#1373 PiperOrigin-RevId: 633616214
This commit is contained in:
parent
84c0b6bcb1
commit
f7390faeb0
@ -38,6 +38,8 @@
|
|||||||
* Replace `androidx.media3.transformer.Muxer` interface with
|
* Replace `androidx.media3.transformer.Muxer` interface with
|
||||||
`androidx.media3.muxer.Muxer` and remove
|
`androidx.media3.muxer.Muxer` and remove
|
||||||
`androidx.media3.transformer.Muxer`.
|
`androidx.media3.transformer.Muxer`.
|
||||||
|
* Fix HEIC image loading from content URI schemes.
|
||||||
|
([#1373](https://github.com/androidx/media/issues/1373)).
|
||||||
* Track Selection:
|
* Track Selection:
|
||||||
* Extractors:
|
* Extractors:
|
||||||
* MPEG-TS: Roll forward the change ensuring the last frame is rendered by
|
* MPEG-TS: Roll forward the change ensuring the last frame is rendered by
|
||||||
@ -74,6 +76,7 @@
|
|||||||
* Image:
|
* Image:
|
||||||
* Add support for non-square DASH thumbnail grids
|
* Add support for non-square DASH thumbnail grids
|
||||||
([#1300](https://github.com/androidx/media/pull/1300)).
|
([#1300](https://github.com/androidx/media/pull/1300)).
|
||||||
|
* Add AVIF decoding support for API 34+.
|
||||||
* DRM:
|
* DRM:
|
||||||
* Allow setting a `LoadErrorHandlingPolicy` on
|
* Allow setting a `LoadErrorHandlingPolicy` on
|
||||||
`DefaultDrmSessionManagerProvider`
|
`DefaultDrmSessionManagerProvider`
|
||||||
|
@ -164,6 +164,8 @@ public final class MimeTypes {
|
|||||||
@UnstableApi public static final String IMAGE_JPEG_R = BASE_TYPE_IMAGE + "/jpeg_r";
|
@UnstableApi public static final String IMAGE_JPEG_R = BASE_TYPE_IMAGE + "/jpeg_r";
|
||||||
@UnstableApi public static final String IMAGE_PNG = BASE_TYPE_IMAGE + "/png";
|
@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_HEIF = BASE_TYPE_IMAGE + "/heif";
|
||||||
|
@UnstableApi public static final String IMAGE_HEIC = BASE_TYPE_IMAGE + "/heic";
|
||||||
|
@UnstableApi public static final String IMAGE_AVIF = BASE_TYPE_IMAGE + "/avif";
|
||||||
@UnstableApi public static final String IMAGE_BMP = BASE_TYPE_IMAGE + "/bmp";
|
@UnstableApi public static final String IMAGE_BMP = BASE_TYPE_IMAGE + "/bmp";
|
||||||
@UnstableApi public static final String IMAGE_WEBP = BASE_TYPE_IMAGE + "/webp";
|
@UnstableApi public static final String IMAGE_WEBP = BASE_TYPE_IMAGE + "/webp";
|
||||||
@UnstableApi public static final String IMAGE_RAW = BASE_TYPE_IMAGE + "/raw";
|
@UnstableApi public static final String IMAGE_RAW = BASE_TYPE_IMAGE + "/raw";
|
||||||
|
@ -3230,7 +3230,10 @@ public final class Util {
|
|||||||
case MimeTypes.IMAGE_WEBP:
|
case MimeTypes.IMAGE_WEBP:
|
||||||
return true;
|
return true;
|
||||||
case MimeTypes.IMAGE_HEIF:
|
case MimeTypes.IMAGE_HEIF:
|
||||||
|
case MimeTypes.IMAGE_HEIC:
|
||||||
return Util.SDK_INT >= 26;
|
return Util.SDK_INT >= 26;
|
||||||
|
case MimeTypes.IMAGE_AVIF:
|
||||||
|
return Util.SDK_INT >= 34;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -120,6 +120,8 @@ public final class MimeTypesTest {
|
|||||||
assertThat(MimeTypes.isImage(MimeTypes.IMAGE_JPEG)).isTrue();
|
assertThat(MimeTypes.isImage(MimeTypes.IMAGE_JPEG)).isTrue();
|
||||||
assertThat(MimeTypes.isImage(MimeTypes.IMAGE_PNG)).isTrue();
|
assertThat(MimeTypes.isImage(MimeTypes.IMAGE_PNG)).isTrue();
|
||||||
assertThat(MimeTypes.isImage(MimeTypes.IMAGE_HEIF)).isTrue();
|
assertThat(MimeTypes.isImage(MimeTypes.IMAGE_HEIF)).isTrue();
|
||||||
|
assertThat(MimeTypes.isImage(MimeTypes.IMAGE_HEIC)).isTrue();
|
||||||
|
assertThat(MimeTypes.isImage(MimeTypes.IMAGE_AVIF)).isTrue();
|
||||||
assertThat(MimeTypes.isImage(MimeTypes.IMAGE_BMP)).isTrue();
|
assertThat(MimeTypes.isImage(MimeTypes.IMAGE_BMP)).isTrue();
|
||||||
assertThat(MimeTypes.isImage(MimeTypes.IMAGE_WEBP)).isTrue();
|
assertThat(MimeTypes.isImage(MimeTypes.IMAGE_WEBP)).isTrue();
|
||||||
assertThat(MimeTypes.isImage("image/custom")).isTrue();
|
assertThat(MimeTypes.isImage("image/custom")).isTrue();
|
||||||
|
@ -47,8 +47,9 @@ public final class ImageUtil {
|
|||||||
case "dib":
|
case "dib":
|
||||||
return MimeTypes.IMAGE_BMP;
|
return MimeTypes.IMAGE_BMP;
|
||||||
case "heif":
|
case "heif":
|
||||||
case "heic":
|
|
||||||
return MimeTypes.IMAGE_HEIF;
|
return MimeTypes.IMAGE_HEIF;
|
||||||
|
case "heic":
|
||||||
|
return MimeTypes.IMAGE_HEIC;
|
||||||
case "jpg":
|
case "jpg":
|
||||||
case "jpeg":
|
case "jpeg":
|
||||||
case "jpe":
|
case "jpe":
|
||||||
@ -76,7 +77,7 @@ public final class ImageUtil {
|
|||||||
case "ico":
|
case "ico":
|
||||||
return "image/x-icon";
|
return "image/x-icon";
|
||||||
case "avif":
|
case "avif":
|
||||||
return "image/avif";
|
return MimeTypes.IMAGE_AVIF;
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user