summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chong Zhang <chz@google.com> 2017-08-16 11:57:02 -0700
committer Chong Zhang <chz@google.com> 2017-08-22 20:00:58 +0000
commit48fa890b61b294e56a800ae30b401eede72a7a4f (patch)
tree05700287ed22115e5cc5580d7875d47dd7967e37
parent6bce107c600e3aabdc536b1cfa4aa73ea7ce754b (diff)
heif: add new file and mime types to MediaScanner
bug: 64077740 Change-Id: I6d36c2394a5ae527026c98c83786009e70b20958 (cherry picked from commit 6e18ccee2afd30a1b0874c5e26b2c8289309b432)
-rw-r--r--core/jni/android/graphics/BitmapFactory.cpp3
-rw-r--r--media/java/android/media/MediaFile.java5
-rw-r--r--media/java/android/mtp/MtpConstants.java2
-rwxr-xr-xmedia/java/android/mtp/MtpDatabase.java2
-rw-r--r--media/jni/android_mtp_MtpDatabase.cpp2
5 files changed, 13 insertions, 1 deletions
diff --git a/core/jni/android/graphics/BitmapFactory.cpp b/core/jni/android/graphics/BitmapFactory.cpp
index f99637d2ae30..42e9273c5ba2 100644
--- a/core/jni/android/graphics/BitmapFactory.cpp
+++ b/core/jni/android/graphics/BitmapFactory.cpp
@@ -76,6 +76,9 @@ jstring encodedFormatToString(JNIEnv* env, SkEncodedImageFormat format) {
case SkEncodedImageFormat::kWEBP:
mimeType = "image/webp";
break;
+ case SkEncodedImageFormat::kHEIF:
+ mimeType = "image/heif";
+ break;
case SkEncodedImageFormat::kWBMP:
mimeType = "image/vnd.wap.wbmp";
break;
diff --git a/media/java/android/media/MediaFile.java b/media/java/android/media/MediaFile.java
index 2f48ffbfdb5c..fc4d15fad5ca 100644
--- a/media/java/android/media/MediaFile.java
+++ b/media/java/android/media/MediaFile.java
@@ -80,8 +80,9 @@ public class MediaFile {
public static final int FILE_TYPE_BMP = 34;
public static final int FILE_TYPE_WBMP = 35;
public static final int FILE_TYPE_WEBP = 36;
+ public static final int FILE_TYPE_HEIF = 37;
private static final int FIRST_IMAGE_FILE_TYPE = FILE_TYPE_JPEG;
- private static final int LAST_IMAGE_FILE_TYPE = FILE_TYPE_WEBP;
+ private static final int LAST_IMAGE_FILE_TYPE = FILE_TYPE_HEIF;
// Raw image file types
public static final int FILE_TYPE_DNG = 300;
@@ -239,6 +240,8 @@ public class MediaFile {
addFileType("BMP", FILE_TYPE_BMP, "image/x-ms-bmp", MtpConstants.FORMAT_BMP, true);
addFileType("WBMP", FILE_TYPE_WBMP, "image/vnd.wap.wbmp", MtpConstants.FORMAT_DEFINED, false);
addFileType("WEBP", FILE_TYPE_WEBP, "image/webp", MtpConstants.FORMAT_DEFINED, false);
+ addFileType("HEIC", FILE_TYPE_HEIF, "image/heif", MtpConstants.FORMAT_HEIF, true);
+ addFileType("HEIF", FILE_TYPE_HEIF, "image/heif", MtpConstants.FORMAT_HEIF, false);
addFileType("DNG", FILE_TYPE_DNG, "image/x-adobe-dng", MtpConstants.FORMAT_DNG, true);
addFileType("CR2", FILE_TYPE_CR2, "image/x-canon-cr2", MtpConstants.FORMAT_TIFF, false);
diff --git a/media/java/android/mtp/MtpConstants.java b/media/java/android/mtp/MtpConstants.java
index 7d078d7a97cf..88e287e6264f 100644
--- a/media/java/android/mtp/MtpConstants.java
+++ b/media/java/android/mtp/MtpConstants.java
@@ -211,6 +211,8 @@ public final class MtpConstants {
public static final int FORMAT_JPX = 0x3810;
/** Format code for DNG files */
public static final int FORMAT_DNG = 0x3811;
+ /** Format code for HEIF files {@hide} */
+ public static final int FORMAT_HEIF = 0x3812;
/** Format code for firmware files */
public static final int FORMAT_UNDEFINED_FIRMWARE = 0xB802;
/** Format code for Windows image files */
diff --git a/media/java/android/mtp/MtpDatabase.java b/media/java/android/mtp/MtpDatabase.java
index 698c9c96fe01..9847d705adcf 100755
--- a/media/java/android/mtp/MtpDatabase.java
+++ b/media/java/android/mtp/MtpDatabase.java
@@ -595,6 +595,7 @@ public class MtpDatabase implements AutoCloseable {
MtpConstants.FORMAT_XML_DOCUMENT,
MtpConstants.FORMAT_FLAC,
MtpConstants.FORMAT_DNG,
+ MtpConstants.FORMAT_HEIF,
};
}
@@ -705,6 +706,7 @@ public class MtpDatabase implements AutoCloseable {
case MtpConstants.FORMAT_PNG:
case MtpConstants.FORMAT_BMP:
case MtpConstants.FORMAT_DNG:
+ case MtpConstants.FORMAT_HEIF:
return IMAGE_PROPERTIES;
default:
return FILE_PROPERTIES;
diff --git a/media/jni/android_mtp_MtpDatabase.cpp b/media/jni/android_mtp_MtpDatabase.cpp
index cf4458a6fd49..5b874cd82678 100644
--- a/media/jni/android_mtp_MtpDatabase.cpp
+++ b/media/jni/android_mtp_MtpDatabase.cpp
@@ -849,6 +849,7 @@ MtpResponseCode MyMtpDatabase::getObjectInfo(MtpObjectHandle handle,
// read EXIF data for thumbnail information
switch (info.mFormat) {
case MTP_FORMAT_EXIF_JPEG:
+ case MTP_FORMAT_HEIF:
case MTP_FORMAT_JFIF: {
ExifData *exifdata = exif_data_new_from_file(path);
if (exifdata) {
@@ -906,6 +907,7 @@ void* MyMtpDatabase::getThumbnail(MtpObjectHandle handle, size_t& outThumbSize)
if (getObjectFilePath(handle, path, length, format) == MTP_RESPONSE_OK) {
switch (format) {
case MTP_FORMAT_EXIF_JPEG:
+ case MTP_FORMAT_HEIF:
case MTP_FORMAT_JFIF: {
ExifData *exifdata = exif_data_new_from_file(path);
if (exifdata) {